NtupleReader/src/NtupleReaderFast.cxx

00001 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00002 // 15.02.2007, AUTHOR: THIES EHRICH
00003 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00004 
00005 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
00006 //:: IMPLEMENTATION OF METHODS DEFINED IN THE CLASS NtupleReader ::
00007 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
00008 
00009 //::::::::::::::::::
00010 //:: HEADER FILES ::
00011 //::::::::::::::::::
00012 
00013 
00014 #include <math.h>
00015 #include "NtupleReader/NtupleReaderFast.h"
00016 #include "NtupleReader/MyEvent.h"
00017 #include "NtupleReader/MyDatasetInfo.h"
00018 
00019 //::::::::::::::::::::::::
00020 //:: NAMESPACE SETTINGS ::
00021 //::::::::::::::::::::::::
00022 
00023 using namespace std;
00024 
00025 //*****************************************************************************
00026 
00027 //:::::::::::::::::
00028 //:: METHOD init ::
00029 //:::::::::::::::::
00030 
00031 void NtupleReaderFast::init(const std::vector<std::string> & file_name,
00032                 const std::string & tree_name,
00033                 MyAnalysis * analysis) {
00034 
00036         // INITIAL CHECKS //
00038 
00039         if (file_name.size()<1) {
00040                 cerr << endl
00041                         << "Class NtupleReaderFast, method init: ERROR!\n"
00042                         << "No file name given!\n";
00043                 exit(1);
00044         }
00045 
00046         if (analysis==0) {
00047                 cerr << endl
00048                         << "Class NtupleReaderFast, method init: ERROR!\n"
00049                         << "No analysis class given!\n";
00050                 exit(1);
00051         }
00052 
00054         // OPEN THE ROOT FILE AND SET UP THE TREE //
00056 
00057         // chain of ROOT files //
00058         m_chain = new TChain(tree_name.c_str());
00059         for (unsigned int k=0; k<file_name.size(); k++) {
00060                 m_chain->Add(file_name[k].c_str());
00061         }
00062 
00063         // set pointer to 0 //
00064         RunNumber = 0;
00065         EventNumber = 0;
00066         StreamATLFAST_ref = 0;
00067         Stream1_ref[153] = 0;
00068         Token[153] = 0;
00069         Run = 0;
00070         Event = 0;
00071         Time = 0;
00072         Weight = 0.;
00073         IEvent = 0;
00074 
00075         NELE = 0;
00076         //PXELE = 0;
00077         //PYELE = 0;
00078         //PZELE = 0;
00079         //EEELE = 0;
00080         //KFELE = 0; //-sign(KFELE)
00081         e_NeuralNet = 0; //0
00082         e_isEM = 0; //0
00083         e_egamma_flag = 0; //0
00084         e_softe_flag = 0; //0
00085         e_E_over_p = 0; //0
00086         e_Et_in_cone_0 = 0;//0
00087         e_Et_in_cone_1 = 0;//0
00088         e_Et_in_cone_2 = 0;//0
00089         e_Et_in_cone_3 = 0;//0
00090 
00091         //      NMUX = 0;
00092         NMUO = 0;
00093         //PXMUO = 0;
00094         //PYMUO = 0;
00095         //PZMUO = 0;
00096         //EEMUO = 0;
00097         //KFMUO = 0;// wie oben
00098         mu_rec_flag = 0; //immer 1
00099         mu_Et_in_cone_0 = 0;
00100         mu_Et_in_cone_1 = 0;
00101         mu_Et_in_cone_2 = 0;
00102         mu_Et_in_cone_3 = 0;
00103         mu_Et_in_cone_4 = 0;
00104         mu_Et_in_cone_5 = 0;
00105         mu_Et_in_cone_6 = 0;
00106         mu_Et_in_cone_7 = 0;
00107         mu_nb_tracks_in_cone_0 = 0;
00108         mu_nb_tracks_in_cone_1 = 0;
00109         mu_nb_tracks_in_cone_2 = 0;
00110         mu_nb_tracks_in_cone_3 = 0;
00111         mu_nb_tracks_in_cone_4 = 0;
00112         mu_nb_tracks_in_cone_5 = 0;
00113         mu_nb_tracks_in_cone_6 = 0;
00114         mu_nb_tracks_in_cone_7 = 0;
00115 
00116         NJET = 0;
00117         //PXJET = new Float_t[NJET];
00118         //PYJET = 0;
00119         //PZJET = 0;
00120         //EEJET = 0;
00121         //BTAG = 0;
00122         jet_truthflavor = 0;
00123 
00124         JETTAU = 0;
00125         taujet_p_x = 0;
00126         taujet_p_y = 0;
00127         taujet_p_z = 0;
00128         taujet_E = 0;
00129         taujet_flag = 0;
00130         taujet_charge = 0;
00131         taujet_llh = 0;
00132         taujet_lowPtTauEleDiscriminant = 0;
00133         taujet_tauENeuralNetwork = 0;
00134         taujet_etHadCalib = 0;
00135         taujet_etEMCalib = 0;
00136         taujet_nb_tracks = 0;
00137         taujet_track_px_1 = 0;
00138         taujet_track_py_1 = 0;
00139         taujet_track_pz_1 = 0;
00140         taujet_track_e_1 = 0;
00141         taujet_track_px_2 = 0;
00142         taujet_track_py_2 = 0;
00143         taujet_track_pz_2 = 0;
00144         taujet_track_e_2 = 0;
00145         taujet_track_px_3 = 0;
00146         taujet_track_py_3 = 0;
00147         taujet_track_pz_3 = 0;
00148         taujet_track_e_3 = 0;
00149 
00150 
00151 
00152         //jetNumC4McJets = 0;
00153         //jetEtaC4McJets = 0;
00154         //jetPhiC4McJets = 0;
00155         //jetEC4McJets = 0;
00156         //jetEemC4McJets = 0;
00157         //jetEtC4McJets = 0;
00158         //jetMC4McJets = 0;
00159         //      nb_truth_jets = 0;
00160         //      truth_jet_p_x = 0;
00161         //      truth_jet_p_y = 0;
00162         //      truth_jet_p_z = 0;
00163         //      truth_jet_E = 0;
00164         //      truth_jet_flag = 0;
00165         //      truth_jet_btag_weight = 0;
00166 
00167         /*missing_Etx_Final = 0.;
00168           missing_Ety_Final = 0.;
00169           missing_Et_Final = 0.;
00170           missing_Etsum_Final = 0.;
00171           missing_Etx_CorrTopo = 0.;
00172           missing_Ety_CorrTopo = 0.;
00173           missing_Et_CorrTopo = 0.;
00174           missing_Etsum_CorrTopo = 0.;
00175           missing_Etx_Calib = 0.;
00176           missing_Ety_Calib = 0.;
00177           missing_Et_Calib = 0.; 
00178           missing_Etsum_Calib = 0.;
00179           missing_Etx_Muonboy = 0.;
00180           missing_Ety_Muonboy = 0.;
00181           missing_Et_Muonboy = 0.;
00182           missing_Etsum_Muonboy = 0.;
00183           missing_Etx_Moore = 0.;
00184           missing_Ety_Moore = 0.;
00185           missing_Et_Moore = 0.;
00186           missing_Etsum_Moore = 0.;
00187           missing_Etx_Cryo = 0.;
00188           missing_Ety_Cryo = 0.;
00189           missing_Et_Cryo = 0.;
00190           missing_Etsum_Cryo = 0.;
00191           missing_Etx_CryoCone = 0.;
00192           missing_Ety_CryoCone = 0.;
00193           missing_Et_CryoCone = 0.;
00194           missing_Etsum_CryoCone = 0.;
00195          */
00196         MET_EtSumTruthInt = 0;
00197         MET_EtSumTruthIntCentral = 0;
00198         MET_EtSumTruthIntFwd =0;
00199         MET_EtSumTruthMuons = 0;
00200         MET_EtSumTruthNonInt = 0;
00201         MET_ExTruthInt = 0;
00202         MET_ExTruthIntCentral = 0;
00203         MET_ExTruthIntFwd = 0;
00204         MET_ExTruthMuons = 0;
00205         MET_EyTruthInt = 0;
00206         MET_EyTruthIntCentral = 0;
00207         MET_EyTruthIntFwd = 0;
00208         MET_EyTruthMuons = 0;
00209         MET_EyTruthNonInt = 0;
00210 
00211         /*nb_truth_particle_all = 0;
00212           nb_truth_particle = 0;
00213           truth_particle_pt = 0;
00214           truth_particle_status = 0;
00215           truth_particle_barcode = 0;
00216           truth_particle_pdgId = 0;
00217           truth_particle_nDaughters = 0;
00218           truth_particle_p_x = 0;
00219           truth_particle_p_y = 0;
00220           truth_particle_p_z = 0;
00221           truth_particle_E = 0;
00222           truth_particle_charge = 0;
00223           truth_particle_nParents = 0;
00224           truth_particle_mother0_barcode = 0;
00225           truth_particle_mother0_pdgId = 0;
00226          */
00227         // set up the tree //
00228 
00229         //      m_chain->SetBranchAddress("BCORR",&BCORR);
00230         //      m_chain->SetBranchAddress("RunNumber",&RunNumber);
00231         //      m_chain->SetBranchAddress("RunNumber",&RunNumber);
00232         //      m_chain->SetBranchAddress("EventNumber",&EventNumber);
00233         //      m_chain->SetBranchAddress("StreamATLFAST_ref",&StreamATLFAST_ref);
00234         //      m_chain->SetBranchAddress("Stream1_ref",Stream1_ref);
00235         //      m_chain->SetBranchAddress("Token",Token);
00236         //      m_chain->SetBranchAddress("Run",&Run);
00237         //      m_chain->SetBranchAddress("Event",&Event);
00238         //      m_chain->SetBranchAddress("Time",&Time);
00239         //      m_chain->SetBranchAddress("Weight",&Weight);
00240         //      m_chain->SetBranchAddress("IEvent",&IEvent);
00241         m_chain->SetBranchAddress("NELE",&NELE);
00242         m_chain->SetBranchAddress("PXELE",&PXELE);
00243         m_chain->SetBranchAddress("PYELE",&PYELE);
00244         m_chain->SetBranchAddress("PZELE",&PZELE);
00245         m_chain->SetBranchAddress("EEELE",&EEELE);
00246         //      m_chain->SetBranchAddress("e_calo_p_x",&e_calo_p_x);
00247         //      m_chain->SetBranchAddress("e_calo_p_y",&e_calo_p_y);
00248         //      m_chain->SetBranchAddress("e_calo_p_z",&e_calo_p_z);
00249         //      m_chain->SetBranchAddress("e_calo_E",&e_calo_E);
00250         m_chain->SetBranchAddress("KFELE",&KFELE);
00251         //      m_chain->SetBranchAddress("e_NeuralNet",&e_NeuralNet);
00252         //      m_chain->SetBranchAddress("e_isEM",&e_isEM);
00253         //      m_chain->SetBranchAddress("e_egamma_flag",&e_egamma_flag);
00254         //      m_chain->SetBranchAddress("e_softe_flag",&e_softe_flag);
00255         //      m_chain->SetBranchAddress("e_E_over_p",&e_E_over_p);
00256         //      m_chain->SetBranchAddress("e_Et_in_cone_0",&e_Et_in_cone_0);
00257         //      m_chain->SetBranchAddress("e_Et_in_cone_1",&e_Et_in_cone_1);
00258         //      m_chain->SetBranchAddress("e_Et_in_cone_2",&e_Et_in_cone_2);
00259         //      m_chain->SetBranchAddress("e_Et_in_cone_3",&e_Et_in_cone_3);
00260         m_chain->SetBranchAddress("NMUO",&NMUO);
00261         m_chain->SetBranchAddress("PXMUO",&PXMUO);
00262         m_chain->SetBranchAddress("PYMUO",&PYMUO);
00263         m_chain->SetBranchAddress("PZMUO",&PZMUO);
00264         m_chain->SetBranchAddress("EEMUO",&EEMUO);
00265         m_chain->SetBranchAddress("KFMUO",&KFMUO);
00266         //      m_chain->SetBranchAddress("mu_rec_flag",&mu_rec_flag);
00267         //      m_chain->SetBranchAddress("mu_Et_in_cone_0",&mu_Et_in_cone_0);
00268         //      m_chain->SetBranchAddress("mu_Et_in_cone_1",&mu_Et_in_cone_1);
00269         //      m_chain->SetBranchAddress("mu_Et_in_cone_2",&mu_Et_in_cone_2);
00270         //      m_chain->SetBranchAddress("mu_Et_in_cone_3",&mu_Et_in_cone_3);
00271         //      m_chain->SetBranchAddress("mu_Et_in_cone_4",&mu_Et_in_cone_4);
00272         //      m_chain->SetBranchAddress("mu_Et_in_cone_5",&mu_Et_in_cone_5);
00273         //      m_chain->SetBranchAddress("mu_Et_in_cone_6",&mu_Et_in_cone_6);
00274         //      m_chain->SetBranchAddress("mu_Et_in_cone_7",&mu_Et_in_cone_7);
00275         //      m_chain->SetBranchAddress("mu_nb_tracks_in_cone_0",&mu_nb_tracks_in_cone_0);
00276         //      m_chain->SetBranchAddress("mu_nb_tracks_in_cone_1",&mu_nb_tracks_in_cone_1);
00277         //      m_chain->SetBranchAddress("mu_nb_tracks_in_cone_2",&mu_nb_tracks_in_cone_2);
00278         //      m_chain->SetBranchAddress("mu_nb_tracks_in_cone_3",&mu_nb_tracks_in_cone_3);
00279         //      m_chain->SetBranchAddress("mu_nb_tracks_in_cone_4",&mu_nb_tracks_in_cone_4);
00280         //      m_chain->SetBranchAddress("mu_nb_tracks_in_cone_5",&mu_nb_tracks_in_cone_5);
00281         //      m_chain->SetBranchAddress("mu_nb_tracks_in_cone_6",&mu_nb_tracks_in_cone_6);
00282         //      m_chain->SetBranchAddress("mu_nb_tracks_in_cone_7",&mu_nb_tracks_in_cone_7);
00283         m_chain->SetBranchAddress("KFJET",&KFJET);
00284         m_chain->SetBranchAddress("NJET",&NJET);
00285         m_chain->SetBranchAddress("PXJET",&PXJET);
00286         m_chain->SetBranchAddress("PYJET",&PYJET);
00287         m_chain->SetBranchAddress("PZJET",&PZJET);
00288         m_chain->SetBranchAddress("EEJET",&EEJET);
00289         m_chain->SetBranchAddress("BTAG",&BTAG);
00290         m_chain->SetBranchAddress("BCORR",&BCORR);
00291         m_chain->SetBranchAddress("TAUTAG",&TAUTAG);
00292         m_chain->SetBranchAddress("TAUCORR",&TAUCORR);
00293 
00294         /*      m_chain->SetBranchAddress("nb_tau_jets",&nb_tau_jets);
00295                 m_chain->SetBranchAddress("taujet_p_x",&taujet_p_x);
00296                 m_chain->SetBranchAddress("taujet_p_y",&taujet_p_y);
00297                 m_chain->SetBranchAddress("taujet_p_z",&taujet_p_z);
00298                 m_chain->SetBranchAddress("taujet_E",&taujet_E);
00299                 m_chain->SetBranchAddress("taujet_flag",&taujet_flag);
00300                 m_chain->SetBranchAddress("taujet_charge",&taujet_charge);
00301                 m_chain->SetBranchAddress("taujet_llh",&taujet_llh);
00302                 m_chain->SetBranchAddress("taujet_lowPtTauEleDiscriminant",&taujet_lowPtTauEleDiscriminant);
00303                 m_chain->SetBranchAddress("taujet_tauENeuralNetwork",&taujet_tauENeuralNetwork);
00304                 m_chain->SetBranchAddress("taujet_etHadCalib",&taujet_etHadCalib);
00305                 m_chain->SetBranchAddress("taujet_etEMCalib",&taujet_etEMCalib);
00306                 m_chain->SetBranchAddress("taujet_nb_tracks",&taujet_nb_tracks);
00307                 m_chain->SetBranchAddress("taujet_track_px_1",&taujet_track_px_1);
00308                 m_chain->SetBranchAddress("taujet_track_py_1",&taujet_track_py_1);
00309                 m_chain->SetBranchAddress("taujet_track_pz_1",&taujet_track_pz_1);
00310                 m_chain->SetBranchAddress("taujet_track_e_1",&taujet_track_e_1);
00311                 m_chain->SetBranchAddress("taujet_track_px_2",&taujet_track_px_2);
00312                 m_chain->SetBranchAddress("taujet_track_py_2",&taujet_track_py_2);
00313                 m_chain->SetBranchAddress("taujet_track_pz_2",&taujet_track_pz_2);
00314                 m_chain->SetBranchAddress("taujet_track_e_2",&taujet_track_e_2);
00315                 m_chain->SetBranchAddress("taujet_track_px_3",&taujet_track_px_3);
00316                 m_chain->SetBranchAddress("taujet_track_py_3",&taujet_track_py_3);
00317                 m_chain->SetBranchAddress("taujet_track_pz_3",&taujet_track_pz_3);
00318                 m_chain->SetBranchAddress("taujet_track_e_3",&taujet_track_e_3);
00319                 m_chain->SetBranchAddress("nb_truth_jets",&nb_truth_jets);
00320                 m_chain->SetBranchAddress("truth_jet_p_x",&truth_jet_p_x);
00321                 m_chain->SetBranchAddress("truth_jet_p_y",&truth_jet_p_y);
00322                 m_chain->SetBranchAddress("truth_jet_p_z",&truth_jet_p_z);
00323                 m_chain->SetBranchAddress("truth_jet_E",&truth_jet_E);
00324                 m_chain->SetBranchAddress("truth_jet_flag",&truth_jet_flag);
00325                 m_chain->SetBranchAddress("truth_jet_btag_weight",&truth_jet_btag_weight);
00326 
00327                 m_chain->SetBranchAddress("missing_Etx_Final",&missing_Etx_Final);
00328                 m_chain->SetBranchAddress("missing_Ety_Final",&missing_Ety_Final);
00329                 m_chain->SetBranchAddress("missing_Et_Final",&missing_Et_Final);
00330                 m_chain->SetBranchAddress("missing_Etsum_Final",&missing_Etsum_Final);
00331                 m_chain->SetBranchAddress("missing_Etx_CorrTopo",&missing_Etx_CorrTopo);
00332                 m_chain->SetBranchAddress("missing_Ety_CorrTopo",&missing_Ety_CorrTopo);
00333                 m_chain->SetBranchAddress("missing_Et_CorrTopo",&missing_Et_CorrTopo);
00334                 m_chain->SetBranchAddress("missing_Etsum_CorrTopo",&missing_Etsum_CorrTopo);
00335                 m_chain->SetBranchAddress("missing_Etx_Calib",&missing_Etx_Calib);
00336                 m_chain->SetBranchAddress("missing_Ety_Calib",&missing_Ety_Calib);
00337                 m_chain->SetBranchAddress("missing_Et_Calib",&missing_Et_Calib);
00338                 m_chain->SetBranchAddress("missing_Etsum_Calib",&missing_Etsum_Calib);
00339                 m_chain->SetBranchAddress("missing_Etx_Muonboy",&missing_Etx_Muonboy);
00340                 m_chain->SetBranchAddress("missing_Ety_Muonboy",&missing_Ety_Muonboy);
00341                 m_chain->SetBranchAddress("missing_Et_Muonboy",&missing_Et_Muonboy);
00342                 m_chain->SetBranchAddress("missing_Etsum_Muonboy",&missing_Etsum_Muonboy);
00343                 m_chain->SetBranchAddress("missing_Etx_Moore",&missing_Etx_Moore);
00344                 m_chain->SetBranchAddress("missing_Ety_Moore",&missing_Ety_Moore);
00345                 m_chain->SetBranchAddress("missing_Et_Moore",&missing_Et_Moore);
00346                 m_chain->SetBranchAddress("missing_Etsum_Moore",&missing_Etsum_Moore);
00347                 m_chain->SetBranchAddress("missing_Etx_Cryo",&missing_Etx_Cryo);
00348                 m_chain->SetBranchAddress("missing_Ety_Cryo",&missing_Ety_Cryo);
00349                 m_chain->SetBranchAddress("missing_Et_Cryo",&missing_Et_Cryo);
00350                 m_chain->SetBranchAddress("missing_Etsum_Cryo",&missing_Etsum_Cryo);
00351                 m_chain->SetBranchAddress("missing_Etx_CryoCone",&missing_Etx_CryoCone);
00352                 m_chain->SetBranchAddress("missing_Ety_CryoCone",&missing_Ety_CryoCone);
00353                 m_chain->SetBranchAddress("missing_Et_CryoCone",&missing_Et_CryoCone);
00354                 m_chain->SetBranchAddress("missing_Etsum_CryoCone",&missing_Etsum_CryoCone);
00355          */
00356         m_chain->SetBranchAddress("MET_ExTruthInt",&MET_ExTruthInt);
00357         m_chain->SetBranchAddress("MET_EyTruthInt",&MET_EyTruthInt);
00358         m_chain->SetBranchAddress("MET_EtSumTruthInt",&MET_EtSumTruthInt);
00359         m_chain->SetBranchAddress("MET_ExTruthNonInt",&MET_ExTruthNonInt);
00360         m_chain->SetBranchAddress("MET_EyTruthNonInt",&MET_EyTruthNonInt);
00361         m_chain->SetBranchAddress("MET_EtSumTruthNonInt",&MET_EtSumTruthNonInt);
00362         m_chain->SetBranchAddress("MET_ExTruthIntCentral",&MET_ExTruthIntCentral);
00363         m_chain->SetBranchAddress("MET_EyTruthIntCentral",&MET_EyTruthIntCentral);
00364         m_chain->SetBranchAddress("MET_EtSumTruthIntCentral",&MET_EtSumTruthIntCentral);
00365         m_chain->SetBranchAddress("MET_ExTruthIntFwd",&MET_ExTruthIntFwd);
00366         m_chain->SetBranchAddress("MET_EyTruthIntFwd",&MET_EyTruthIntFwd);
00367         m_chain->SetBranchAddress("MET_EtSumTruthIntFwd",&MET_EtSumTruthIntFwd);
00368         m_chain->SetBranchAddress("MET_ExTruthMuons",&MET_ExTruthMuons);
00369         m_chain->SetBranchAddress("MET_EyTruthMuons",&MET_EyTruthMuons);
00370         m_chain->SetBranchAddress("MET_EtSumTruthMuons",&MET_EtSumTruthMuons);
00371 
00372         m_chain->SetBranchAddress("jetNumC4McJets",&jetNumC4McJets);
00373         m_chain->SetBranchAddress("jetEtaC4McJets",jetEtaC4McJets);
00374         m_chain->SetBranchAddress("jetPhiC4McJets",jetPhiC4McJets);
00375         m_chain->SetBranchAddress("jetEC4McJets",jetEC4McJets);
00376         m_chain->SetBranchAddress("jetEtC4McJets",jetEtC4McJets);
00377         m_chain->SetBranchAddress("jetMC4McJets",jetMC4McJets);
00378         m_chain->SetBranchAddress("jetEemC4McJets",jetEemC4McJets);
00379 
00380 
00381         /*
00382            m_chain->SetBranchAddress("truth_missing_Etx_Int",&truth_missing_Etx_Int);
00383            m_chain->SetBranchAddress("truth_missing_Ety_Int",&truth_missing_Ety_Int);
00384            m_chain->SetBranchAddress("truth_missing_Et_Int",&truth_missing_Et_Int);
00385            m_chain->SetBranchAddress("truth_missing_Etsum_Int",&truth_missing_Etsum_Int);
00386            m_chain->SetBranchAddress("truth_missing_Etx_NonInt",&truth_missing_Etx_NonInt);
00387            m_chain->SetBranchAddress("truth_missing_Ety_NonInt",&truth_missing_Ety_NonInt);
00388            m_chain->SetBranchAddress("truth_missing_Et_NonInt",&truth_missing_Et_NonInt);
00389            m_chain->SetBranchAddress("truth_missing_Etsum_NonInt",&truth_missing_Etsum_NonInt);
00390            m_chain->SetBranchAddress("truth_missing_Etx_IntCentral",&truth_missing_Etx_IntCentral);
00391            m_chain->SetBranchAddress("truth_missing_Ety_IntCentral",&truth_missing_Ety_IntCentral);
00392            m_chain->SetBranchAddress("truth_missing_Et_IntCentral",&truth_missing_Et_IntCentral);
00393            m_chain->SetBranchAddress("truth_missing_Etsum_IntCentral",&truth_missing_Etsum_IntCentral );
00394            m_chain->SetBranchAddress("truth_missing_Etx_IntFwd",&truth_missing_Etx_IntFwd);
00395            m_chain->SetBranchAddress("truth_missing_Ety_IntFwd",&truth_missing_Ety_IntFwd);
00396            m_chain->SetBranchAddress("truth_missing_Et_IntFwd",&truth_missing_Et_IntFwd);
00397            m_chain->SetBranchAddress("truth_missing_Etsum_IntFwd",&truth_missing_Etsum_IntFwd);
00398            m_chain->SetBranchAddress("truth_missing_Etx_IntOutCover",&truth_missing_Etx_IntOutCover);
00399            m_chain->SetBranchAddress("truth_missing_Ety_IntOutCover",&truth_missing_Ety_IntOutCover);
00400            m_chain->SetBranchAddress("truth_missing_Et_IntOutCover",&truth_missing_Et_IntOutCover);
00401            m_chain->SetBranchAddress("truth_missing_Etsum_IntOutCover",&truth_missing_Etsum_IntOutCover);
00402            m_chain->SetBranchAddress("truth_missing_Etx_Muons",&truth_missing_Etx_Muons);
00403            m_chain->SetBranchAddress("truth_missing_Ety_Muons",&truth_missing_Ety_Muons);
00404            m_chain->SetBranchAddress("truth_missing_Et_Muons",&truth_missing_Et_Muons);
00405            m_chain->SetBranchAddress("truth_missing_Etsum_Muons",&truth_missing_Etsum_Muons);
00406          */     
00407         m_chain->SetBranchAddress("PXMISS",&PXMISS);
00408         m_chain->SetBranchAddress("PYMISS",&PYMISS);
00409 
00410 
00411         //      
00412         //      m_chain->SetBranchAddress("missing_Etx",&missing_Etx);
00413         //      m_chain->SetBranchAddress("missing_Ety",&missing_Ety);
00414         //      m_chain->SetBranchAddress("missing_Et",&missing_Et);
00415         //      m_chain->SetBranchAddress("missing_Etsum",&missing_Etsum);
00416         //      m_chain->SetBranchAddress("missing_Etx_CorrTopo",&missing_Etx_CorrTopo);
00417         //      m_chain->SetBranchAddress("missing_Ety_CorrTopo",&missing_Ety_CorrTopo);
00418         //      m_chain->SetBranchAddress("missing_Et_CorrTopo",&missing_Et_CorrTopo);
00419         //      m_chain->SetBranchAddress("missing_Etsum_CorrTopo",&missing_Etsum_CorrTopo);
00420         //      m_chain->SetBranchAddress("missing_Etx_Muonboy",&missing_Etx_Muonboy);
00421         //      m_chain->SetBranchAddress("missing_Ety_Muonboy",&missing_Ety_Muonboy);
00422         //      m_chain->SetBranchAddress("missing_Et_Muonboy",&missing_Et_Muonboy);
00423         //      m_chain->SetBranchAddress("missing_Etsum_Muonboy",&missing_Etsum_Muonboy);
00424         //      m_chain->SetBranchAddress("missing_Etx_Moore",&missing_Etx_Moore);
00425         //      m_chain->SetBranchAddress("missing_Ety_Moore",&missing_Ety_Moore);
00426         //      m_chain->SetBranchAddress("missing_Et_Moore",&missing_Et_Moore);
00427         //      m_chain->SetBranchAddress("missing_Etsum_Moore",&missing_Etsum_Moore);
00428         //      m_chain->SetBranchAddress("missing_Etx_CryoCone",&missing_Etx_CryoCone);
00429         //      m_chain->SetBranchAddress("missing_Ety_CryoCone",&missing_Ety_CryoCone);
00430         //      m_chain->SetBranchAddress("missing_Et_CryoCone",&missing_Et_CryoCone);
00431         //      m_chain->SetBranchAddress("missing_Etsum_CryoCone",&missing_Etsum_CryoCone);
00432         //      m_chain->SetBranchAddress("truth_missing_Etx",&truth_missing_Etx);
00433         //      m_chain->SetBranchAddress("truth_missing_Ety",&truth_missing_Ety);
00434         //      m_chain->SetBranchAddress("truth_missing_Et",&truth_missing_Et);
00435         //      m_chain->SetBranchAddress("truth_missing_Etsum",&truth_missing_Etsum);
00436 
00437 
00438         m_chain->SetBranchAddress("ProcId",&ProcId);
00439         m_chain->SetBranchAddress("NPar",&NPar);
00440         m_chain->SetBranchAddress("Type",Type);
00441         m_chain->SetBranchAddress("PtGen",PtGen);
00442         m_chain->SetBranchAddress("PhiGen",PhiGen);
00443         m_chain->SetBranchAddress("EtaGen",EtaGen);
00444         m_chain->SetBranchAddress("MGen",MGen);
00445         m_chain->SetBranchAddress("Charge",Charge);
00446         m_chain->SetBranchAddress("GenStat",GenStat);
00447         m_chain->SetBranchAddress("GenRef",GenRef);
00448         m_chain->SetBranchAddress("KMothNt",KMothNt);
00449         m_chain->SetBranchAddress("KFDauNt",KFDauNt);
00450         m_chain->SetBranchAddress("KLDauNt",KLDauNt);
00451         m_chain->SetBranchAddress("KOriVNt",KOriVNt);
00452         m_chain->SetBranchAddress("KEndVNt",KEndVNt);
00453         m_chain->SetBranchAddress("BunchNum",BunchNum);
00454 
00455 
00456 
00457         /*
00458            m_chain->SetBranchAddress("nb_truth_particle_all",&nb_truth_particle_all);
00459            m_chain->SetBranchAddress("nb_truth_particle",&nb_truth_particle);
00460            m_chain->SetBranchAddress("truth_particle_pt",&truth_particle_pt);
00461            m_chain->SetBranchAddress("truth_particle_status",&truth_particle_status);
00462            m_chain->SetBranchAddress("truth_particle_barcode",&truth_particle_barcode);
00463            m_chain->SetBranchAddress("truth_particle_pdgId",&truth_particle_pdgId);
00464            m_chain->SetBranchAddress("truth_particle_nDaughters",&truth_particle_nDaughters);
00465            m_chain->SetBranchAddress("truth_particle_p_x",&truth_particle_p_x);
00466            m_chain->SetBranchAddress("truth_particle_p_y",&truth_particle_p_y);
00467            m_chain->SetBranchAddress("truth_particle_p_z",&truth_particle_p_z);
00468            m_chain->SetBranchAddress("truth_particle_E",&truth_particle_E);
00469            m_chain->SetBranchAddress("truth_particle_charge",&truth_particle_charge);
00470            m_chain->SetBranchAddress("truth_particle_nParents",&truth_particle_nParents);
00471            m_chain->SetBranchAddress("truth_particle_mother0_barcode",&truth_particle_mother0_barcode);
00472            m_chain->SetBranchAddress("truth_particle_mother0_pdgId",&truth_particle_mother0_pdgId);
00473          */
00474 
00476         // INITIALIZE THE ANALYSIS //
00478 
00479         m_analysis = analysis;
00480         m_analysis->initialize();
00481 
00482         return;
00483 
00484 }
00485 
00486 //*****************************************************************************
00487 
00488 //:::::::::::::::::::::
00489 //:: METHOD destruct ::
00490 //:::::::::::::::::::::
00491 
00492 void NtupleReaderFast::destruct(void) {
00493 
00494         return;
00495 
00496 }
00497 
00498 //*****************************************************************************
00499 
00500 //:::::::::::::::::::::::
00501 //:: METHOD event_loop ::
00502 //:::::::::::::::::::::::
00503 
00504 void NtupleReaderFast::event_loop(void) {
00505 
00507         // EVENT LOOP //
00509 
00510         Int_t nb_events = m_chain->GetEntries(); 
00511         //Int_t nb_events = 100000;
00512         cout << "event_loop\n";
00513         cout << "events: " << nb_events << endl;
00514         
00515         TLorentzVector tmp_tlv;
00516 //      double tmp_charge;
00517 
00518         for (Long64_t ev=0; ev<nb_events; ev++) {
00519 //              cout << ev << " Events read."<<endl;;
00520 
00521                 // status output //
00522                 if (ev!=0 && ev%1000==0) {
00523                         cout << ev << " Events read."<<endl;
00524                 }
00525                 // read the event //
00526                 m_chain->GetEntry(ev);
00527                 // create an event and pass it to the user's analysis object //
00528 
00529                 // reconstructed data //
00530                 // electrons //
00531 
00532                 //MyElectron* rec_electron;
00533                 //rec_electron = new MyElectron;
00534                 vector<MyParticle*> rec_electron(NELE);
00535                 for (int k=0; k<NELE; k++) { 
00536                   tmp_tlv.SetPxPyPzE(PXELE[k],PYELE[k],PZELE[k],EEELE[k]); 
00537                         double et_cone[4];
00538                         et_cone[0] = 0.0;
00539                         et_cone[1] = 0.0;
00540                         et_cone[2] = 0.0;
00541                         et_cone[3] = 0.0;
00542                         rec_electron[k] = new MyElectron(
00543                                 tmp_tlv,
00544                                         (KFELE[k]/abs(KFELE[k])),
00545                                         false,false,-1111,0,0,
00546 
00547                                         //(*e_egamma_flag)[k],
00548                                         //(*e_softe_flag)[k],
00549                                         //(*e_E_over_p)[k],
00550                                         //(*e_isEM)[k],
00551                                         //(*e_NeuralNet)[k],
00552                                         k,
00553                                         et_cone
00554                                         );
00555                 }
00556 
00557 
00558                 // muons //
00559                 vector<MyParticle*> rec_muon(NMUO);
00560                 for (int k=0; k<NMUO; k++) {
00561                         tmp_tlv.SetPxPyPzE(PXMUO[k], PYMUO[k], PZMUO[k], EEMUO[k]);
00562 //                      cout<<"Reco  muon, pt: "<<tmp_tlv.Pt()<<", eta: "<<tmp_tlv.Eta()<<", phi: "<<tmp_tlv.Phi()<<endl;
00563                         double Et_cone[8];
00564                         Et_cone[0] = 0.0;
00565                         Et_cone[1] = 0.0;
00566                         Et_cone[2] = 0.0;
00567                         Et_cone[3] = 0.0;
00568                         Et_cone[4] = 0.0;
00569                         Et_cone[5] = 0.0;
00570                         Et_cone[6] = 0.0;
00571                         Et_cone[7] = 0.0;
00572                         int nb_tracks_cone[8];
00573                         nb_tracks_cone[0] = 0;
00574                         nb_tracks_cone[1] = 0;
00575                         nb_tracks_cone[2] = 0;
00576                         nb_tracks_cone[3] = 0;
00577                         nb_tracks_cone[4] = 0;
00578                         nb_tracks_cone[5] = 0;
00579                         nb_tracks_cone[6] = 0;
00580                         nb_tracks_cone[7] = 0;
00581                         rec_muon[k] = new MyMuon(
00582                                         tmp_tlv,
00583                                         (KFMUO[k]/abs(KFMUO[k])),
00584                                         1, //(*mu_rec_flag)[k],
00585                                         k,
00586                                         Et_cone,
00587                                         nb_tracks_cone,
00588                                         0.0,
00589                                         1,
00590                                         0.0,
00591                                         0.0,
00592                                         1,
00593                                         0.0,
00594                                         1);
00595                 }
00596 
00597                 // jets //
00598                 vector<MyParticle*> rec_jet(NJET);  
00599                 for (int k=0; k<NJET; k++) {
00600                                         if (BTAG[k]==1) {
00601                                           tmp_tlv.SetPxPyPzE(BCORR[k]*PXJET[k],
00602                                                              BCORR[k]*PYJET[k],
00603                                                              BCORR[k]*PZJET[k],
00604                                                              BCORR[k]*EEJET[k]);
00605                                                 rec_jet[k] = new MyParticleJet(
00606                                                         tmp_tlv,
00607                                                         -1111, 
00608                                                         k,
00609                                                         BTAG[k],
00610                                                         -1111
00611                                         );
00612                                 }
00613                                 else {
00614                                           tmp_tlv.SetPxPyPzE(PXJET[k],
00615                                                              PYJET[k],
00616                                                              PZJET[k],
00617                                                              EEJET[k]);
00618                                                 rec_jet[k] = new MyParticleJet(
00619                                                         tmp_tlv,
00620                                                         -1111, 
00621                                                         k,
00622                                                         BTAG[k],
00623                                                         -1111
00624                                         );
00625 
00626 
00627 
00628 
00629 
00630 
00631 
00632                                 }
00633                 }
00634 
00635                 // truth jets //
00636 //              vector<MyParticle*> truth_jet(jetNumC4McJets);
00637                 vector<MyParticle*> truth_jet(0);
00638 //              for (int k=0; k<jetNumC4McJets; k++) {
00639 //                      cout<<"Truth Jet "<<endl;
00640 //                      truth_jet[k] = new MyParticleJet( //PLEASE CHECK THIS!!!
00641 //                                      TLorentzVector(jetEtC4McJets[k]*cos(jetPhiC4McJets[k]),
00642 //                                              jetEtC4McJets[k]*sin(jetPhiC4McJets[k]),
00643 //                                              jetEtC4McJets[k]/sin(2*atan(exp(-jetEtaC4McJets[k])))*cos(2*atan(exp(-jetEtaC4McJets[k]))),
00644 //                                              jetEC4McJets[k]),
00645 //                                      -1111,  //?? (*truth_jet_flag)[k],
00646 //                                      k,
00647 //                                      -1111,  //?? (*truth_jet_btag_weight)[k],
00648 //                                      0,
00649 //                                      true
00650 //                                      );
00651 //              }
00652 
00653 
00654                 //taujets//
00655                 vector<MyParticle*> rec_taujet(0);
00656 /*              int NTAUJET=0;
00657                 vector<MyParticle*> rec_taujet;
00658                 for (int k=0; k<NJET; k++) {
00659                         if (TAUTAG[k]>0.5){
00660                         //if (abs(KFJET[k])==15){
00661                                 NTAUJET++;
00662                                 //cout<<"KFJET: "<<KFJET[k]<<endl;
00663                                 tmp_charge=0;
00664                                 if(KFJET[k]==-15) tmp_charge=1;
00665                                 if(KFJET[k]==15) tmp_charge=-1;
00666                                 tmp_tlv.SetPxPyPzE(TAUCORR[k]*PXJET[k], TAUCORR[k]*PYJET[k], TAUCORR[k]*PZJET[k], TAUCORR[k]*EEJET[k]);
00667                                 rec_taujet.push_back(new MyTauJet(tmp_tlv,
00668                                                                   tmp_charge,
00669                                                                   -1111,
00670                                                                   rec_taujet.size(),
00671                                                                   10, //since everybody uses Likelihood cut > 4 
00672                                                                   0,
00673                                                                   0,
00674                                                                   1000.0,
00675                                                                   0,
00676                                                                   1,
00677                                                                   TLorentzVector(1,0,0,0),
00678                                                                   TLorentzVector(1,0,0,0),
00679                                                                   TLorentzVector(1,0,0,0)
00680                                                                   ) );
00681                                 
00682                                 
00683                                 
00684                                 
00685                                 
00686                                 
00687                                 
00688                                 
00689                         }
00690                 }
00691 */
00692 
00693 //for  (int k=0; k<NTAUJET; k++) {
00694 //              for  (int k=0; k<NJET; k++) {
00695 //              if (TAUTAG[k]>0.5){
00696 //                  cout<<"KFJET: "<<KFJET[k]<<endl;
00697 //                      tmp_charge=0;
00698 //                      if(KFJET[k]==-15) tmp_charge=1;
00699 //                      if(KFJET[k]==15) tmp_charge=-1;
00700 //                      tmp_tlv.SetPxPyPzE(PXJET[k], PYJET[k], PZJET[k], EEJET[k]);
00701 //                      rec_taujet[k] = new MyTauJet(
00702 //                                      tmp_tlv,
00703 //                                      tmp_charge,
00704 //                                      -1111,
00705 //                                      k,
00706 //                                      10, //since everybody uses Likelihood cut > 4 
00707 //                                      0,
00708 //                                      0,
00709 //                                      1000.0,
00710 //                                      0,
00711 //                                      1,
00712 //                                      TLorentzVector(1,
00713 //                                              0,
00714 //                                              0,
00715 //                                              0),
00716 //                                      TLorentzVector(1,
00717 //                                              0,
00718 //                                              0,
00719 //                                              0),
00720 //                                      TLorentzVector(1,
00721 //                                                      0,
00722 //                                                      0,
00723 //                                                      0)
00724 //                                              );
00725 //                  }
00726 //              }
00727  /*             vector<MyParticle*> rec_taujet(nb_tau_jets);
00728                 for (int k=0; k<nb_tau_jets; k++) {
00729 //cout << (*taujet_nb_tracks)[k] << endl;       
00730 rec_taujet[k] = new MyTauJet(
00731 TLorentzVector((*taujet_p_x)[k],
00732 (*taujet_p_y)[k],
00733 (*taujet_p_z)[k],
00734 (*taujet_E)[k]),
00735 (*taujet_charge)[k],
00736 (*taujet_flag)[k],
00737 k,
00738 (*taujet_llh)[k],
00739 (*taujet_lowPtTauEleDiscriminant)[k],
00740 (*taujet_tauENeuralNetwork)[k],
00741 (*taujet_etHadCalib)[k],
00742 (*taujet_etEMCalib)[k],
00743 (*taujet_nb_tracks)[k],
00744 TLorentzVector((*taujet_track_px_1)[k],
00745 (*taujet_track_py_1)[k],
00746 (*taujet_track_pz_1)[k],
00747 (*taujet_track_e_1)[k]),
00748 TLorentzVector((*taujet_track_px_2)[k],
00749 (*taujet_track_py_2)[k],
00750 (*taujet_track_pz_2)[k],
00751 (*taujet_track_e_2)[k]),
00752 TLorentzVector((*taujet_track_px_3)[k],
00753 (*taujet_track_py_3)[k],
00754 (*taujet_track_pz_3)[k],
00755 (*taujet_track_e_3)[k])
00756 );
00757 } 
00758  */
00759 // jetpairs //
00760 //      int nb_jetpairs = ( nb_rec_jets*nb_rec_jets - nb_rec_jets)/2;
00761 //vector<MyJetPair> jetpair(nb_jetpairs);
00762 //              vector<MyJetPair> jetpair(1);
00763 //              //jetpair[0] = MyJetPair(rec_jet[0],rec_jet[0]);
00764 
00765 //              int jetpair_index = 0;
00766 //              for (int k=0; k<1; k++) {
00767 // //             for (int j=0; j<nb_rec_jets; j++) {
00768 
00769 // //               if(k==j) continue;
00770 //                jetpair[k] = MyJetPair(rec_jet[k],rec_jet[k]);
00771 //                //jetpair_index++;
00772 
00773 //                //              }
00774 //              }
00775 
00776 // truth data //
00777 vector<MyParticle*> truth_particle(NPar);
00778 for (int k=0; k<NPar; k++) {
00779         
00780         int nmothers;
00781 /*      nmothers=0;
00782         // loop again over the whole vector, check for every particle
00783         // if it is a mother of the particle with the index k
00784         if(k<100){
00785             for (int l=0; (l<NPar && l<100) ; l++) {
00786 //          //cout<<"KFDauNt[l] k KLDauNt[l] "<<KFDauNt[l]<<" "<<k<<" "<<KLDauNt[l]<<endl;
00787 //              if ((KFDauNt[l] <= k) && (k <= KLDauNt[l])){
00788 //                      //cout<<"ID "<<Type[l]<<" is a mother of "<<Type[k]<<endl;
00789 //                      nmothers++;
00790 //                      //if (Type[k]==25){cout<<"nmothers for pdgid 25: "<<nmothers<<endl;}
00791 //              }
00792               int first_d = (KFDauNt[l]);
00793               int last_d  = (KLDauNt[l]);
00794               for (int ld=first_d;ld<=last_d;ld++){
00795                 if (ld=k&&KMothNt[ld]==l){nmothers++;}
00796               }
00797             }
00798         }
00799         if (nmothers>1) cout<<"WARNING more than 1 mother\n";*/
00800         nmothers=1;
00801         //
00802         int ndaughters=0;
00803         int first_d = (KFDauNt[k]);
00804         int last_d  = (KLDauNt[k]);
00805         for (int ld=first_d;ld<=last_d;ld++){
00806           if (KMothNt[ld]==k){ndaughters++;}
00807         }
00808 
00809 
00810         //      cout <<"Truth: "<<k<<"  " <<Type[k]<<"  "<<GenRef[k]<<"  "<<KMothNt[k]<<endl;
00811         tmp_tlv.SetPtEtaPhiM(PtGen[k],EtaGen[k],PhiGen[k],MGen[k]);
00812         
00813 //      if (abs(Type[k])==13 && tmp_tlv.Pt()>5000.0 && tmp_tlv.Eta()<2.55){
00814 //              cout<<"Truth muon, pt: "<<tmp_tlv.Pt()<<", eta: "<<tmp_tlv.Eta()<<", phi: "<<tmp_tlv.Phi()<<", status: "<<GenStat[k]<<endl;
00815 //      }
00816         
00817         truth_particle[k]= 
00818                 new MyTruthParticle(tmp_tlv,
00819 //                                      TLorentzVector(PtGen[k]*cos(PhiGen[k]),
00820 //                                      PtGen[k]*sin(PhiGen[k]),
00821 //                                      PtGen[k]/sin(2*atan(exp(-EtaGen[k])))*cos(2*atan(exp(-EtaGen[k]))),
00822 //                                      MGen[k]),
00823                                 Charge[k],
00824                                 Type[k],
00825                                 GenRef[k],
00826                                 GenStat[k],
00827                                 nmothers, //??? (*truth_particle_nParents)[k],
00828                                 //1, //??? (*truth_particle_nParents)[k],
00829                                 ndaughters, //?? (*truth_particle_nDaughters)[k],
00830                                 GenRef[KMothNt[k]], //???       (*truth_particle_mother0_barcode)[k],
00831                                 Type[KMothNt[k]],//??? (*truth_particle_mother0_pdgId)[k], AAAARGH
00832                                 k
00833                                 );
00834 }
00835 
00836 // KFdauNt[k] is first index of daughter 
00837 // KLdauNt[k] is last index of daughter 
00838 
00839 
00840 // Missing Et//
00841 MyMissingEt missinget(  PXMISS,
00842                 PYMISS,
00843                 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
00844                 /*missing_Et_Final,
00845                   missing_Etsum_Final,
00846                   missing_Etx_CorrTopo,
00847                   missing_Ety_CorrTopo,
00848                   missing_Et_CorrTopo,
00849                   missing_Etsum_CorrTopo,
00850                   missing_Etx_Calib,
00851                   missing_Ety_Calib,
00852                   missing_Et_Calib, 
00853                   missing_Etsum_Calib,
00854                   missing_Etx_Muonboy,
00855                   missing_Ety_Muonboy,
00856                   missing_Et_Muonboy,
00857                   missing_Etsum_Muonboy,
00858                   missing_Etx_Moore,
00859                   missing_Ety_Moore,
00860                   missing_Et_Moore,
00861                   missing_Etsum_Moore,
00862                   missing_Etx_Cryo,
00863                   missing_Ety_Cryo,
00864                   missing_Et_Cryo,
00865                   missing_Etsum_Cryo,
00866                   missing_Etx_CryoCone,
00867                   missing_Ety_CryoCone,
00868                   missing_Et_CryoCone,
00869                   missing_Etsum_CryoCone,*/
00870 
00871                 MET_ExTruthInt,
00872                 MET_EyTruthInt,
00873                 0,
00874                 MET_EtSumTruthInt,
00875                 MET_ExTruthNonInt,
00876                 MET_EyTruthNonInt,
00877                 0,
00878                 MET_EtSumTruthNonInt,
00879                 MET_ExTruthIntCentral,
00880                 MET_EyTruthIntCentral,
00881                 0,
00882                 MET_EtSumTruthIntCentral,
00883                 MET_ExTruthIntFwd,
00884                 MET_EyTruthIntFwd,
00885                 0,
00886                 MET_EtSumTruthIntFwd,
00887                 0,0,0,0,
00888                 MET_ExTruthMuons,
00889                 MET_EyTruthMuons,
00890                 0,
00891                 MET_EtSumTruthMuons
00892 
00893                 /*      truth_missing_Etx_Int,
00894                         truth_missing_Ety_Int,
00895                         truth_missing_Et_Int,//
00896                         truth_missing_Etsum_Int,
00897                         truth_missing_Etx_NonInt,
00898                         truth_missing_Ety_NonInt,
00899                         truth_missing_Et_NonInt,//
00900                         truth_missing_Etsum_NonInt,
00901                         truth_missing_Etx_IntCentral,
00902                         truth_missing_Ety_IntCentral,
00903                         truth_missing_Et_IntCentral,//
00904                         truth_missing_Etsum_IntCentral,
00905                         truth_missing_Etx_IntFwd,
00906                         truth_missing_Ety_IntFwd,
00907                         truth_missing_Et_IntFwd,//
00908                         truth_missing_Etsum_IntFwd,
00909                         truth_missing_Etx_IntOutCover,//
00910                         truth_missing_Ety_IntOutCover,//
00911                         truth_missing_Et_IntOutCover,//
00912                         truth_missing_Etsum_IntOutCover,//
00913                         truth_missing_Etx_Muons,
00914                         truth_missing_Ety_Muons,
00915                         truth_missing_Et_Muons,//
00916                         truth_missing_Etsum_Muons*/
00917                 );
00918                 
00919                 // create an empty MyTrigger Object
00920                 MyTrigger trigger = MyTrigger();
00921 
00922                 // the event //
00923                 MyEvent event(RunNumber, EventNumber, Weight,
00924                                 rec_electron, rec_muon, rec_jet, rec_taujet,
00925                                 truth_particle, truth_jet, missinget, trigger);
00926 //
00927 // call the user analysis //
00928 m_analysis->analyse_event(event);
00929 
00930 // delete all objects in the vectors that were created with "new"
00931 delete_new_objects(rec_electron);
00932 delete_new_objects(rec_muon);
00933 delete_new_objects(rec_jet);
00934 //              delete_new_objects(rec_taujet);
00935 delete_new_objects(truth_particle);
00936 delete_new_objects(truth_jet);
00937 // delete_new_objects(truth_electron);
00938 } //for ev<nb_events
00939 
00941 // END OF DATA //
00943 
00944 m_analysis->end_of_analysis();
00945 
00946 return;
00947 
00948 }
00949 
00950 //*****************************************************************************
00951 
00952 //:::::::::::::::::::::::::::::::
00953 //:: METHOD delete_new_objects ::
00954 //:::::::::::::::::::::::::::::::
00955 
00956 void NtupleReaderFast::delete_new_objects(vector<MyParticle*> tmp_vector) {
00957 
00958         for (unsigned int i=0; i<tmp_vector.size(); i++){
00959                 delete tmp_vector[i];
00960         }
00961 
00962         return;
00963 
00964 }
00965 

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