00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef HecRunHeader2002v1_h
00010 #define HecRunHeader2002v1_h
00011
00012 #include <TROOT.h>
00013 #include <TChain.h>
00014 #include <TFile.h>
00015 #include <string>
00016 #include <iostream>
00017
00018 using std::string;
00019 using std::cout;
00020 using std::endl;
00021
00022
00023
00024
00025
00026
00027
00028
00029 class HecRunHeader2002v1 {
00030 public :
00031 TTree *fChain;
00032 Int_t fCurrent;
00033
00034
00035
00036
00037
00038 UInt_t getFirstCh(){ return first_ch;};
00039
00040
00041 UInt_t getLastCh(){ return last_ch;};
00042
00043
00044 Int_t peakMethod() {return peakf; };
00045
00046
00047 UInt_t calVersion(){ return cal_version;};
00048
00049
00050 UInt_t digVersion(){ return dig_version;};
00051
00052
00053 UInt_t getShower(){ return shower;};
00054
00055
00056 UInt_t getEUnit() { return eunit;};
00057
00058
00059 Int_t getCellsUsed(){ return cells_used;};
00060
00061
00062 Float_t getPedRms(int febno){
00063 if(febno >= getFirstCh() && febno <= getLastCh() ){
00064 return ped_rms[febno-1];
00065 } else {
00066 cout << "Ped RMS accessed out of bounds at: " << febno <<endl;
00067 exit(1);
00068 }
00069 }
00070
00071
00072 UInt_t getTimingType() { return timing_type;};
00073
00074
00075 string getDataFileName(){ return m_fileName;};
00076
00077 void setDataFileName(string fileName){ m_fileName =fileName;};
00078
00079
00080
00081
00082 string m_fileName;
00083 UInt_t first_ch;
00084 UInt_t last_ch;
00085 Int_t peakf;
00086 UInt_t cal_version;
00087 UInt_t dig_version;
00088 UInt_t shower;
00089 UInt_t eunit;
00090 Int_t cells_used;
00091 Float_t ped_rms[1152];
00092 Int_t ieta[1152];
00093 Int_t iphi[1152];
00094 Int_t iz[1152];
00095 Int_t ieta_atlas[1152];
00096 Int_t iphi_atlas[1152];
00097 Int_t iz_atlas[1152];
00098 Float_t Signalovernoise_cut;
00099 Float_t Resolutioncoeffa;
00100 Float_t Resolutioncoeffb;
00101 Int_t Timehec_sample_low;
00102 Float_t Timehec_low_signal_cut;
00103 Float_t Timehec_int_signal_scale;
00104 Float_t Timehec_int_signal_dt;
00105 Int_t Timeemec_sample_low;
00106 Float_t Timeemec_low_signal_cut;
00107 Float_t Timeemec_int_signal_scale;
00108 Float_t Timeemec_int_signal_dt;
00109 UInt_t timing_type;
00110 Float_t t0_dig;
00111 Float_t t0_cub_c;
00112 Float_t t0_cub_epi;
00113 Float_t t0_cub_mu;
00114 Int_t t0_cub_trig;
00115 Int_t tdc_wac_c;
00116 Int_t tdc_wac_epi;
00117 Int_t tdc_wac_mu;
00118 Int_t tdc_wac_reference;
00119 UInt_t tdc_guard_region;
00120 Int_t tdc_force_wac;
00121 Int_t sample_low;
00122 Float_t low_signal_cut;
00123 Float_t int_signal_scale;
00124 Float_t int_signal_dt;
00125
00126
00127 TBranch *b_first_ch;
00128 TBranch *b_last_ch;
00129 TBranch *b_peakf;
00130 TBranch *b_cal_version;
00131 TBranch *b_dig_version;
00132 TBranch *b_shower;
00133 TBranch *b_eunit;
00134 TBranch *b_cells_used;
00135 TBranch *b_ped_rms;
00136 TBranch *b_ieta;
00137 TBranch *b_iphi;
00138 TBranch *b_iz;
00139 TBranch *b_ieta_atlas;
00140 TBranch *b_iphi_atlas;
00141 TBranch *b_iz_atlas;
00142 TBranch *b_Signalovernoise_cut;
00143 TBranch *b_Resolutioncoeffa;
00144 TBranch *b_Resolutioncoeffb;
00145 TBranch *b_Timehec_sample_low;
00146 TBranch *b_Timehec_low_signal_cut;
00147 TBranch *b_Timehec_int_signal_scale;
00148 TBranch *b_Timehec_int_signal_dt;
00149 TBranch *b_Timeemec_sample_low;
00150 TBranch *b_Timeemec_low_signal_cut;
00151 TBranch *b_Timeemec_int_signal_scale;
00152 TBranch *b_Timeemec_int_signal_dt;
00153 TBranch *b_timing_type;
00154 TBranch *b_t0_dig;
00155 TBranch *b_t0_cub_c;
00156 TBranch *b_t0_cub_epi;
00157 TBranch *b_t0_cub_mu;
00158 TBranch *b_t0_cub_trig;
00159 TBranch *b_tdc_wac_c;
00160 TBranch *b_tdc_wac_epi;
00161 TBranch *b_tdc_wac_mu;
00162 TBranch *b_tdc_wac_reference;
00163 TBranch *b_tdc_guard_region;
00164 TBranch *b_tdc_force_wac;
00165 TBranch *b_sample_low;
00166 TBranch *b_low_signal_cut;
00167 TBranch *b_int_signal_scale;
00168 TBranch *b_int_signal_dt;
00169
00170 HecRunHeader2002v1(TTree *tree=0,string fileName=0);
00171 ~HecRunHeader2002v1();
00172 Int_t Cut(Int_t entry);
00173 Int_t GetEntry(Int_t entry);
00174 Int_t LoadTree(Int_t entry);
00175 void Init(TTree *tree);
00176 void Loop();
00177 Bool_t Notify();
00178 void Show(Int_t entry = -1);
00179
00180 };
00181
00182
00183
00184 #endif
00185
00186 #ifdef HecRunHeader2002v1_cxx
00187 HecRunHeader2002v1::HecRunHeader2002v1(TTree *tree,string fileName)
00188 {
00189
00190
00191 TFile *f ;
00192 if (tree == 0) {
00193 f = new TFile(fileName.c_str());
00194
00195 tree = (TTree*)f->Get("h1000");
00196
00197 }
00198 Init(tree);
00199 }
00200
00201 HecRunHeader2002v1::~HecRunHeader2002v1()
00202 {
00203 if (!fChain) return;
00204 delete fChain->GetCurrentFile();
00205 }
00206
00207 Int_t HecRunHeader2002v1::GetEntry(Int_t entry)
00208 {
00209
00210 if (!fChain) return 0;
00211 return fChain->GetEntry(entry);
00212 }
00213 Int_t HecRunHeader2002v1::LoadTree(Int_t entry)
00214 {
00215
00216 if (!fChain) return -5;
00217 Int_t centry = fChain->LoadTree(entry);
00218 if (centry < 0) return centry;
00219 if (fChain->IsA() != TChain::Class()) return centry;
00220 TChain *chain = (TChain*)fChain;
00221 if (chain->GetTreeNumber() != fCurrent) {
00222 fCurrent = chain->GetTreeNumber();
00223 Notify();
00224 }
00225 return centry;
00226 }
00227
00228 void HecRunHeader2002v1::Init(TTree *tree)
00229 {
00230
00231 if (tree == 0) return;
00232 fChain = tree;
00233 fCurrent = -1;
00234 fChain->SetMakeClass(1);
00235
00236 fChain->SetBranchAddress("first_ch",&first_ch);
00237 fChain->SetBranchAddress("last_ch",&last_ch);
00238 fChain->SetBranchAddress("peakf",&peakf);
00239 fChain->SetBranchAddress("cal_version",&cal_version);
00240 fChain->SetBranchAddress("dig_version",&dig_version);
00241 fChain->SetBranchAddress("shower",&shower);
00242 fChain->SetBranchAddress("eunit",&eunit);
00243 fChain->SetBranchAddress("cells_used",&cells_used);
00244 fChain->SetBranchAddress("ped_rms",ped_rms);
00245 fChain->SetBranchAddress("ieta",ieta);
00246 fChain->SetBranchAddress("iphi",iphi);
00247 fChain->SetBranchAddress("iz",iz);
00248 fChain->SetBranchAddress("ieta_atlas",ieta_atlas);
00249 fChain->SetBranchAddress("iphi_atlas",iphi_atlas);
00250 fChain->SetBranchAddress("iz_atlas",iz_atlas);
00251 fChain->SetBranchAddress("Signalovernoise_cut",&Signalovernoise_cut);
00252 fChain->SetBranchAddress("Resolutioncoeffa",&Resolutioncoeffa);
00253 fChain->SetBranchAddress("Resolutioncoeffb",&Resolutioncoeffb);
00254 fChain->SetBranchAddress("Timehec_sample_low",&Timehec_sample_low);
00255 fChain->SetBranchAddress("Timehec_low_signal_cut",&Timehec_low_signal_cut);
00256 fChain->SetBranchAddress("Timehec_int_signal_scale",&Timehec_int_signal_scale);
00257 fChain->SetBranchAddress("Timehec_int_signal_dt",&Timehec_int_signal_dt);
00258 fChain->SetBranchAddress("Timeemec_sample_low",&Timeemec_sample_low);
00259 fChain->SetBranchAddress("Timeemec_low_signal_cut",&Timeemec_low_signal_cut);
00260 fChain->SetBranchAddress("Timeemec_int_signal_scale",&Timeemec_int_signal_scale);
00261 fChain->SetBranchAddress("Timeemec_int_signal_dt",&Timeemec_int_signal_dt);
00262 fChain->SetBranchAddress("timing_type",&timing_type);
00263 fChain->SetBranchAddress("t0_dig",&t0_dig);
00264 fChain->SetBranchAddress("t0_cub_c",&t0_cub_c);
00265 fChain->SetBranchAddress("t0_cub_epi",&t0_cub_epi);
00266 fChain->SetBranchAddress("t0_cub_mu",&t0_cub_mu);
00267 fChain->SetBranchAddress("t0_cub_trig",&t0_cub_trig);
00268 fChain->SetBranchAddress("tdc_wac_c",&tdc_wac_c);
00269 fChain->SetBranchAddress("tdc_wac_epi",&tdc_wac_epi);
00270 fChain->SetBranchAddress("tdc_wac_mu",&tdc_wac_mu);
00271 fChain->SetBranchAddress("tdc_wac_reference",&tdc_wac_reference);
00272 fChain->SetBranchAddress("tdc_guard_region",&tdc_guard_region);
00273 fChain->SetBranchAddress("tdc_force_wac",&tdc_force_wac);
00274 fChain->SetBranchAddress("sample_low",&sample_low);
00275 fChain->SetBranchAddress("low_signal_cut",&low_signal_cut);
00276 fChain->SetBranchAddress("int_signal_scale",&int_signal_scale);
00277 fChain->SetBranchAddress("int_signal_dt",&int_signal_dt);
00278 Notify();
00279 }
00280
00281 Bool_t HecRunHeader2002v1::Notify()
00282 {
00283
00284
00285 b_first_ch = fChain->GetBranch("first_ch");
00286 b_last_ch = fChain->GetBranch("last_ch");
00287 b_peakf = fChain->GetBranch("peakf");
00288 b_cal_version = fChain->GetBranch("cal_version");
00289 b_dig_version = fChain->GetBranch("dig_version");
00290 b_shower = fChain->GetBranch("shower");
00291 b_eunit = fChain->GetBranch("eunit");
00292 b_cells_used = fChain->GetBranch("cells_used");
00293 b_ped_rms = fChain->GetBranch("ped_rms");
00294 b_ieta = fChain->GetBranch("ieta");
00295 b_iphi = fChain->GetBranch("iphi");
00296 b_iz = fChain->GetBranch("iz");
00297 b_ieta_atlas = fChain->GetBranch("ieta_atlas");
00298 b_iphi_atlas = fChain->GetBranch("iphi_atlas");
00299 b_iz_atlas = fChain->GetBranch("iz_atlas");
00300 b_Signalovernoise_cut = fChain->GetBranch("Signalovernoise_cut");
00301 b_Resolutioncoeffa = fChain->GetBranch("Resolutioncoeffa");
00302 b_Resolutioncoeffb = fChain->GetBranch("Resolutioncoeffb");
00303 b_Timehec_sample_low = fChain->GetBranch("Timehec_sample_low");
00304 b_Timehec_low_signal_cut = fChain->GetBranch("Timehec_low_signal_cut");
00305 b_Timehec_int_signal_scale = fChain->GetBranch("Timehec_int_signal_scale");
00306 b_Timehec_int_signal_dt = fChain->GetBranch("Timehec_int_signal_dt");
00307 b_Timeemec_sample_low = fChain->GetBranch("Timeemec_sample_low");
00308 b_Timeemec_low_signal_cut = fChain->GetBranch("Timeemec_low_signal_cut");
00309 b_Timeemec_int_signal_scale = fChain->GetBranch("Timeemec_int_signal_scale");
00310 b_Timeemec_int_signal_dt = fChain->GetBranch("Timeemec_int_signal_dt");
00311 b_timing_type = fChain->GetBranch("timing_type");
00312 b_t0_dig = fChain->GetBranch("t0_dig");
00313 b_t0_cub_c = fChain->GetBranch("t0_cub_c");
00314 b_t0_cub_epi = fChain->GetBranch("t0_cub_epi");
00315 b_t0_cub_mu = fChain->GetBranch("t0_cub_mu");
00316 b_t0_cub_trig = fChain->GetBranch("t0_cub_trig");
00317 b_tdc_wac_c = fChain->GetBranch("tdc_wac_c");
00318 b_tdc_wac_epi = fChain->GetBranch("tdc_wac_epi");
00319 b_tdc_wac_mu = fChain->GetBranch("tdc_wac_mu");
00320 b_tdc_wac_reference = fChain->GetBranch("tdc_wac_reference");
00321 b_tdc_guard_region = fChain->GetBranch("tdc_guard_region");
00322 b_tdc_force_wac = fChain->GetBranch("tdc_force_wac");
00323 b_sample_low = fChain->GetBranch("sample_low");
00324 b_low_signal_cut = fChain->GetBranch("low_signal_cut");
00325 b_int_signal_scale = fChain->GetBranch("int_signal_scale");
00326 b_int_signal_dt = fChain->GetBranch("int_signal_dt");
00327 return kTRUE;
00328
00329 }
00330
00331 void HecRunHeader2002v1::Show(Int_t entry)
00332 {
00333
00334
00335 if (!fChain) return;
00336 fChain->Show(entry);
00337 }
00338 Int_t HecRunHeader2002v1::Cut(Int_t entry)
00339 {
00340
00341
00342
00343 return 1;
00344 }
00345 #endif // #ifdef HecRunHeader2002v1_cxx
00346