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

TMBMuon.hpp

Go to the documentation of this file.
00001 #ifndef TMBMuon_H
00002 #define TMBMuon_H
00003 
00005 //                                                                      //
00006 // TMBTree Muon class                                                   //
00007 //                                                                      //
00009 
00010 #include "tmb_tree/TMBLorentzVector.hpp"
00011 #include "tmb_tree/TMBMuonType.hpp"
00012 
00013 #ifndef ROOT_TRef
00014 #include "TRef.h"
00015 #endif
00016 #ifndef ROOT_TRefArray
00017 #include "TRefArray.h"
00018 #endif
00019 
00020 class TMBTrack;
00021 class TMBVertex;
00022 
00027 class TMBMuon : public TMBLorentzVector {
00028 
00029 public:
00030 
00032   enum Type {
00033     kLocalCorr   = 0,
00034     kCentralCorr = 1,
00035     kSmearedMC   = 2
00036   };
00037 
00038 private:
00039 
00040   // different muon types
00041   TMBMuonType _local;      
00042   TMBMuonType _localcorr;  
00043   TMBMuonType _central;    
00044   TMBMuonType _centralcorr;
00045   TMBMuonType _global;     
00046   TMBMuonType _smearedMC;  
00047   Type _best; 
00048  
00049   // muon system info:
00050   Int_t        _nhit;      
00051   Int_t        _ndeck;     
00052   Int_t        _region;    
00053   Int_t        _octant;    
00054   Float_t      _chisqloc;  
00055   Float_t      _sctimeA;   
00056   Float_t      _sctimeB;   
00057   Float_t      _sctimeC;   
00058   Float_t      _xA;        
00059   Float_t      _yA;        
00060   Float_t      _zA;        
00061   Float_t      _bdl;       
00062 
00063   // matching info:
00064   Int_t        _nseg;        
00065   Int_t        _ndof;        
00066   Float_t      _deltaPhi;    
00067   Float_t      _deltaEta;    
00068   Float_t      _deltaDrift;  
00069   Float_t      _chisq;       
00070   Float_t      _zAtPca;      
00071   Float_t      _impPar;      
00072   Float_t      _impParSig;   
00073   Float_t      _err_impPar;  
00074   Float_t      _err_zAtPca;  
00075   Float_t      _dca;         
00076   Float_t      _deteta;      
00077   TRef         _chptr;       
00078   TRef         _vtxref;      
00079 
00080   // MTC info:
00081   Int_t        _calnLayer;   
00082   Int_t        _nmtc;        
00083   Float_t      _etrack_best; 
00084   Float_t      _caleSig;     
00085   Float_t      _calEta;      
00086   Float_t      _calPhi;      
00087   Float_t      _eloss;       
00088 
00089   // isolation variables
00090   Int_t        _nTrk5;     
00091   Float_t      _EInCone1;  
00092   Float_t      _EInCone15; 
00093   Float_t      _EInCone2;  
00094   Float_t      _EInCone4;  
00095   Float_t      _EInCone6;  
00096   Float_t      _drJet5;    
00097   Float_t      _etTrkCone5;
00098   Float_t      _etHalo;    
00099 
00100   // Flags
00101   Int_t _isLoose;     
00102   Int_t _isMedium;    
00103   Int_t _isTight;     
00104   Int_t _hasLocal;    
00105   Int_t _hasCentral;  
00106   Int_t _hasCal;      
00107   Int_t _isMuonEventOK;
00108   Int_t _isCosmic;     
00109   Int_t _isCosmicT;    
00110   
00111   // Expected number of hits
00112   Int_t _expWhitsA;  
00113   Int_t _expWhitsBC; 
00114   Int_t _expShitsA;  
00115   Int_t _expShitsBC; 
00116 
00117   Float_t _rand; 
00118 
00119 public:
00120   
00122   TMBMuon();
00123 
00125   TMBMuon(Double_t pT, Double_t eta, Double_t phi, Type best,
00126           const TMBMuonType& local,   const TMBMuonType& localcorr, 
00127           const TMBMuonType& central, const TMBMuonType& centralcorr, 
00128           const TMBMuonType& global,  const TMBMuonType& smearedMC);
00129                         
00131   void SetLocalInfo(Int_t nhit, Int_t ndeck, Int_t region, Int_t octant,
00132                 Float_t chisqloc, Float_t sctimeA, Float_t sctimeB, Float_t sctimeC,
00133                 Float_t xA, Float_t yA, Float_t zA, Float_t bdl);
00134 
00136   void SetMatchingInfo(Int_t nseg, Int_t ndof, 
00137                 Float_t deltaPhi, Float_t deltaEta, Float_t deltaDrift,
00138                 Float_t chisq, Float_t zAtPca, Float_t impPar, Float_t impParSig, 
00139                 Float_t err_zAtPca, Float_t err_impPar, Float_t dca, Float_t deteta,
00140                 TRef chptr, TRef vtxref);
00141 
00143   void SetMTCInfo(Int_t nmtc, Int_t calnLayer, Float_t etrack_best,
00144                 Float_t caleSig, Float_t calEta, Float_t calPhi, Float_t eloss);
00145 
00147   void SetIsolationInfo(Int_t nTrk5, Float_t EInCone1, Float_t EInCone15, Float_t EInCone2, 
00148                 Float_t EInCone4, Float_t EInCone6,
00149                 Float_t drJet5, Float_t etTrkCone5, Float_t etHalo);
00150 
00152   void SetFlags(Int_t isLoose, Int_t isMedium, Int_t isTight, 
00153                 Int_t hasLocal, Int_t hasCentral, Int_t hasCal,
00154                 Int_t isMuonEventOK, Int_t isCosmic, Int_t isCosmicT);  
00155 
00157   void SetExpectedHits(Int_t expWhitsA, Int_t expWhitsBC, Int_t expShitsA, Int_t expShitsBC);
00158 
00160   void SetMCsmearingRand(Float_t rand);
00161 
00163   void CorrectPt(double dca);
00164 
00165   ~TMBMuon() {;}
00166 
00167   // different muon types
00169   const TMBMuonType& Local()                    const{return _local;}
00171   const TMBMuonType& LocalCorr()                const{return _localcorr;}
00173   const TMBMuonType& Central()                  const{return _central;}
00175   const TMBMuonType& CentralCorr()              const{return _centralcorr;}
00177   const TMBMuonType& Global()                   const{return _global;}
00179   const TMBMuonType& SmearedMC()                const{return _smearedMC;}
00180 
00181   // general methods, those of TMBMuonType (additionnal those of TMBLorentzVector)
00183   Int_t       charge()  const;
00185   Double_t    tlm()     const;
00187   Double_t    err_phi() const;
00189   Double_t    err_eta() const;
00191   Double_t    err_pT()  const;
00192 
00193   // muon system info:
00195   Int_t       nhit()                    const {return _nhit;}
00197   Int_t       ndeck()                   const {return _ndeck;}
00199   Int_t       region()                  const {return _region;}
00201   Int_t       octant()                  const {return _octant;}
00203   Float_t     chisqloc()                const {return _chisqloc ;} 
00205   Float_t     sctimeA()                 const {return _sctimeA ;} 
00207   Float_t     sctimeB()                 const {return _sctimeB ;}
00209   Float_t     sctimeC()                 const {return _sctimeC ;} 
00211   Float_t     xA()                      const {return _xA ;} 
00213   Float_t     yA()                      const {return _yA ;} 
00215   Float_t     zA()                      const {return _zA;} 
00217   Float_t     bdl()                     const {return _bdl;}
00218 
00220   Int_t  wireHitsA() const;
00222   Int_t  wireHitsB() const;
00224   Int_t  wireHitsC() const;
00226   Int_t  wireHitsBC() const;
00228   Int_t  scintHitsA() const;
00230   Int_t  scintHitsB() const;
00232   Int_t  scintHitsC() const;
00234   Int_t  scintHitsBC() const;
00235   // return muon detector eta at R=rdet (mainly for rdet = A, B or C layer)
00236   Double_t GetEtaDetector(Double_t eta, Double_t z, Double_t rdet) const;
00237 
00238   // matching info:
00240   Int_t       nseg()                    const {return _nseg;}
00242   Int_t       ndof()                    const {return _ndof;}
00244   Float_t     deltaPhi()                const {return _deltaPhi;}
00246   Float_t     deltaEta()                const {return _deltaEta;}
00248   Float_t     deltaDrift()              const {return _deltaDrift;}
00250   Float_t     chisq()                   const {return _chisq;}
00252   Float_t     zAtPca()                  const {return _zAtPca ;} 
00254   Float_t     impPar()                  const {return _impPar ;} 
00256   Float_t     impParSig()               const {return _impParSig ;} 
00258   Float_t     err_impPar()              const {return _err_impPar;} 
00260   Float_t     err_zAtPca()              const {return _err_zAtPca ;}
00262   Float_t     dca()                     const {return _dca;} 
00264   Float_t     detectorEta()             const {return _deteta;}
00266   TMBTrack*   GetChargedTrack()         const {return _chptr.IsValid() ? (TMBTrack*)_chptr.GetObject() : 0;}
00268   const TRef& GetChargedTrackRef()      const {return _chptr;}
00270   TMBVertex*  GetVertex()               const {return _vtxref.IsValid() ? (TMBVertex*)_vtxref.GetObject() : 0;}
00272   const TRef& GetVertexRef()            const {return _vtxref;}
00274   Double_t chisqProb() const;
00275 
00276   // MTC info:
00278   Int_t       calnLayer()               const {return _calnLayer;}
00280   Int_t       nmtc()                    const {return _nmtc;}
00282   Float_t     etrack_best()             const {return _etrack_best;} 
00284   Float_t     caleSig()                 const {return _caleSig;}
00286   Float_t     calEta()                  const {return _calEta;}
00288   Float_t     calPhi()                  const {return _calPhi;}
00290   Float_t     eloss()                   const {return _eloss;}
00291  
00292   // Isolation info:
00294   Int_t       nTrk5()                   const {return _nTrk5;}
00296   Float_t     EInCone1()                const {return _EInCone1;}
00298   Float_t     EInCone15()               const {return _EInCone15;}
00300   Float_t     EInCone2()                const {return _EInCone2;}
00302   Float_t     EInCone4()                const {return _EInCone4;}
00304   Float_t     EInCone6()                const {return _EInCone6;}
00306   Float_t     drJet5()                  const {return _drJet5;}
00308   Float_t     etTrkCone5()              const {return _etTrkCone5;}
00310   Float_t     etHalo()                  const {return _etHalo;}
00311 
00312   // Flags:
00314   Int_t       isLoose()                 const { return _isLoose;}
00316   Int_t       isMedium()                const { return _isMedium;}
00318   Int_t       isTight()                 const {return _isTight;}
00320   Int_t       hasLocal()                const {return _hasLocal;}
00322   Int_t       hasCentral()              const {return _hasCentral;}
00324   Int_t       hasCal()                  const {return _hasCal;}
00326   Int_t       isMuonEventOK()           const {return _isMuonEventOK;}
00328   Int_t       isCosmic()                const {return _isCosmic;}
00330   Int_t       isCosmicT()               const {return _isCosmicT;}
00331 
00332   // Expected number of hits:
00334   Int_t expWhitsA()      const {return _expWhitsA;}
00336   Int_t expWhitsBC()     const {return _expWhitsBC;}
00338   Int_t expShitsA()      const { return _expShitsA;}
00340   Int_t expShitsBC()     const { return _expShitsBC;}
00341 
00343   Float_t MCsmearingRand() const { return _rand;}
00344 
00345   ClassDef(TMBMuon, 5)   // TMBTree Muon class
00346 };
00347 
00348 #endif

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