NtupleReader/NtupleReader/NtupleReaderFast.h

00001 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00002 // 14.02.2007, AUTHOR: THIES EHRICH
00003 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00004 
00005 #ifndef NtupleReaderFastH
00006 #define NtupleReaderFastH
00007 
00008 //::::::::::::::::::::::::::::
00009 //:: CLASS NtupleReaderFast ::
00010 //::::::::::::::::::::::::::::
00011 
00022 
00023 //::::::::::::::::::
00024 //:: HEADER FILES ::
00025 //::::::::::::::::::
00026 
00027 // STL //
00028 #include <string>
00029 #include <vector>
00030 
00031 // ROOT //
00032 #include "TChain.h"
00033 #include "TTree.h"
00034 #include "TArrayF.h"
00035 #include "TArrayI.h"
00036 
00037 // analysis and event classes//
00038 #include "MyAnalysis.h"
00039 
00040 
00041 class NtupleReaderFast {
00042 
00043 public:
00044 // Constructors //
00045         NtupleReaderFast(const std::vector<std::string> & file_name,
00046                                 const std::string & tree_name,
00047                                 MyAnalysis * analysis) {
00048                 init(file_name, tree_name, analysis);
00049                 }
00054 
00055         ~NtupleReaderFast(void) {
00056                 destruct();
00057                 }
00059 
00060 // Methods //
00061         void event_loop(void);
00065 
00066 private:
00067 // data file and data tree //
00068         TChain *m_chain; // chain containing the data trees
00069 
00070 // tree variables //
00071         Int_t                   RunNumber;
00072         Int_t                   EventNumber;
00073         Char_t                  StreamATLFAST_ref;
00074         Char_t                  Stream1_ref[153];
00075         Char_t                  Token[153];
00076         Int_t                   Run;
00077         Int_t                   Event;
00078         Int_t                   Time;
00079         Double_t                Weight;
00080         Int_t                   IEvent;
00081         
00082         Int_t                   NELE;
00083         
00084         Float_t PXELE[12];
00085         Float_t PYELE[12];
00086         Float_t PZELE[12];
00087         Float_t EEELE[12];
00088         std::vector<double>     *e_calo_p_x;
00089         std::vector<double>     *e_calo_p_y;
00090         std::vector<double>     *e_calo_p_z;
00091         std::vector<double>     *e_calo_E;
00092         Int_t   KFELE[12];
00093         std::vector<double>     *e_NeuralNet;
00094         std::vector<double>     *e_isEM;
00095         std::vector<int>        *e_egamma_flag;
00096         std::vector<int>        *e_softe_flag;
00097         std::vector<double>     *e_E_over_p;
00098         std::vector<double>     *e_Et_in_cone_0;
00099         std::vector<double>     *e_Et_in_cone_1;
00100         std::vector<double>     *e_Et_in_cone_2;
00101         std::vector<double>     *e_Et_in_cone_3;
00102         
00103         Int_t                   NMUO;
00104         Float_t PXMUO[12];
00105         Float_t PYMUO[12];
00106         Float_t PZMUO[12];
00107         Float_t EEMUO[12];
00108         Int_t   KFMUO[12];
00109         std::vector<int>        *mu_rec_flag;
00110         std::vector<double>     *mu_Et_in_cone_0;
00111         std::vector<double>     *mu_Et_in_cone_1;
00112         std::vector<double>     *mu_Et_in_cone_2;
00113         std::vector<double>     *mu_Et_in_cone_3;
00114         std::vector<double>     *mu_Et_in_cone_4;
00115         std::vector<double>     *mu_Et_in_cone_5;
00116         std::vector<double>     *mu_Et_in_cone_6;
00117         std::vector<double>     *mu_Et_in_cone_7;
00118         std::vector<int>        *mu_nb_tracks_in_cone_0;
00119         std::vector<int>        *mu_nb_tracks_in_cone_1;
00120         std::vector<int>        *mu_nb_tracks_in_cone_2;
00121         std::vector<int>        *mu_nb_tracks_in_cone_3;
00122         std::vector<int>        *mu_nb_tracks_in_cone_4;
00123         std::vector<int>        *mu_nb_tracks_in_cone_5;
00124         std::vector<int>        *mu_nb_tracks_in_cone_6;
00125         std::vector<int>        *mu_nb_tracks_in_cone_7;
00126         
00127         Int_t                   NJET;
00128         Int_t   KFJET[40];
00129         Float_t PXJET[40];
00130         Float_t PYJET[40];
00131         Float_t PZJET[40];
00132         Float_t EEJET[40];
00133         std::vector<int>        *jet_flag;
00134         Float_t BTAG[40];       
00135         Float_t BCORR[40];
00136         Float_t TAUTAG[40];
00137         Float_t TAUCORR[40];    
00138         std::vector<int>        *jet_truthflavor;
00139         
00140         Int_t                   JETTAU;
00141         std::vector<double>     *taujet_p_x;
00142         std::vector<double> *taujet_p_y;
00143         std::vector<double>     *taujet_p_z;
00144         std::vector<double>     *taujet_E;
00145         std::vector<int>        *taujet_flag;
00146         std::vector<double>     *taujet_charge;
00147         std::vector<double>     *taujet_llh;
00148         std::vector<double>     *taujet_lowPtTauEleDiscriminant;
00149         std::vector<double>     *taujet_tauENeuralNetwork;
00150         std::vector<double>     *taujet_etHadCalib;
00151         std::vector<double>     *taujet_etEMCalib;
00152         std::vector<int>        *taujet_nb_tracks;
00153         std::vector<double> *taujet_track_px_1;
00154         std::vector<double> *taujet_track_py_1;
00155         std::vector<double> *taujet_track_pz_1;
00156         std::vector<double> *taujet_track_e_1;
00157         std::vector<double>     *taujet_track_px_2;
00158         std::vector<double>     *taujet_track_py_2;
00159         std::vector<double>     *taujet_track_pz_2;
00160         std::vector<double>     *taujet_track_e_2;
00161         std::vector<double>     *taujet_track_px_3;
00162         std::vector<double>     *taujet_track_py_3;
00163         std::vector<double>     *taujet_track_pz_3;
00164         std::vector<double>     *taujet_track_e_3;
00165         
00166 
00167         Float_t PXMISS;
00168         Float_t PYMISS;
00169         
00170 /*      Double_t                missing_Etx_Final;
00171         Double_t                missing_Ety_Final;
00172         Double_t                missing_Et_Final;
00173         Double_t                missing_Etsum_Final;
00174         Double_t                missing_Etx_CorrTopo;
00175         Double_t                missing_Ety_CorrTopo;
00176         Double_t                missing_Et_CorrTopo;
00177         Double_t                missing_Etsum_CorrTopo;
00178         Double_t                missing_Etx_Calib;
00179         Double_t                missing_Ety_Calib;
00180         Double_t                missing_Et_Calib; 
00181         Double_t                missing_Etsum_Calib;
00182         Double_t                missing_Etx_Muonboy;
00183         Double_t                missing_Ety_Muonboy;
00184         Double_t                missing_Et_Muonboy;
00185         Double_t                missing_Etsum_Muonboy;
00186         Double_t                missing_Etx_Moore;
00187         Double_t                missing_Ety_Moore;
00188         Double_t                missing_Et_Moore;
00189         Double_t                missing_Etsum_Moore;
00190         Double_t                missing_Etx_Cryo;
00191         Double_t                missing_Ety_Cryo;
00192         Double_t                missing_Et_Cryo;
00193         Double_t                missing_Etsum_Cryo;
00194         Double_t                missing_Etx_CryoCone;
00195         Double_t                missing_Ety_CryoCone;
00196         Double_t                missing_Et_CryoCone;
00197         Double_t                missing_Etsum_CryoCone;
00198 */
00199         Float_t         MET_ExTruthInt;
00200    Float_t         MET_EyTruthInt;
00201    Float_t         MET_EtSumTruthInt;
00202    Float_t         MET_ExTruthNonInt;
00203    Float_t         MET_EyTruthNonInt;
00204    Float_t         MET_EtSumTruthNonInt;
00205    Float_t         MET_ExTruthIntCentral;
00206    Float_t         MET_EyTruthIntCentral;
00207    Float_t         MET_EtSumTruthIntCentral;
00208    Float_t         MET_ExTruthIntFwd;
00209    Float_t         MET_EyTruthIntFwd;
00210    Float_t         MET_EtSumTruthIntFwd;
00211    Float_t         MET_ExTruthMuons;
00212    Float_t         MET_EyTruthMuons;
00213    Float_t         MET_EtSumTruthMuons;
00214 
00215 
00216         Int_t           ProcId;
00217    Int_t           NPar;
00218    Int_t           Type[1000];
00219    Float_t         PtGen[1000];
00220    Float_t         PhiGen[1000];
00221    Float_t         EtaGen[1000];
00222    Float_t         MGen[1000];
00223    Float_t         Charge[1000];
00224    Int_t           GenStat[1000];
00225    Int_t           GenRef[1000];
00226    Int_t           KMothNt[1000];
00227    Int_t           KFDauNt[1000];
00228    Int_t           KLDauNt[1000];
00229    Int_t           KOriVNt[1000];
00230    Int_t           KEndVNt[1000];
00231    Int_t           BunchNum[1000];
00232    
00233 
00234         Int_t           NPART;
00235    Int_t           KPPART[40];
00236    Int_t           KSPART[40];
00237    Int_t           KFPART[40];
00238    Int_t           KPMOTH[40];
00239    Int_t           KFMOTH[40];
00240    Float_t         PXPART[40];
00241    Float_t         PYPART[40];
00242    Float_t         PZPART[40];
00243    Float_t         EEPART[40];
00244 
00245 
00246    
00247    //Vertex Stuff - maybe not needed
00248    Float_t         RVGen[1000];
00249    Float_t         PhiVGen[1000];
00250    Float_t         ZVGen[1000];
00251    Int_t           NVer;
00252    Int_t           BunchV[1000];
00253    Float_t         RV[1000];
00254    Float_t         PhiV[1000];
00255    Float_t         ZV[1000];
00256    Int_t           GenRefV[1000];
00257    Int_t           KVMothNt[1000];
00258    Int_t           KVFDauNt[1000];
00259    Int_t           KVLDauNt[1000];
00260    Int_t           IVPrimary;
00261 
00262 //truth jets
00263 
00264         Int_t           jetNumC4McJets;
00265    Float_t         jetEtaC4McJets[40];
00266    Float_t         jetPhiC4McJets[40];
00267    Float_t         jetEC4McJets[40];
00268    Float_t         jetEtC4McJets[40];
00269    Float_t         jetMC4McJets[40];
00270    Float_t         jetEemC4McJets[40];
00271 
00272 
00273 /*      Double_t                truth_missing_Etx_Int;
00274         Double_t                truth_missing_Ety_Int;
00275         Double_t                truth_missing_Et_Int;
00276         Double_t                truth_missing_Etsum_Int;
00277         Double_t                truth_missing_Etx_NonInt;
00278         Double_t                truth_missing_Ety_NonInt;
00279         Double_t                truth_missing_Et_NonInt;
00280         Double_t                truth_missing_Etsum_NonInt;
00281         Double_t                truth_missing_Etx_IntCentral;
00282         Double_t                truth_missing_Ety_IntCentral;
00283         Double_t                truth_missing_Et_IntCentral;
00284         Double_t                truth_missing_Etsum_IntCentral;
00285         Double_t                truth_missing_Etx_IntFwd;
00286         Double_t                truth_missing_Ety_IntFwd;
00287         Double_t                truth_missing_Et_IntFwd;
00288         Double_t                truth_missing_Etsum_IntFwd;
00289         Double_t                truth_missing_Etx_IntOutCover;
00290         Double_t                truth_missing_Ety_IntOutCover;
00291         Double_t                truth_missing_Et_IntOutCover;
00292         Double_t                truth_missing_Etsum_IntOutCover;
00293         Double_t                truth_missing_Etx_Muons;
00294         Double_t                truth_missing_Ety_Muons;
00295         Double_t                truth_missing_Et_Muons;
00296         Double_t                truth_missing_Etsum_Muons;
00297         
00298         Int_t                   nb_truth_particle_all;
00299         Int_t                   nb_truth_particle;
00300         std::vector<double>     *truth_particle_pt;
00301         std::vector<int>        *truth_particle_status;
00302         std::vector<int>        *truth_particle_barcode;
00303         std::vector<int>        *truth_particle_pdgId;
00304         std::vector<int>        *truth_particle_nDaughters;
00305         std::vector<double>     *truth_particle_p_x;
00306         std::vector<double>     *truth_particle_p_y;
00307         std::vector<double>     *truth_particle_p_z;
00308         std::vector<double>     *truth_particle_E;
00309         std::vector<double>     *truth_particle_charge;
00310         std::vector<int>        *truth_particle_nParents;
00311         std::vector<int>        *truth_particle_mother0_barcode;
00312         std::vector<int>        *truth_particle_mother0_pdgId;
00313 */
00314 
00315 // analysis class //
00316         MyAnalysis *m_analysis;
00317 
00318 // private methods //
00319         void init(const std::vector<std::string> & file_name,
00320                                 const std::string & tree_name,
00321                                 MyAnalysis * analysis);
00322                                 // initialization method (variables as defined
00323                                 // in the constructor of this class)
00324         void destruct(void);
00325                                 // destruction method
00326         void delete_new_objects(std::vector<MyParticle*> tmp_vector);
00327                                 // delete all objects in the vectors that
00328                                 // were created with "new"
00329 };
00330 
00331 #endif

Generated on Tue Oct 21 11:50:45 2008 for NtupleAnalysis by  doxygen 1.5.1