NtupleReader/src/MyPileUpExtractedEvent.cxx

00001 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00002 // 02.08.2007, AUTHOR: OLIVER KORTNER
00003 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00004 
00005 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
00006 //:: IMPLEMENTATION OF METHODS DEFINED IN THE CLASS MyPileUpExtractedEvent ::
00007 //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
00008 
00009 //::::::::::::::::::
00010 //:: HEADER FILES ::
00011 //::::::::::::::::::
00012 
00013 #include "NtupleReader/MyPileUpExtractedEvent.h"
00014 
00015 //::::::::::::::::::::::::
00016 //:: NAMESPACE SETTINGS ::
00017 //::::::::::::::::::::::::
00018 
00019 using namespace std;
00020 
00021 //*****************************************************************************
00022 
00023   //:::::::::::::::::
00024   //:: CONSTRUCTOR ::
00025   //:::::::::::::::::
00026 
00027 MyPileUpExtractedEvent::MyPileUpExtractedEvent(const MyEvent & event) {
00028 
00029     //---------------
00030     //-- VARIABLES --
00031     //---------------
00032 
00033     int vertex(0);  // index of the vertex with highest total
00034                     // transverse track energy
00035     double Et_vert; // transverse vertex energy
00036 
00037     //--------------------------------------------------------------------
00038     //-- LOOK FOR THE VERTEX WITH HIGHEST TOTAL TRANSVERSE TRACK ENERGY --
00039     //--------------------------------------------------------------------
00040     
00041     // no primary vertex has been reconstructed //
00042     if (event.primary_vertices()->size()==0) {
00043         vertex = -1;
00044         m_vertex = NULL;
00045     }
00046 
00047     // if there is a primary vertex, find the right one //
00048     if (vertex!=-1) {
00049         
00050         Et_vert = (*(event.primary_vertices()))[0]->Et();
00051         
00052         for (unsigned int k=1; k<event.primary_vertices()->size(); k++) {
00053             if (Et_vert<(*(event.primary_vertices()))[k]->Et()) {
00054                 Et_vert=(*(event.primary_vertices()))[k]->Et();
00055                 vertex = k;
00056             }
00057         }
00058         
00059         m_vertex = (*(event.primary_vertices()))[vertex]; 
00060     }
00061 
00062     int truth_vertex(0);
00063     Et_vert=0;
00064 
00065     if (event.truth_vertices()->size()==0) {
00066         truth_vertex = -1;
00067         m_truth_vertex = NULL;
00068     }
00069 
00070     // if there is a truth vertex, find the right one //
00071     if (truth_vertex!=-1) {
00072         
00073         Et_vert = (*(event.truth_vertices()))[0]->Et();
00074         
00075         for (unsigned int k=1; k<event.truth_vertices()->size(); k++) {
00076             if (Et_vert<(*(event.truth_vertices()))[k]->Et()) {
00077                 Et_vert=(*(event.truth_vertices()))[k]->Et();
00078                 truth_vertex = k;
00079             }
00080         }
00081         
00082         m_truth_vertex = (*(event.truth_vertices()))[truth_vertex]; 
00083     }
00084     
00085 
00086     //---------------------------------------------------
00087     //-- COLLECT ELECTRONS AND PHOTON FROM THAT VERTEX --
00088     //---------------------------------------------------
00089 
00090     // electrons //
00091     m_rec_electron.clear();
00092     for (unsigned int k=0; k<(event.reco_electrons()).size(); k++) {
00093         
00094         if ((event.reco_electrons())[k]->vertexIndex()==vertex) {
00095         
00096             m_rec_electron.push_back((event.reco_electrons())[k]);
00097         }
00098     }
00099    
00100     // muons //
00101     m_rec_muon.clear();
00102     std::vector<MyParticle*> muons = event.reco_muons("all");
00103     
00104     for (unsigned int k=0; k<muons.size(); k++) {
00105         
00106         if ( muons[k]->vertexIndex() == vertex ){
00107             m_rec_muon.push_back(muons[k]);
00108         }
00109     }
00110     
00111     
00112     //-----------------------------------
00113     //-- COPY THE OTHER EVENT CONTENTS --
00114     //-----------------------------------
00115 
00116     m_rec_jet        = event.reco_jets();
00117     m_truth_jet      = event.truth_jets();
00118     m_track_jet      = event.track_jets();
00119     m_track_jet      = event.truth_track_jets();
00120     m_rec_taujet     = event.reco_taujets();
00121     m_met_manager    = event.met_manager();
00122     m_trigger        = event.trigger();
00123     m_truth_particle = event.truth_particles();
00124         
00125     m_dataset_info = &MyDatasetInfo::Instance();
00126     
00127 }

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