6 string inputFile=
"/direct/phenix+u/spjeffas/LQGENEP/TestOut.1093event.root",
8 const char * outputFile =
"G4EICDetector.root"
12 const int n_TPC_layers = 40;
22 string directory =
"/direct/phenix+u/spjeffas/leptoquark/output/"+
output+
"/";
35 const bool readhits =
false;
38 const bool readhepmc =
false;
41 const bool readeictree =
true;
44 const bool runpythia8 =
false;
47 const bool runpythia6 =
false;
50 const bool runhepgen =
false;
53 const bool runsartre =
false;
59 const bool particles =
false && !readhits;
61 const bool usegun =
false && !readhits;
63 const bool upsilons =
false && !readhits;
75 bool do_svtx_cell = do_svtx &&
true;
76 bool do_svtx_track = do_svtx_cell &&
true;
77 bool do_svtx_eval = do_svtx_track &&
true;
79 bool do_pstof =
false;
83 bool do_cemc_cell =
true;
84 bool do_cemc_twr =
true;
85 bool do_cemc_cluster =
true;
86 bool do_cemc_eval =
true;
88 bool do_hcalin =
true;
89 bool do_hcalin_cell =
true;
90 bool do_hcalin_twr =
true;
91 bool do_hcalin_cluster =
true;
92 bool do_hcalin_eval =
true;
94 bool do_cemc_cell = do_cemc &&
true;
95 bool do_cemc_twr = do_cemc_cell &&
true;
96 bool do_cemc_cluster = do_cemc_twr &&
true;
97 bool do_cemc_eval = do_cemc_cluster &&
true;
99 bool do_hcalin =
true;
100 bool do_hcalin_cell = do_hcalin &&
true;
101 bool do_hcalin_twr = do_hcalin_cell &&
true;
102 bool do_hcalin_cluster = do_hcalin_twr &&
true;
103 bool do_hcalin_eval = do_hcalin_cluster &&
true;
106 bool do_magnet =
true;
108 bool do_hcalout =
true;
110 bool do_hcalout_cell =
true;
111 bool do_hcalout_twr =
true;
112 bool do_hcalout_cluster =
true;
113 bool do_hcalout_eval =
true;
115 bool do_global =
true;
116 bool do_global_fastsim =
false;
118 bool do_jet_reco =
true;
119 bool do_jet_eval =
true;
121 bool do_fwd_jet_reco =
true;
122 bool do_fwd_jet_eval =
false;
124 bool do_hcalout_cell = do_hcalout &&
true;
125 bool do_hcalout_twr = do_hcalout_cell &&
true;
126 bool do_hcalout_cluster = do_hcalout_twr &&
true;
127 bool do_hcalout_eval = do_hcalout_cluster &&
true;
135 bool do_FGEM_track = do_FGEM &&
false;
138 bool do_Aerogel =
true;
141 bool do_FEMC_cell = do_FEMC &&
true;
142 bool do_FEMC_twr = do_FEMC_cell &&
true;
143 bool do_FEMC_cluster = do_FEMC_twr &&
true;
144 bool do_FEMC_eval = do_FEMC_cluster &&
true;
146 bool do_FHCAL =
true;
147 bool do_FHCAL_cell = do_FHCAL &&
true;
148 bool do_FHCAL_twr = do_FHCAL_cell &&
true;
149 bool do_FHCAL_cluster = do_FHCAL_twr &&
true;
150 bool do_FHCAL_eval = do_FHCAL_cluster &&
true;
154 bool do_EGEM_track = do_EGEM &&
false;
157 bool do_EEMC_cell = do_EEMC &&
true;
158 bool do_EEMC_twr = do_EEMC_cell &&
true;
159 bool do_EEMC_cluster = do_EEMC_twr &&
true;
160 bool do_EEMC_eval = do_EEMC_cluster &&
true;
163 bool do_lepto_analysis =
true;
166 bool do_global =
true;
167 bool do_global_fastsim =
false;
169 bool do_calotrigger =
false && do_cemc_twr && do_hcalin_twr && do_hcalout_twr;
171 bool do_jet_reco =
true;
172 bool do_jet_eval = do_jet_reco &&
true;
174 bool do_fwd_jet_reco =
true;
175 bool do_fwd_jet_eval = do_fwd_jet_reco &&
true;
180 bool do_HIjetreco =
false && do_jet_reco && do_cemc_twr && do_hcalin_twr && do_hcalout_twr;
183 bool do_dst_compress =
false;
186 bool do_DSTReader =
false;
192 gSystem->Load(
"libfun4all.so");
193 gSystem->Load(
"libg4detectors.so");
194 gSystem->Load(
"libphhepmc.so");
195 gSystem->Load(
"libg4testbench.so");
196 gSystem->Load(
"libg4hough.so");
197 gSystem->Load(
"libg4calo.so");
198 gSystem->Load(
"libg4eval.so");
199 gSystem->Load(
"libeicana.so");
202 gROOT->LoadMacro(
"G4Setup_EICDetector.C");
203 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);
205 int absorberactive = 0;
207 const string magfield =
"/phenix/upgrades/decadal/fieldmaps/sPHENIX.2d.root";
246 else if (readeictree)
256 gSystem->Load(
"libPHPythia8.so");
260 pythia8->
set_config_file(
"/direct/phenix+u/spjeffas/coresoftware/generators/PHPythia8/phpythia8.cfg");
268 gSystem->Load(
"libPHPythia6.so");
272 pythia6->
set_config_file(
"/direct/phenix+u/spjeffas/coresoftware/generators/PHPythia6/phpythia6_ep.cfg");
280 gSystem->Load(
"libsHEPGen.so");
298 gSystem->Load(
"libPHSartre.so");
400 if (readhepmc || particles)
406 vgen->set_vtx_zrange(-10.0, +10.0);
421 else if (istate == 2)
438 cout <<
"Upsilon generator for istate = " << istate <<
" created and registered " << endl;
448 do_svtx,do_cemc,do_hcalin,do_magnet,do_hcalout,do_pipe,
449 do_FGEM,do_EGEM,do_FEMC,do_FHCAL,do_EEMC,do_DIRC,do_RICH,do_Aerogel,
460 gROOT->LoadMacro(
"G4_Bbc.C");
539 gROOT->LoadMacro(
"G4_Global.C");
543 else if (do_global_fastsim)
545 gROOT->LoadMacro(
"G4_Global.C");
555 gROOT->LoadMacro(
"G4_CaloTrigger.C");
565 gROOT->LoadMacro(
"G4_Jets.C");
570 gROOT->LoadMacro(
"G4_HIJetReco.C");
576 gROOT->LoadMacro(
"G4_FwdJets.C");
585 if (do_svtx_eval)
Svtx_Eval(directory+
"g4svtx_p"+pbeam+
"_e"+ebeam+
"_"+
n+
"events_eval.root");
587 if (do_cemc_eval)
CEMC_Eval(directory+
"g4cemc_p"+pbeam+
"_e"+ebeam+
"_"+
n+
"events_eval.root");
589 if (do_hcalin_eval)
HCALInner_Eval(directory+
"g4hcalin_p"+pbeam+
"_e"+ebeam+
"_"+
n+
"events_eval.root");
591 if (do_hcalout_eval)
HCALOuter_Eval(directory+
"g4hcalout_p"+pbeam+
"_e"+ebeam+
"_"+
n+
"events_eval.root");
593 if (do_jet_eval)
Jet_Eval(directory+
"g4jet_p"+pbeam+
"_e"+ebeam+
"_"+
n+
"events_eval.root");
595 if (do_fwd_jet_eval)
Jet_FwdEval(directory+
"g4fwdjet_p"+pbeam+
"_e"+ebeam+
"_"+
n+
"events_eval.root");
597 if(do_lepto_analysis){
598 gROOT->LoadMacro(
"G4_Lepto.C");
599 G4_Lepto(directory+
"LeptoAna_p"+pbeam+
"_e"+ebeam+
"_"+
n+
"events");
634 gROOT->LoadMacro(
"G4_DSTReader_EICDetector.C");
670 if (nEvents == 0 && !readhits && !readhepmc)
672 cout <<
"using 0 for number of events is a bad idea when using particle generators" << endl;
673 cout <<
"it will run forever, so I just return without running anything" << endl;
684 std::cout <<
"All done" << std::endl;