Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Fun4All_PRDF.C
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file Fun4All_PRDF.C
1 #if ROOT_VERSION_CODE >= ROOT_VERSION(6,00,0)
5 
7 
8 #include <phool/recoConsts.h>
9 
10 #include <prototype4/CaloCalibration.h>
11 #include <prototype4/CaloTemplateFit.h>
12 #include <prototype4/CaloUnpackPRDF.h>
13 #include <prototype4/EventInfoSummary.h>
14 #include <prototype4/GenericUnpackPRDF.h>
15 #include <prototype4/PROTOTYPE4_FEM.h>
16 #include <Prototype4DSTReader.h>
17 #include <prototype4/RunInfoUnpackPRDF.h>
18 #include <prototype4/TempInfoUnpackPRDF.h>
19 
20 R__LOAD_LIBRARY(libfun4allraw.so)
21 R__LOAD_LIBRARY(libPrototype4.so)
22 #endif
23 
24 void Fun4All_PRDF(int nEvents = 200,
25  const char *input_file = "/sphenix/data/data02/sphenix/t1044/production/production_0506/beam_00002099-0000.prdf",
26  const char *output_file = "beam_00002099.root")
27 {
28  gSystem->Load("libfun4all");
29  gSystem->Load("libPrototype4.so");
30 
31  const bool do_cemc = true;
32  const bool do_hcal = true;
33  // const bool do_cemc = false;
34  // const bool do_hcal = false;
35 
37  // se->Verbosity(Fun4AllServer::VERBOSITY_SOME);
38  se->Verbosity(0);
39 
41  //rc->set_IntFlag("RUNNUMBER",0);
42 
43  // ------------------- Run info -> RUN node -------------------
44  RunInfoUnpackPRDF *unpack_run = new RunInfoUnpackPRDF();
45  // unpack_run->Verbosity(RunInfoUnpackPRDF::VERBOSITY_SOME);
46 
47  int i_offset = 0;
48 
49  // rcdaq_client create_device device_filenumbers_delete 9 911 "$HOME/beam_values.txt"
50  // S:MTNRG = 120 GeV
51  // F:MT6SC1 = 11127 Cnts
52  // F:MT6SC2 = 10585 Cnts
53  // F:MT6SC3 = 10442 Cnts
54  // F:MT6SC4 = 0 Cnts
55  // F:MT6SC5 = 20251 Cnts
56  // E:2CH = 981.9 mm
57  // E:2CV = 93.17 mm
58  // E:2CMT6T = 76.11 F
59  // E:2CMT6H = 18.09 %Hum
60  // F:MT5CP2 = .0301 Psia
61  // F:MT6CP2 = .6905 Psia
62  i_offset = 0;
63  unpack_run->add_channel("beam_MTNRG_GeV", 911, i_offset++, 1e-4);
64  unpack_run->add_channel("beam_MT6SC1_Cnts", 911, i_offset++, 1e-4);
65  unpack_run->add_channel("beam_MT6SC2_Cnts", 911, i_offset++, 1e-4);
66  unpack_run->add_channel("beam_MT6SC3_Cnts", 911, i_offset++, 1e-4);
67  unpack_run->add_channel("beam_MT6SC4_Cnts", 911, i_offset++, 1e-4);
68  unpack_run->add_channel("beam_MT6SC5_Cnts", 911, i_offset++, 1e-4);
69  unpack_run->add_channel("beam_2CH_mm", 911, i_offset++, 1e-4);
70  unpack_run->add_channel("beam_2CV_mm", 911, i_offset++, 1e-4);
71  unpack_run->add_channel("beam_2CMT6T_F", 911, i_offset++, 1e-4);
72  unpack_run->add_channel("beam_2CMT6H_RH", 911, i_offset++, 1e-4);
73  unpack_run->add_channel("beam_MT5CP2_Psia", 911, i_offset++, 1e-4);
74  unpack_run->add_channel("beam_MT6CP2_Psia", 911, i_offset++, 1e-4);
75 
76  // rcdaq_client create_device device_filenumbers_delete 9 984 "$HOME/DB_LOGGER_EMCAL_A0_values.txt"
77  unpack_run->add_channel("EMCAL_A0_HighGain", 984, 0, 1); // 1: pre-amp high gain, 0: nominal gain
78 
79  // rcdaq_client create_device device_filenumbers_delete 9 983 "$HOME/DB_LOGGER_EMCAL_GR0.txt"
80  unpack_run->add_channel("EMCAL_GR0_BiasOffset_Tower21", 983, 21 - 1, 1); // bias offset in mV for tower 21
81 
82  // rcdaq_client create_device device_filenumbers_delete 9 982 "$HOME/DB_LOGGER_EMCAL_T0_values.txt"
83  unpack_run->add_channel("EMCAL_T0_Tower21", 982, 21 - 1, 1e-3); // temperature reading in C for tower 21
84  //
85  se->registerSubsystem(unpack_run);
86  //
87  // ------------------- Temperature output -------------------
88  // TempInfoUnpackPRDF *unpack_temp = new TempInfoUnpackPRDF();
89  // unpack_temp->Verbosity(RunInfoUnpackPRDF::VERBOSITY_SOME);
90  // se->registerSubsystem(unpack_temp);
91 
92  // ------------------- HCal and EMcal -------------------
93 
94  CaloCalibration *calib = NULL;
95  CaloTemplateFit *calib_cemc = NULL;
96 
97  if (do_cemc)
98  {
99  SubsysReco *unpack = new CaloUnpackPRDF();
100  // unpack->Verbosity(1);
101  se->registerSubsystem(unpack);
102 
103  calib_cemc = new CaloTemplateFit("CEMC");
104  calib_cemc->set_nthreads(1);
105  calib_cemc->set_nsamples(12);
106  calib_cemc->set_templatefile("/gpfs/mnt/gpfs02/sphenix/user/trinn/fitting_algorithm_playing/prdfcode/prototype/offline/packages/Prototype4/templates.root");
107  // calib->Verbosity(4);
108  // calib->GetCalibrationParameters().set_double_param("calib_const_scale", 8. / 3000);
109  // calib->GetCalibrationParameters().set_int_param("use_chan_calibration", 0);
110  calib_cemc->GetCalibrationParameters().ReadFromFile("CEMC", "xml", 0, 0,
111  string(getenv("CALIBRATIONROOT")) + string("/Prototype4/Calibration/")); // calibration database
112  se->registerSubsystem(calib_cemc);
113  }
114 
115  if (do_hcal)
116  {
117  // leading order energy scale from Xu Sun
118  const double cin_cali = 0.00270145;
119  const double cout_cali = 0.0065718;
120 
121  calib = new CaloCalibration("HCALIN");
122  calib->set_calib_tower_node_prefix("CALIB_LG");
123  calib->set_raw_tower_node_prefix("RAW_LG");
124  calib->GetCalibrationParameters().set_name("hcalin_lg");
125 // calib->GetCalibrationParameters().set_double_param("calib_const_scale", cin_cali);
126 // calib->GetCalibrationParameters().set_int_param("use_chan_calibration", 0);
127  calib->GetCalibrationParameters().ReadFromFile("hcalin_lg", "xml", 0, 0,
128  string(getenv("CALIBRATIONROOT")) + string("/Prototype4/Calibration/")); // calibration database
129  se->registerSubsystem(calib);
130 
131  // calib = new CaloCalibration("HCALIN");
132  // calib->set_calib_tower_node_prefix("CALIB_HG");
133  // calib->set_raw_tower_node_prefix("RAW_HG");
134  // calib->GetCalibrationParameters().set_name("hcalin_hg");
135  // calib->GetCalibrationParameters().ReadFromFile("hcalin_hg", "xml", 0, 0,
136  // string(getenv("CALIBRATIONROOT")) + string("/Prototype4/Calibration/")); // calibration database
137  // se->registerSubsystem(calib);
138 
139  calib = new CaloCalibration("HCALOUT");
140  calib->set_calib_tower_node_prefix("CALIB_LG");
141  calib->set_raw_tower_node_prefix("RAW_LG");
142  calib->GetCalibrationParameters().set_name("hcalout_lg");
143 // calib->GetCalibrationParameters().set_double_param("calib_const_scale", cout_cali);
144 // calib->GetCalibrationParameters().set_int_param("use_chan_calibration", 0);
145  calib->GetCalibrationParameters().ReadFromFile("hcalout_lg", "xml", 0, 0,
146  string(getenv("CALIBRATIONROOT")) + string("/Prototype4/Calibration/")); // calibration database
147  se->registerSubsystem(calib);
148 
149  calib = new CaloCalibration("HCALOUT");
150  calib->set_calib_tower_node_prefix("CALIB_HG");
151  calib->set_raw_tower_node_prefix("RAW_HG");
152  calib->GetCalibrationParameters().set_name("hcalout_hg");
153 // calib->GetCalibrationParameters().set_double_param("calib_const_scale", cout_cali / 32);
154 // calib->GetCalibrationParameters().set_int_param("use_chan_calibration", 0);
155  calib->GetCalibrationParameters().ReadFromFile("hcalout_hg", "xml", 0, 0,
156  string(getenv("CALIBRATIONROOT")) + string("/Prototype4/Calibration/")); // calibration database
157  se->registerSubsystem(calib);
158  }
159  //
160  // // ------------------- Hodoscpes -------------------
161  //
162  const int first_packet_id = PROTOTYPE4_FEM::PACKET_ID;
163  // const int second_packet_id = 21102;
164  //
165  GenericUnpackPRDF *gunpack = NULL;
166 
167  const int N_hodo = 8;
168  // mapping based on SPHENIX-doc-121-v6
169  // 1 2 3 4 5 6 7 8
170  // 101 100 103 102 97 96 99 98
171  //
172  //9 109
173  //10 108
174  //11 111
175  //12 110
176  //13 105
177  //14 104
178  //15 107
179  //16 106
180 
181  gunpack = new GenericUnpackPRDF("HODO_VERTICAL");
182  gunpack->add_channel(first_packet_id, 101, 0);
183  gunpack->add_channel(first_packet_id, 100, 1);
184  gunpack->add_channel(first_packet_id, 103, 2);
185  gunpack->add_channel(first_packet_id, 102, 3);
186  gunpack->add_channel(first_packet_id, 97, 4);
187  gunpack->add_channel(first_packet_id, 96, 5);
188  gunpack->add_channel(first_packet_id, 99, 6);
189  gunpack->add_channel(first_packet_id, 98, 7);
190  se->registerSubsystem(gunpack);
191  //
192  gunpack = new GenericUnpackPRDF("HODO_HORIZONTAL");
193  gunpack->add_channel(first_packet_id, 109, 0);
194  gunpack->add_channel(first_packet_id, 108, 1);
195  gunpack->add_channel(first_packet_id, 111, 2);
196  gunpack->add_channel(first_packet_id, 110, 3);
197  gunpack->add_channel(first_packet_id, 105, 4);
198  gunpack->add_channel(first_packet_id, 104, 5);
199  gunpack->add_channel(first_packet_id, 107, 6);
200  gunpack->add_channel(first_packet_id, 106, 7);
201  se->registerSubsystem(gunpack);
202  //
203 
204  // Nicole Lewis [7:12 PM]
205  // added and commented on this Plain Text snippet: Run 545 MPV and Other Values
206  // Collumns: Height, MPV, Sigma, chi2, NDF
207  // Run 545
208  // HODO_HORIZONTAL[0] 18.0525 319.879 83.4359 139.487 199
209  // HODO_HORIZONTAL[1] 26.6811 262.209 65.1704 159.059 171
210  // HODO_HORIZONTAL[2] 27.5885 296.343 61.0538 171.291 205
211  // HODO_HORIZONTAL[3] 24.4132 299.135 72.4796 205.008 214
212  // HODO_HORIZONTAL[4] 28.6331 290.498 66.9209 177.386 205
213  // HODO_HORIZONTAL[5] 29.3528 263.781 61.5052 202.933 195
214  // HODO_HORIZONTAL[6] 21.5175 336.446 78.8985 170.031 206
215  // HODO_HORIZONTAL[7] 17.7948 336.247 91.8477 146.352 201
216  // HODO_VERTICAL[0] 15.3648 238.473 94.6679 111.272 166
217  // HODO_VERTICAL[1] 23.2368 225.202 54.8611 117.209 145
218  // HODO_VERTICAL[2] 25.3442 209.827 66.168 134.383 171
219  // HODO_VERTICAL[3] 36.8254 217.544 44.1445 122.811 167
220  // HODO_VERTICAL[4] 38.0982 210.6 44.9922 160.269 165
221  // HODO_VERTICAL[5] 38.1045 252.022 49.4073 165.239 200
222  // HODO_VERTICAL[6] 42.1052 223.528 44.5291 113.343 171
223  // HODO_VERTICAL[7] 31.1721 244.299 55.974 160.476 186
224 
225  calib = new CaloCalibration("HODO_VERTICAL");
226  calib->GetCalibrationParameters().set_int_param("use_chan_calibration", 1);
227  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 0), 1 / 238.473); // normalize to 1.0
228  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 1), 1 / 225.202); // normalize to 1.0
229  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 2), 1 / 209.827); // normalize to 1.0
230  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 3), 1 / 217.544); // normalize to 1.0
231  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 4), 1 / 210.6); // normalize to 1.0
232  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 5), 1 / 252.022); // normalize to 1.0
233  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 6), 1 / 223.528); // normalize to 1.0
234  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 7), 1 / 244.299); // normalize to 1.0
235  se->registerSubsystem(calib);
236 
237  calib = new CaloCalibration("HODO_HORIZONTAL");
238  calib->GetCalibrationParameters().set_int_param("use_chan_calibration", 1);
239  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 0), 1 / 319.879); // normalize to 1.0
240  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 1), 1 / 262.209); // normalize to 1.0
241  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 2), 1 / 296.343); // normalize to 1.0
242  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 3), 1 / 299.135); // normalize to 1.0
243  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 4), 1 / 290.498); // normalize to 1.0
244  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 5), 1 / 263.781); // normalize to 1.0
245  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 6), 1 / 336.446); // normalize to 1.0
246  calib->GetCalibrationParameters().set_double_param(Form("calib_const_column0_row%d", 7), 1 / 336.247); // normalize to 1.0
247  se->registerSubsystem(calib);
248  //
249  // // ------------------- Other detectors -------------------
250  //
251  // mapping based on SPHENIX-doc-121-v6
252  gunpack = new GenericUnpackPRDF("C1");
253  // unpack->Verbosity(1);
254  gunpack->add_channel(first_packet_id, 165, 0); // 24 Cerenkov 1
255  se->registerSubsystem(gunpack);
256  //
257  calib = new CaloCalibration("C1");
259  se->registerSubsystem(calib);
260  //
261  // mapping based on SPHENIX-doc-121-v6
262  gunpack = new GenericUnpackPRDF("C2");
263  // unpack->Verbosity(1);
264  gunpack->add_channel(first_packet_id, 166, 0); // C2 inner fast
265  gunpack->add_channel(first_packet_id, 160, 1); // C2 outer fast
266  gunpack->add_channel(first_packet_id, 167, 10); // C2 inner slow
267  se->registerSubsystem(gunpack);
268  //
269  calib = new CaloCalibration("C2");
271  calib->GetCalibrationParameters().set_double_param("calib_const_scale", 1);
272  calib->GetCalibrationParameters().set_int_param("use_chan_calibration", 1);
273  calib->GetCalibrationParameters().set_double_param("calib_const_column0_row0", 1);
274  calib->GetCalibrationParameters().set_double_param("calib_const_column0_row1", 1);
275  calib->GetCalibrationParameters().set_double_param("calib_const_column0_row10", 1);
276  calib->GetCalibrationParameters().set_double_param("calib_const_column0_row11", 1);
277  se->registerSubsystem(calib);
278  //
280  // gunpack = new GenericUnpackPRDF("HCAL_SCINT");
282  // gunpack->add_channel(second_packet_id, 19, 1);
283  // gunpack->add_channel(second_packet_id, 20, 2);
284  // gunpack->add_channel(second_packet_id, 21, 3);
285  // se->registerSubsystem(gunpack);
286  //
287  // calib = new CaloCalibration("HCAL_SCINT");
288  // se->registerSubsystem(calib);
289  //
290  // mapping based on SPHENIX-doc-121-v6
291  gunpack = new GenericUnpackPRDF("PbGL");
292  // unpack->Verbosity(1);
293  gunpack->add_channel(first_packet_id, 171, 0); // PbGl (612AM-3)
294  se->registerSubsystem(gunpack);
295 
296  calib = new CaloCalibration("PbGL");
297  calib->GetCalibrationParameters().set_double_param("calib_const_scale", 1);
298  se->registerSubsystem(calib);
299  //
300  // mapping based on SPHENIX-doc-121-v6
301  gunpack = new GenericUnpackPRDF("TRIGGER_VETO");
302  // unpack->Verbosity(1);
303  gunpack->add_channel(first_packet_id, 172, 0); // 172 Counters Bottom veto
304  gunpack->add_channel(first_packet_id, 173, 1); // 173 Counters Top veto
305  gunpack->add_channel(first_packet_id, 174, 2); // 174 Counters Right veto
306  gunpack->add_channel(first_packet_id, 175, 3); // 175 Counters Left Veto
307  se->registerSubsystem(gunpack);
308 
309  // Calibrate the MIP peak to an relative energy of +1.0
310 
311  // Nicole Lewis [7:12 PM]
312  // added and commented on this Plain Text snippet: Run 545 MPV and Other Values
313  // Collumns: Height, MPV, Sigma, chi2, NDF
314  // Run 545
315  // TRIGGER_VETO[0] 501.958 295.811 51.6134 223.972 194
316  // TRIGGER_VETO[1] 262.321 305.247 52.5851 138.403 158
317  // TRIGGER_VETO[2] 238.726 451.48 99.6016 274.339 245
318  // TRIGGER_VETO[3] 135.541 624.076 132.313 284.532 240
319 
320  calib = new CaloCalibration("TRIGGER_VETO");
322  calib->GetCalibrationParameters().set_double_param("calib_const_scale", 1);
323  calib->GetCalibrationParameters().set_int_param("use_chan_calibration", 1);
324  calib->GetCalibrationParameters().set_double_param("calib_const_column0_row0", 1. / 295.811);
325  calib->GetCalibrationParameters().set_double_param("calib_const_column0_row1", 1. / 305.247);
326  calib->GetCalibrationParameters().set_double_param("calib_const_column0_row2", 1. / 451.48);
327  calib->GetCalibrationParameters().set_double_param("calib_const_column0_row3", 1. / 624.076);
328  se->registerSubsystem(calib);
329  //
330  const int N_TileMapper = 16;
331  //
332  gunpack = new GenericUnpackPRDF("TILE_MAPPER");
333  for (int i = 0; i < N_TileMapper; ++i)
334  gunpack->add_channel(first_packet_id, 176 + i, i); // 24 Cerenkov 1
335  se->registerSubsystem(gunpack);
336  //
337  calib = new CaloCalibration("TILE_MAPPER");
338  calib->GetCalibrationParameters().set_double_param("calib_const_scale", 1);
339  se->registerSubsystem(calib);
340  //
341  // mapping based on SPHENIX-doc-121-v6
342  gunpack = new GenericUnpackPRDF("SC3");
343  // unpack->Verbosity(1);
344  gunpack->add_channel(first_packet_id, 169, 0); // MT6SC3 (612AM-2)
345  se->registerSubsystem(gunpack);
346  //
347  calib = new CaloCalibration("SC3");
348  calib->GetCalibrationParameters().set_double_param("calib_const_scale", 1);
349  se->registerSubsystem(calib);
350 
351  gunpack = new GenericUnpackPRDF("FINGER_COUNTER");
352  // unpack->Verbosity(1);
353  gunpack->add_channel(first_packet_id, 168, 0); // 168 Counters Finger counter
354  se->registerSubsystem(gunpack);
355  //
356  calib = new CaloCalibration("FINGER_COUNTER");
357  calib->GetCalibrationParameters().set_double_param("calib_const_scale", 1);
358  se->registerSubsystem(calib);
359  //
360  // gunpack = new GenericUnpackPRDF("SC_MWPC4");
362  // gunpack->add_channel(second_packet_id, 18, 0); // 18 SC behind MWPC4 From channel 4 of adjacent 612AM amplifier
363  // se->registerSubsystem(gunpack);
364  //
365  // calib = new CaloCalibration("SC_MWPC4");
366  // calib->GetCalibrationParameters().set_double_param("calib_const_scale", -1);
367  // se->registerSubsystem(calib);
368  //
369  // gunpack = new GenericUnpackPRDF("SPILL_WARBLER");
371  // gunpack->add_channel(second_packet_id, 16, 0); // Short Meritec cable 0 16 Spill warbler
372  // se->registerSubsystem(gunpack);
373  //
374  // // ------------------- Event summary -------------------
375  //
376  // EventInfoSummary * es = new EventInfoSummary();
377  // es->Verbosity(EventInfoSummary::VERBOSITY_MORE);
378  // se->registerSubsystem(es);
379 
380  // ------------------- Output -------------------
381  //main DST output
382  Fun4AllDstOutputManager *out_Manager = new Fun4AllDstOutputManager("DSTOUT",
383  output_file);
384  se->registerOutputManager(out_Manager);
385 
386  //alternatively, fast check on DST using DST Reader:
388  string(output_file) + string("_DSTReader.root"));
389 
390  reader->AddRunInfo("beam_MTNRG_GeV");
391  reader->AddRunInfo("beam_2CH_mm");
392  reader->AddRunInfo("beam_2CV_mm");
393  reader->AddRunInfo("EMCAL_A0_HighGain");
394  reader->AddRunInfo("EMCAL_GR0_BiasOffset_Tower21");
395  reader->AddRunInfo("EMCAL_T0_Tower21");
396  reader->AddRunInfo("EMCAL_Is_HighEta");
397 
398  // reader->AddEventInfo("beam_Is_In_Spill");
399  // reader->AddEventInfo("beam_SPILL_WARBLER_RMS");
400  // reader->AddEventInfo("CALIB_CEMC_Sum");
401  // reader->AddEventInfo("CALIB_LG_HCALIN_Sum");
402  // reader->AddEventInfo("CALIB_LG_HCALOUT_Sum");
403  //
404  if (do_hcal)
405  {
406  reader->AddTower("RAW_LG_HCALIN");
407  // reader->AddTower("RAW_HG_HCALIN");
408  reader->AddTower("RAW_LG_HCALOUT");
409  reader->AddTower("RAW_HG_HCALOUT");
410 
411  reader->AddTower("CALIB_LG_HCALIN");
412  // reader->AddTower("CALIB_HG_HCALIN");
413  reader->AddTower("CALIB_LG_HCALOUT");
414  reader->AddTower("CALIB_HG_HCALOUT");
415  }
416 
417  if (do_cemc)
418  {
419  reader->AddTower("RAW_CEMC");
420  reader->AddTower("CALIB_CEMC");
421  }
422 
423  //
424  reader->AddTower("RAW_HODO_VERTICAL");
425  reader->AddTower("RAW_HODO_HORIZONTAL");
426  reader->AddTower("CALIB_HODO_VERTICAL");
427  reader->AddTower("CALIB_HODO_HORIZONTAL");
428  //
429  reader->AddTower("RAW_C1");
430  reader->AddTower("CALIB_C1");
431 
432  reader->AddTower("RAW_C2");
433  reader->AddTower("CALIB_C2");
434  //
435  // reader->AddTower("RAW_HCAL_SCINT");
436  // reader->AddTower("CALIB_HCAL_SCINT");
437  //
438  reader->AddTower("RAW_PbGL");
439  reader->AddTower("CALIB_PbGL");
440  //
441  reader->AddTower("RAW_TRIGGER_VETO");
442  reader->AddTower("CALIB_TRIGGER_VETO");
443  //
444  reader->AddTower("RAW_TILE_MAPPER");
445  reader->AddTower("CALIB_TILE_MAPPER");
446  //
447  reader->AddTower("RAW_SC3");
448  reader->AddTower("CALIB_SC3");
449 
450  reader->AddTower("RAW_FINGER_COUNTER");
451  reader->AddTower("CALIB_FINGER_COUNTER");
452 
453  //
454  // reader->AddTower("RAW_SC_MWPC4");
455  // reader->AddTower("CALIB_SC_MWPC4");
456  //
457  // reader->AddTower("RAW_SPILL_WARBLER");
458 
459  // reader->AddTowerTemperature("EMCAL");
460  // reader->AddTowerTemperature("HCALIN");
461  // reader->AddTowerTemperature("HCALOUT");
462 
463  se->registerSubsystem(reader);
464 
466  in->fileopen(input_file);
467  se->registerInputManager(in);
468 
469  se->run(nEvents);
470 
471  se->End();
472 }