3 const double set_momentum = 50.0,
4 const char * inputFile =
"/gpfs/mnt/gpfs04/sphenix/user/nfeege/data/pythiaeRHIC/TREES/pythia.ep.20x250.RadCor=0.Q2gt1.5kevts.root",
5 const char * outputFile =
"G4EICDetector.root"
9 const int n_TPC_layers = 40;
22 const bool readhits =
false;
25 const bool readhepmc =
false;
28 const bool readeictree =
true;
31 const bool runpythia8 =
false;
34 const bool runpythia6 =
false;
37 const bool runhepgen =
false;
40 const bool runsartre =
false;
46 const bool particles =
false && !readhits;
48 const bool usegun =
false && !readhits;
50 const bool upsilons =
false && !readhits;
62 bool do_svtx_cell = do_svtx &&
true;
63 bool do_svtx_track = do_svtx_cell &&
true;
64 bool do_svtx_eval = do_svtx_track &&
true;
66 bool do_pstof =
false;
69 bool do_cemc_cell = do_cemc &&
true;
70 bool do_cemc_twr = do_cemc_cell &&
true;
71 bool do_cemc_cluster = do_cemc_twr &&
true;
72 bool do_cemc_eval = do_cemc_cluster &&
false;
74 bool do_hcalin =
false;
75 bool do_hcalin_cell = do_hcalin &&
false;
76 bool do_hcalin_twr = do_hcalin_cell &&
false;
77 bool do_hcalin_cluster = do_hcalin_twr &&
false;
78 bool do_hcalin_eval = do_hcalin_cluster &&
false;
80 bool do_magnet =
true;
82 bool do_hcalout =
false;
83 bool do_hcalout_cell = do_hcalout &&
false;
84 bool do_hcalout_twr = do_hcalout_cell &&
false;
85 bool do_hcalout_cluster = do_hcalout_twr &&
false;
86 bool do_hcalout_eval = do_hcalout_cluster &&
false;
93 bool do_FGEM_track = do_FGEM &&
true;
96 bool do_Aerogel =
false;
99 bool do_FEMC_cell = do_FEMC &&
true;
100 bool do_FEMC_twr = do_FEMC_cell &&
true;
101 bool do_FEMC_cluster = do_FEMC_twr &&
true;
102 bool do_FEMC_eval = do_FEMC_cluster &&
false;
104 bool do_FHCAL =
false;
105 bool do_FHCAL_cell = do_FHCAL &&
true;
106 bool do_FHCAL_twr = do_FHCAL_cell &&
true;
107 bool do_FHCAL_cluster = do_FHCAL_twr &&
true;
108 bool do_FHCAL_eval = do_FHCAL_cluster &&
false;
111 bool do_EGEM =
false;
112 bool do_EGEM_track = do_EGEM &&
false;
114 bool do_EEMC =
false;
115 bool do_EEMC_cell = do_EEMC &&
false;
116 bool do_EEMC_twr = do_EEMC_cell &&
false;
117 bool do_EEMC_cluster = do_EEMC_twr &&
false;
118 bool do_EEMC_eval = do_EEMC_cluster &&
false;
121 bool do_global =
false;
122 bool do_global_fastsim =
false;
124 bool do_calotrigger =
false && do_cemc_twr && do_hcalin_twr && do_hcalout_twr;
126 bool do_jet_reco =
false;
127 bool do_jet_eval = do_jet_reco &&
false;
129 bool do_fwd_jet_reco =
false;
130 bool do_fwd_jet_eval = do_fwd_jet_reco &&
false;
135 bool do_HIjetreco =
false && do_jet_reco && do_cemc_twr && do_hcalin_twr && do_hcalout_twr;
138 bool do_dst_compress =
false;
141 bool do_DSTReader =
false;
147 gSystem->Load(
"libfun4all.so");
148 gSystem->Load(
"libg4detectors.so");
149 gSystem->Load(
"libphhepmc.so");
150 gSystem->Load(
"libg4testbench.so");
151 gSystem->Load(
"libg4hough.so");
152 gSystem->Load(
"libg4calo.so");
153 gSystem->Load(
"libg4eval.so");
156 gROOT->LoadMacro(
"G4Setup_EICDetector.C");
157 G4Init(do_svtx,do_cemc,do_hcalin,do_magnet,do_hcalout,do_pipe,do_FGEM,do_EGEM,do_FEMC,do_FHCAL,do_EEMC,do_DIRC,do_RICH,do_Aerogel,n_TPC_layers);
159 int absorberactive = 0;
161 const string magfield =
"/phenix/upgrades/decadal/fieldmaps/sPHENIX.2d.root";
201 else if (readeictree)
215 gSystem->Load(
"libPHPythia8.so");
227 gSystem->Load(
"libPHPythia6.so");
239 gSystem->Load(
"libsHEPGen.so");
257 gSystem->Load(
"libPHSartre.so");
337 if (readhepmc || particles)
343 vgen->set_vtx_zrange(-10.0, +10.0);
358 else if (istate == 2)
375 cout <<
"Upsilon generator for istate = " << istate <<
" created and registered " << endl;
385 do_svtx,do_cemc,do_hcalin,do_magnet,do_hcalout,do_pipe,
386 do_FGEM,do_EGEM,do_FEMC,do_FHCAL,do_EEMC,do_DIRC,do_RICH,do_Aerogel,
397 gROOT->LoadMacro(
"G4_Bbc.C");
476 gROOT->LoadMacro(
"G4_Global.C");
480 else if (do_global_fastsim)
482 gROOT->LoadMacro(
"G4_Global.C");
492 gROOT->LoadMacro(
"G4_CaloTrigger.C");
502 gROOT->LoadMacro(
"G4_Jets.C");
507 gROOT->LoadMacro(
"G4_HIJetReco.C");
513 gROOT->LoadMacro(
"G4_FwdJets.C");
521 if (do_svtx_eval)
Svtx_Eval(
string(outputFile) +
"_g4svtx_eval.root");
523 if (do_cemc_eval)
CEMC_Eval(
string(outputFile) +
"_g4cemc_eval.root");
525 if (do_hcalin_eval)
HCALInner_Eval(
string(outputFile) +
"_g4hcalin_eval.root");
527 if (do_hcalout_eval)
HCALOuter_Eval(
string(outputFile) +
"_g4hcalout_eval.root");
529 if (do_FEMC_eval)
FEMC_Eval(
string(outputFile) +
"_g4femc_eval.root");
531 if (do_FHCAL_eval)
FHCAL_Eval(
string(outputFile) +
"_g4fhcal_eval.root");
533 if (do_EEMC_eval)
EEMC_Eval(
string(outputFile) +
"_g4eemc_eval.root");
535 if (do_jet_eval)
Jet_Eval(
string(outputFile) +
"_g4jet_eval.root");
537 if (do_fwd_jet_eval)
Jet_FwdEval(
string(outputFile) +
"_g4fwdjet_eval.root");
567 gROOT->LoadMacro(
"G4_DSTReader_EICDetector.C");
604 if (
nEvents == 0 && !readhits && !readhepmc)
606 cout <<
"using 0 for number of events is a bad idea when using particle generators" << endl;
607 cout <<
"it will run forever, so I just return without running anything" << endl;
618 std::cout <<
"All done" << std::endl;