File indexing completed on 2025-08-05 08:12:01
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include <string>
0012
0013 void
0014 G4DSTreader_EICDetector( const char * outputFile = "G4sPHENIXCells.root",
0015 int absorberactive = 1,
0016 bool do_svtx = true,
0017 bool do_cemc = true,
0018 bool do_hcalin = true,
0019 bool do_magnet = true,
0020 bool do_hcalout = true,
0021 bool do_cemc_twr = true,
0022 bool do_hcalin_twr = true,
0023 bool do_magnet = true,
0024 bool do_hcalout_twr = true,
0025 bool do_FGEM = true,
0026 bool do_EGEM = true,
0027 bool do_FHCAL = true,
0028 bool do_FHCAL_twr = true,
0029 bool do_FEMC = true,
0030 bool do_FEMC_twr = true,
0031 bool do_EEMC = true,
0032 bool do_EEMC_twr = true
0033 )
0034 {
0035
0036
0037 const bool debug = false;
0038
0039
0040 const bool save_g4_raw = true;
0041
0042
0043 PHG4DSTReader* ana = new PHG4DSTReader(
0044 string(outputFile) + string("_DSTReader.root"));
0045 ana->set_save_particle(true);
0046 ana->set_load_all_particle(false);
0047 ana->set_load_active_particle(true);
0048 ana->set_save_vertex(true);
0049
0050 if (debug)
0051 {
0052 ana->Verbosity(2);
0053 }
0054
0055 if (save_g4_raw)
0056 {
0057 if (do_svtx)
0058 {
0059 ana->AddNode("SVTX");
0060 }
0061
0062 if (do_cemc)
0063 {
0064 ana->AddNode("CEMC");
0065 if (absorberactive)
0066 {
0067 ana->AddNode("ABSORBER_CEMC");
0068 ana->AddNode("CEMC_ELECTRONICS");
0069 ana->AddNode("CEMC_SPT");
0070 }
0071 }
0072
0073 if (do_hcalin)
0074 {
0075 ana->AddNode("HCALIN");
0076 if (absorberactive)
0077 ana->AddNode("ABSORBER_HCALIN");
0078 }
0079
0080 if (do_magnet)
0081 {
0082 if (absorberactive)
0083 ana->AddNode("MAGNET");
0084 }
0085
0086 if (do_hcalout)
0087 {
0088 ana->AddNode("HCALOUT");
0089 if (absorberactive)
0090 ana->AddNode("ABSORBER_HCALOUT");
0091 }
0092
0093 if (do_FHCAL)
0094 {
0095 ana->AddNode("FHCAL");
0096 if (absorberactive)
0097 ana->AddNode("ABSORBER_FHCAL");
0098 }
0099
0100 if (do_FEMC)
0101 {
0102 ana->AddNode("FEMC");
0103 if (absorberactive)
0104 ana->AddNode("ABSORBER_FEMC");
0105 }
0106
0107 if (do_EEMC)
0108 {
0109 ana->AddNode("EEMC");
0110 if (absorberactive)
0111 ana->AddNode("ABSORBER_EEMC");
0112 }
0113
0114 if (do_FGEM)
0115 {
0116 ana->AddNode("FGEM_0");
0117 ana->AddNode("FGEM_1");
0118 ana->AddNode("FGEM_2");
0119 ana->AddNode("FGEM_3");
0120 ana->AddNode("FGEM_4");
0121 }
0122
0123 if (do_EGEM)
0124 {
0125 ana->AddNode("EGEM_0");
0126 ana->AddNode("EGEM_1");
0127 ana->AddNode("EGEM_2");
0128 }
0129
0130 ana->AddNode("BH_1");
0131 ana->AddNode("BH_FORWARD_PLUS");
0132 ana->AddNode("BH_FORWARD_NEG");
0133
0134 }
0135
0136 ana->set_tower_zero_sup(1e-6);
0137 if (do_cemc_twr)
0138 {
0139 ana->AddTower("SIM_CEMC");
0140 ana->AddTower("RAW_CEMC");
0141 ana->AddTower("CALIB_CEMC");
0142 }
0143 if (do_hcalin_twr)
0144 {
0145 ana->AddTower("SIM_HCALIN");
0146 ana->AddTower("RAW_HCALIN");
0147 ana->AddTower("CALIB_HCALIN");
0148 }
0149 if (do_hcalout_twr)
0150 {
0151 ana->AddTower("SIM_HCALOUT");
0152 ana->AddTower("RAW_HCALOUT");
0153 ana->AddTower("CALIB_HCALOUT");
0154 }
0155 if (do_FHCAL_twr)
0156 {
0157 ana->AddTower("SIM_FHCAL");
0158 ana->AddTower("RAW_FHCAL");
0159 ana->AddTower("CALIB_FHCAL");
0160 }
0161 if (do_FEMC_twr)
0162 {
0163 ana->AddTower("SIM_FEMC");
0164 ana->AddTower("RAW_FEMC");
0165 ana->AddTower("CALIB_FEMC");
0166 }
0167 if (do_EEMC_twr)
0168 {
0169 ana->AddTower("SIM_EEMC");
0170 ana->AddTower("RAW_EEMC");
0171 ana->AddTower("CALIB_EEMC");
0172 }
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182
0183
0184
0185
0186 Fun4AllServer *se = Fun4AllServer::instance();
0187 se->registerSubsystem(ana);
0188 }