Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

TMBTau.hpp

Go to the documentation of this file.
00001 #ifndef TMBTau_H
00002 #define TMBTau_H
00003 
00005 //                                                                      //
00006 // File:  TMBTau.hpp
00007 //                                                                      //
00009 
00010 #include "tmb_tree/TMBLorentzVector.hpp"
00011 
00012 //#ifndef ROOT_TObject
00013 //#include "TObject.h"
00014 //#endif
00015 #ifndef ROOT_TRef
00016 #include "TRef.h"
00017 #endif
00018 #ifndef ROOT_TRefArray
00019 #include "TRefArray.h"
00020 #endif
00021 
00022 class TMBTrack;
00023 class TMBCps;
00024 class TMBFps;
00025 class TMBVertex;
00026 
00027 //class TauQuality;
00028 
00033 class TMBTau : public TMBLorentzVector {
00034 
00035 private:
00036    TRefArray      _cpsptr;
00037    TRefArray      _fpsptr;
00038    TRefArray      _tracks;
00039    TRef           _vtxref;
00040 
00041    Float_t        _rms;
00042    Float_t        _profile;
00043    Float_t        _emf;         
00044    Float_t        _icdf;        
00045    Float_t        _chf;         
00046    Float_t        _hot;         
00047    Float_t        _nnout;
00048    Int_t          _flag;
00049 
00050     //  quality quantities
00051   // Int_t          _iq[3]; // replaced by
00052   Int_t _nclus;
00053   // Float_t        _fq[34]; // replaced by
00054   Float_t _ett1; 
00055   Float_t _ett2; 
00056   Float_t _ett3; 
00057   Float_t _mtrk; 
00058   Float_t _ettr; 
00059   Float_t _empt; 
00060   Float_t _emm; 
00061   Float_t _emeta; 
00062   Float_t _emphi; 
00063   Float_t _tzDCA; 
00064   Float_t _teta;  
00065   Float_t _tphi;  
00066   Float_t _tphiPS; 
00067   Float_t _tphiEM3; 
00068   Float_t _emcl_eta1; 
00069   Float_t _emcl_eta2; 
00070   Float_t _emcl_phi1; 
00071   Float_t _emcl_phi2; 
00072   Float_t _emcl_et1; 
00073   Float_t _emcl_et2; 
00074   Float_t _pseta; 
00075   Float_t _psphi; 
00076   Float_t _e1e2;  
00077   Float_t _dalpha;
00078 
00079   Float_t _emcl_f12; 
00080   Float_t _emcl_f3; 
00081   Float_t _emcl_f4; 
00082 
00083    Float_t        _et_7;
00084    Float_t        _et_3;
00085    Float_t        _EM12_Et;
00086    Float_t        _EM12_Et_core;
00087    Float_t        _EM3_Et;
00088    Float_t        _EM3_Et_core;
00089    Float_t        _EM4_Et;
00090    Float_t        _EM4_Et_core;
00091    Int_t        _typ;
00092 
00093 public:
00094    TMBTau() {;}
00095    TMBTau(Float_t px, Float_t py, Float_t pz, Float_t E, 
00096           TRefArray* cpsptr, TRefArray* fpsptr,
00097           TRefArray* tracks, TRef& vtxref,
00098           Float_t rms, Float_t profile, Float_t emf,
00099           Float_t icdf, Float_t chf, Float_t hot,
00100           Int_t flag, Int_t* iq, Float_t* fq,
00101           Float_t et_7, Float_t et_3, 
00102           Float_t EM12_Et, Float_t EM12_Et_core,
00103           Float_t EM3_Et, Float_t EM3_Et_core, Float_t  EM4_Et,
00104           Float_t EM4_Et_core, Int_t typ);
00105 
00106    void Set(Float_t px, Float_t py, Float_t pz, Float_t E,
00107           TRefArray* cpsptr, TRefArray* fpsptr, 
00108          TRefArray* tracks, TRef& vtxref,
00109          Float_t rms, Float_t profile, Float_t emf,
00110          Float_t icdf, Float_t chf, Float_t hot,
00111          Int_t flag, Int_t* iq, Float_t* fq,
00112          Float_t et_7, Float_t et_3,
00113          Float_t EM12_Et, Float_t EM12_Et_core,
00114          Float_t EM3_Et, Float_t EM3_Et_core, Float_t  EM4_Et,
00115          Float_t EM4_Et_core, Int_t typ);
00116   void SetNN(Float_t nn){ _nnout=nn;}
00117 
00118 
00119   Float_t   ET()      const {return Perp();}
00120 
00121    Float_t   rms()     const {return _rms;}
00122    Float_t   profile() const {return _profile;}
00123    Float_t   emf()     const {return _emf;}
00124    Float_t   icdf()    const {return _icdf;}
00125    Float_t   chf()          const {return _chf;}
00126    Float_t   hot()          const {return _hot;}
00127 
00128    Int_t     flag()         const {return _flag;}
00129    Float_t   Et_iso()       const {return _et_7;}
00130    Float_t   Et()           const {return _et_3;}
00131    Float_t   EM12_Et_iso()  const {return _EM12_Et;}
00132    Float_t   EM12_Et()      const {return _EM12_Et_core;}
00133    Float_t   EM3_Et_iso()   const {return _EM3_Et;}
00134    Float_t   EM3_Et()       const {return _EM3_Et_core;}
00135    Float_t   EM4_Et_iso()   const {return _EM4_Et;}
00136    Float_t   EM4_Et()       const {return _EM4_Et_core;}
00137    Int_t   type()         const {return _typ;}
00138 
00139    Int_t     nclus()        const {return _nclus;}
00140    Float_t   ett1()         const {return _ett1;}
00141    Float_t   ett2()         const {return _ett2;}
00142    Float_t   ett3()         const {return _ett3;}
00143    Float_t   mtrk()         const {return _mtrk;}
00144    Float_t   ettr()         const {return _ettr;}
00145   Float_t   empt()         const {return _empt;}
00146    Float_t   emm()          const {return _emm;}
00147    Float_t   emeta()        const {return _emeta;}
00148    Float_t   emphi()        const {return _emphi;}
00149    Float_t   tzDCA()        const {return _tzDCA;}
00150    Float_t   teta()         const {return _teta;}
00151    Float_t   tphi()         const {return _tphi;}
00152    Float_t   tphiPS()       const {return _tphiPS;}
00153    Float_t   tphiEM3()      const {return _tphiEM3;}
00154    Float_t   emcl_eta1()    const {return _emcl_eta1;}
00155    Float_t   emcl_eta2()    const {return _emcl_eta2;}
00156    Float_t   emcl_phi1()    const {return _emcl_phi1;}
00157    Float_t   emcl_phi2()    const {return _emcl_phi2;}
00158    Float_t   emcl_et1()     const {return _emcl_et1;}
00159    Float_t   emcl_et2()     const {return _emcl_et2;}
00160    Float_t   pseta()        const {return _pseta;}
00161    Float_t   psphi()        const {return _psphi;}
00162    Float_t   e1e2()         const {return _e1e2;}
00163    Float_t   dalpha()       const {return _dalpha;}
00164 
00165    Float_t   emcl_f12()     const {return _emcl_f12;}
00166    Float_t   emcl_f3()      const {return _emcl_f3;}
00167    Float_t   emcl_f4()      const {return _emcl_f4;}
00168   Float_t nnout() const{return _nnout;}
00169    
00170   Int_t  ntrk() const {return _tracks.GetLast()+1;}
00171   const TMBTrack*  GetChargedTrack(Int_t itrk) const {return (const TMBTrack*)_tracks.At(itrk);}
00172   const TMBVertex*  GetVertex()                 const {return _vtxref.IsValid() ? (const TMBVertex*)_vtxref.GetObject() : 0;}
00173   Int_t ncps() const{return _cpsptr.GetLast()+1;}
00174   const TMBCps*   GetCps(Int_t icps)          const {return (const TMBCps*)_cpsptr.At(icps);}
00175   Int_t nfps() const{return _fpsptr.GetLast()+1;}
00176   const TMBFps*   GetFps(Int_t ifps)          const {return (const TMBFps*)_fpsptr.At(ifps);}
00177 
00178    Float_t   EM12isof() const {return _et_7 >= 0.001 ? _EM12_Et/_et_7      : _EM12_Et/0.001 ;}
00179    Float_t   EM12f()  const {return _et_3 >= 0.001 ? _EM12_Et_core/_et_3 : _EM12_Et_core/0.001;}
00180    Float_t   EM3isof() const {return _et_7 >= 0.001 ? _EM3_Et/_et_7       : _EM3_Et/0.001;}
00181    Float_t   EM3f()    const {return _et_3 >= 0.001 ? _EM3_Et_core/_et_3  : _EM3_Et_core/0.001;}
00182    Float_t   EM4isof() const {return _et_7 >= 0.001 ? _EM4_Et/_et_7       : _EM4_Et/0.001;}
00183    Float_t   EM4f()    const {return _et_3 >= 0.001 ? _EM4_Et_core/_et_3  : _EM4_Et_core/0.001;}
00184    Float_t   iso()     const {return _et_3 >= 0.001 ? (_et_7 - _et_3)/_et_3 : (_et_7 - _et_3)/0.001;}
00185   Float_t charge() const;
00186   Float_t vz() const;
00187   Float_t det_eta(float z, float pz, float pT) const;
00188   Float_t etad() const;
00189 
00190    ~TMBTau() {;}
00191 
00192 template <class T>
00193 int give_sign (T x) const
00194 //
00195 // Purpose: Return the sign of X.
00196 //
00197 // Inputs:
00198 //   x -           The value to test.
00199 //
00200 // Returns:
00201 //   One of +1, -1, or 0, depending on the sign of X.
00202 //
00203 {
00204   if (x > 0)
00205     return 1;
00206   else if (x < 0)
00207     return -1;
00208   else
00209     return 0;
00210 }
00211 
00212 
00213     ClassDef(TMBTau, 3)   // TMBTree Taus class
00214 };
00215 
00216 #endif

Generated on Tue Mar 28 10:13:05 2006 for CAF by doxygen 1.3.4