EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Geane.C
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file Geane.C
1 
2 // Configuration macro for Geane VirtualMC
3 
4 void Config()
5 {
6  auto gMC3 = new TGeant3TGeo("C++ Interface to Geant3");
7  // FIXME: these printouts crash in Jana plugin mode;
8  //cout << "-I- G3Config: Geant3 with TGeo has been created for Geane." << endl;
9  // create Cbm Specific Stack
10  //@@@PndStack *st = new PndStack(10);
11  //@@@gMC3->SetStack( st ) ;
12 
13  // ******* GEANEconfiguration for simulated Runs *******
14  gMC3->SetDEBU(0, 0, 1);
15  gMC3->SetSWIT(4, 10);
16 
17  gMC3->SetDCAY(0);
18  gMC3->SetPAIR(0);
19  gMC3->SetCOMP(0);
20  gMC3->SetPHOT(0);
21  gMC3->SetPFIS(0);
22  gMC3->SetDRAY(0);
23  gMC3->SetANNI(0);
24  gMC3->SetBREM(1);
25  gMC3->SetMUNU(0);
26  gMC3->SetCKOV(0);
27  gMC3->SetHADR(0); //Select pure GEANH (HADR 1) or GEANH/NUCRIN (HADR 3)//4 fluka 5 gcalor
28  gMC3->SetLOSS(4);
29  gMC3->SetMULS(3); //1=Moliere,3=Gaussian
30  gMC3->SetRAYL(0);
31  gMC3->SetSTRA(0);
32 
33  gMC3->SetAUTO(1); //Select automatic STMIN etc... calc. (AUTO 1) or manual (AUTO 0)
34  gMC3->SetABAN(0); //Restore 3.16 behaviour for abandoned tracks
35  gMC3->SetOPTI(0); //Select optimisation level for GEANT geometry searches (0,1,2)
36  gMC3->SetERAN(5.e-7);
37 
38 
39  // -------->>>>> PAY ATTENTION!!!!!
40  // For a correct use of GEANE, you MUST use the cuts as set below!!!
41  // i.e. Since GEANE is tracking only the primary particle, DCUTE, DCUTM, BCUTE and BCUTM must be put
42  // at very high values (10 TeV) in order to calculate properly the energy loss.
43  // For a more complete explanation of the chosen values, refer to GEANT manual
44 
45  Float_t cut = 1.e-3; // 1 MeV cut by default
46  Float_t cutd = 1.e4 ; // 10 TeV - Threshold for delta-rays
47  Float_t cutb = cutd; // 10 TeV - Cut for bremsstrahlung
48  Float_t tofmax = 1.e10; // seconds
49  Float_t usrcuts[5] = {0.,0.,0.,0.,0.}; // usercuts
50  Float_t gcalpha = 0.999; // Optimal value for alpha
51 
52 
53  //cout<<"Energy straggling area parameter from user set to: "<<gcalpha<<endl;
54  if(gcalpha<0.9)
55  {
56  gcalpha=0.9;
57  //cout<<"User alpha parameter too low: forced to 0.9"<<endl;
58  }
59 
60  // set cuts here
61  // GAM ELEC NHAD CHAD MUON EBREM MUHAB EDEL MUDEL MUPA TOFMAX
62  gMC3->SetCUTS(cut, // CUTGAM = gammas
63  cut, // CUTELE = electrons
64  cut, // CUTNEU = neutral hadrons
65  cut, // CUTHAD = charged hadrons
66  cut, // CUTMUO = muons
67  cutb, // BCUTE = electron bremsstrahlung
68  cutb, // BCUTM = muon bremsstrahlung
69  cutd, // DCUTE = delta rays by electrons
70  cutd, // DCUTM = delta rays by muons
71  cutb, // PPCUTM = pair production by muons
72  tofmax, // TOFMAX = time of flight cut
73  usrcuts);
74 
75  gMC3->SetECut(gcalpha);
76 }
77