/afs/hep.man.ac.uk/u/markowen/ATLAS/SFrameProof/2011EPS/manTree/manTree/MElectron.h

00001 #ifndef _MANTREE_MELECTRON_H__
00002 #define _MANTREE_MELECTRON_H__
00003 
00004 #include "manTree/MParticle.h"
00005 
00006 #include <iosfwd>
00007 #include <string>
00008 
00009 #ifdef _ATHENA_CLASSES__
00010 #include "egammaEvent/Electron.h"
00011 class IPAUcaloIsolationTool;
00012 #endif
00013 
00014 namespace manchester {
00015   
00016 class MInDetTrack;
00017 
00018 const unsigned int AuthorUnknown  = 0x0;
00019 const unsigned int AuthorElectron = 0x1;
00020 const unsigned int AuthorSofte    = 0x2;
00021 const unsigned int AuthorPhoton   = 0x4;
00022 const unsigned int AuthorFrwd     = 0x8;
00023 
00025 class MElectron : public MParticle {
00026 public:
00028     MElectron();
00029 
00031     MElectron(const MElectron& em);
00032 
00033 #ifdef _ATHENA_CLASSES__
00035     MElectron(const Analysis::Electron& em, IPAUcaloIsolationTool* isotool=0);
00037     MElectron(const Analysis::Electron& em, std::vector<double> isovalues);
00038 #endif
00039 
00040     virtual ~MElectron();
00041 
00043     Double_t EoverP() const;
00044 
00046     void SetEoverP(const double ep);
00047 
00049     Bool_t IsLoose() const;
00050 
00052     Bool_t IsMedium() const;
00053 
00055     Bool_t IsTight() const;
00056 
00058     Bool_t IsRobustLoose() const;
00059 
00061     Bool_t IsRobustMedium() const;
00062 
00064     Bool_t IsRobusterTight() const;
00065 
00067     Bool_t IsLoosePlusPlus() const;
00068 
00070     Bool_t IsMediumPlusPlus() const;
00071 
00073     Bool_t IsTightPlusPlus() const;
00074 
00076     unsigned int Author() const;
00077 
00079     UInt_t IsEM() const;
00080 
00082     UInt_t GoodOQ() const;
00083     
00085     void SetAuthor(unsigned int author);
00086 
00088     Double_t Et20Cone() const;
00090     Double_t CorrectedEt20Cone() const;
00092     Double_t DataCorrectedEt20Cone() const;
00093 
00095     Double_t Et30Cone() const;
00097     Double_t CorrectedEt30Cone() const;
00099     Double_t DataCorrectedEt30Cone() const;
00100 
00102     Double_t Et40Cone() const;
00104     Double_t CorrectedEt40Cone() const;
00106     Double_t DataCorrectedEt40Cone() const;
00107 
00109     Double_t Et45Cone() const;
00110 
00112     Bool_t TopTriggerMatched() const;
00113 
00115     void SetTopTriggerMatched(bool matched);
00116 
00118     const MInDetTrack* InDetTrack() const;
00119 
00121     const TLorentzVector* Cluster() const;
00122 
00124     void SetCluster(const TLorentzVector& newclus);
00125 
00127     const TLorentzVector ClusTrkVec() const;
00128 
00130     Float_t EtaS2() const;
00131 
00133     Float_t EtaP() const;
00134 
00136     Float_t METWpx() const {return m_met_weights[0];}
00137 
00139     Float_t METWpy() const {return m_met_weights[1];}
00140 
00142     Float_t METWet() const {return m_met_weights[2];}
00143     
00145     void SetMETWeights(const float wpx, const float wpy, const float wet);
00147     void SetMETWeights(const std::vector<double>& weights);
00148 
00150     virtual std::string Type() const;
00151 
00152     MElectron& operator=(const MElectron& p);
00153 
00155     void SetIDTrkVtxParams(const float d0, const float theta, const float phi, const float z0);
00156 
00158     void SetIDTrkBSParams(const float d0, const float theta, const float phi, const float z0);
00159 
00160 protected:
00162     virtual void Reset();
00163 
00164 private:
00166     double m_eoverp;
00167 
00169     bool m_isLoose;
00170 
00172     bool m_isMedium;
00173 
00175     bool m_isTight;
00176 
00178     bool m_isRobustLoose;
00179 
00181     bool m_isRobustMedium;
00182 
00184     bool m_isRobusterTight;
00185 
00187     bool m_isLoosePlusPlus;
00188 
00190     bool m_isMediumPlusPlus;
00191 
00193     bool m_isTightPlusPlus;
00194 
00196     unsigned int m_author;
00197 
00199     unsigned int m_isem;
00200 
00202     unsigned int m_goodoq;
00203 
00205     Double_t m_etcone20; //< cone size = 0.2
00206     Double_t m_etcone30; //< cone size = 0.3
00207     Double_t m_etcone40; //< cone size = 0.4
00208     Double_t m_etcone45; //< cone size = 0.45
00210     Double_t m_ptcorr_etcone20; //< cone size = 0.2
00211     Double_t m_ptcorr_etcone30; //< cone size = 0.3
00212     Double_t m_ptcorr_etcone40; //< cone size = 0.4
00213 
00215     MInDetTrack* m_indetTrack;
00216 
00218     TLorentzVector* m_caloCluster;
00219 
00221     Float_t m_etas2;
00222 
00224     Float_t m_etap;
00225 
00227     bool m_toptrigger_match;
00228 
00230     Float_t m_met_weights[3];
00231 
00232 #ifndef DOXYGEN_IGNORE
00233     ClassDef(MElectron, 18);
00234 #endif
00235 
00236 }; // class MElectron
00237 
00238 } //namespace manchester
00239 
00240 #endif

Generated on Thu Jun 30 11:40:04 2011 for manTreeSFrame by  doxygen 1.4.7