SusyNtuple
SusyNtuple/Lepton.h
00001 // Dear emacs, this is -*- c++ -*-
00002 #ifndef SUSYNTUPLE_LEPTON_H
00003 #define SUSYNTUPLE_LEPTON_H
00004 
00005 #include "SusyNtuple/Particle.h"
00006 
00007 #include "TBits.h"
00008 
00009 namespace Susy
00010 {
00012 class Lepton : public Particle
00013 {
00014 public:
00015     Lepton() :
00016         trigBits(m_nTriggerBits)
00017         {
00018             clear();
00019         }
00020     virtual ~Lepton(){};
00022     Lepton(const Lepton &);
00024     Lepton& operator=(const Lepton &);
00025 
00026     // public member vars
00027     int q;                    
00028     bool isBaseline; 
00029     bool isSignal; 
00030 
00031     //Iso var -- same fer ele & mu
00032     //Etcone to be drop later in run-2
00033     float etconetopo20;       
00034     float etconetopo30;       
00035     float ptcone20;           
00036     float ptcone30;           
00037     float ptvarcone20;        
00038     float ptvarcone30;        
00039 
00040     // IsolationSelectionTool flags
00041     bool isoGradientLoose;    
00042     bool isoGradient;         
00043     bool isoLooseTrackOnly;   
00044     bool isoLoose;            
00045     bool isoTight;            
00046 
00047 
00048     float d0;                 
00049     float errD0;              
00050     float d0sigBSCorr;        
00051     float z0;                 
00052     float errZ0;              
00053 
00054     unsigned int mcType;      
00055     unsigned int mcOrigin;    
00056 
00057     bool matched2TruthLepton; 
00058     int truthType;            
00059 
00060     float effSF;              
00061     //float errEffSF;           ///< Uncertainty on the efficiency scale factor (for electron from LH)
00062 
00063     TBits   trigBits;         
00064     static const size_t m_nTriggerBits=64;
00065 
00067 
00068     float d0Sig() const {
00069       return d0/errD0;
00070     }
00071     float z0SinTheta() const {
00072       return z0 * sin(Theta());
00073     }
00074 
00075     // Polymorphism, baby!!
00076     virtual bool isEle() const { return false; }
00077     virtual bool isMu()  const { return false; }
00078     void setState(int sys){ resetTLV(); }
00079 
00081     virtual void print() const {};
00082 
00084     void clear(){
00085         q = 0;
00086         etconetopo20 = etconetopo30
00087                      = ptcone20    = ptcone30 
00088                      = ptvarcone20 = ptvarcone30 = 0;
00089         isoGradientLoose = isoGradient = isoLooseTrackOnly = isoLoose = isoTight = false;
00090         d0 = errD0 = d0sigBSCorr = z0 = errZ0 = 0;
00091         mcType = mcOrigin = 0;
00092         matched2TruthLepton = false;
00093         truthType = -1;
00094         effSF = 1;
00095         //errEffSF = 0;
00096         isBaseline = isSignal = false;
00097         Particle::clear();
00098     }
00099 
00100     ClassDef(Lepton, 20);
00101 };
00102 } // Susy
00103 #endif
 All Classes Functions Variables Typedefs Enumerations Enumerator