37 : tdcRes_const( "tdcRes_const", -1 )
38 , adcRes_const( "adcRes_const", -1 )
39 , m_rootFlag( "RootFlag", false )
40 , m_fileName( "FileName", "mrpc.root" )
41 , m_V( "E", 7000 )
42 , m_threshold( "Threshold", 5.5e+08 )
43 , m_nstep( "nstep", -1 )
44 , m_E_weight( "E_weight", -1 )
45 , m_saturationFlag( "saturationFlag", true )
46 , m_calTdcRes_charge_flag( "calTdcRes_charge_flag", 0 )
47 , m_charge2Time_flag( "charge2Time_flag", 0 )
48 , m_calAdcRes_charge_flag( "calAdcRes_charge_flag", 0 ) {
49
50
51 auto opt_svc = Gaudi::svcLocator()->service<IOptionsSvc>( "JobOptionsSvc" );
52 opt_svc->bind( "BesTofDigitizerEcV4", &tdcRes_const );
53 opt_svc->bind( "BesTofDigitizerEcV4", &adcRes_const );
54 opt_svc->bind( "BesTofDigitizerEcV4", &m_rootFlag );
55 opt_svc->bind( "BesTofDigitizerEcV4", &m_fileName );
56 opt_svc->bind( "BesTofDigitizerEcV4", &m_V );
57 opt_svc->bind( "BesTofDigitizerEcV4", &m_threshold );
58 opt_svc->bind( "BesTofDigitizerEcV4", &m_nstep );
59 opt_svc->bind( "BesTofDigitizerEcV4", &m_E_weight );
60 opt_svc->bind( "BesTofDigitizerEcV4", &m_saturationFlag );
61 opt_svc->bind( "BesTofDigitizerEcV4", &m_calTdcRes_charge_flag );
62 opt_svc->bind( "BesTofDigitizerEcV4", &m_charge2Time_flag );
63 opt_svc->bind( "BesTofDigitizerEcV4", &m_calAdcRes_charge_flag );
64
66
67 if ( m_rootFlag )
68 {
69 m_file = new TFile( m_fileName.value().c_str(), "RECREATE" );
70 m_tree = new TTree( "mrpc", "mrpc" );
71
72 m_tree->Branch( "event", &m_event, "event/D" );
73 m_tree->Branch( "partId", &m_partId, "partId/D" );
74 m_tree->Branch( "module", &m_module, "module/D" );
75 m_tree->Branch( "time_leading_sphi", &m_time_leading_sphi, "time_leading_sphi/D" );
76 m_tree->Branch( "time_leading_xphi", &m_time_leading_xphi, "time_leading_xphi/D" );
77 m_tree->Branch( "time_trailing_sphi", &m_time_trailing_sphi, "time_trailing_sphi/D" );
78 m_tree->Branch( "time_trailing_xphi", &m_time_trailing_xphi, "time_trailing_xphi/D" );
79 m_tree->Branch( "tdcRes", &m_tdcRes, "tdcRes/D" );
80 m_tree->Branch( "tdcRes_charge", &m_tdcRes_charge, "tdcRes_charge/D" );
81 m_tree->Branch( "adc", &m_adc, "adc/D" );
82 m_tree->Branch( "adcRes", &m_adcRes, "adcRes/D" );
83 m_tree->Branch( "adcRes_charge", &m_adcRes_charge, "adcRes_charge/D" );
84 m_tree->Branch( "strip", &m_strip, "strip/D" );
85 m_tree->Branch( "trkIndex", &m_trkIndex, "trkIndex/D" );
86 m_tree->Branch( "tStart", &m_tStart, "tStart/D" );
87 m_tree->Branch( "tPropagate_sphi", &m_tPropagate_sphi, "tPropagate_sphi/D" );
88 m_tree->Branch( "tPropagate_xphi", &m_tPropagate_xphi, "tPropagate_xphi/D" );
89 m_tree->Branch( "tThreshold", &m_tThreshold, "tThreshold/D" );
90 m_tree->Branch( "charge", &m_charge, "charge/D" );
91 m_tree->Branch( "nhit", &m_nhit, "nhit/I" );
92 m_tree->Branch( "ions_hit", m_ions_hit, "ions_hit[nhit]/D" );
93 m_tree->Branch( "trkIndex_hit", m_trkIndex_hit, "trkIndex_hit[nhit]/D" );
94 m_tree->Branch( "pdgCode_hit", m_pdgCode_hit, "pdgCode_hit[nhit]/D" );
95 m_tree->Branch( "gap_hit", m_gap_hit, "gap_hit[nhit]/D" );
96 m_tree->Branch( "underStrip_hit", m_underStrip_hit, "underStrip_hit[nhit]/D" );
97 m_tree->Branch( "locx_hit", m_locx_hit, "locx_hit[nhit]/D" );
98 m_tree->Branch( "locy_hit", m_locy_hit, "locy_hit[nhit]/D" );
99 m_tree->Branch( "locz_hit", m_locz_hit, "locz_hit[nhit]/D" );
100 m_tree->Branch( "x_hit", m_x_hit, "x_hit[nhit]/D" );
101 m_tree->Branch( "y_hit", m_y_hit, "y_hit[nhit]/D" );
102 m_tree->Branch( "z_hit", m_z_hit, "z_hit[nhit]/D" );
103 m_tree->Branch( "px_hit", m_px_hit, "px_hit[nhit]/D" );
104 m_tree->Branch( "py_hit", m_py_hit, "py_hit[nhit]/D" );
105 m_tree->Branch( "pz_hit", m_pz_hit, "pz_hit[nhit]/D" );
106 }
107}