ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/Muon.h
Revision: 1.13
Committed: Fri Aug 8 11:17:13 2008 UTC (16 years, 8 months ago) by sixie
Content type: text/plain
Branch: MAIN
CVS Tags: MITHEP_2_0_x
Changes since 1.12: +62 -8 lines
Log Message:
Add object ID variables into the Electron and Muons. Add functions to compute track and ecal isolation to electrons

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 sixie 1.13 // $Id: Muon.h,v 1.12 2008/07/29 07:55:40 loizides Exp $
3 loizides 1.1 //
4     // Muon
5     //
6     // Details to be worked out...
7     //
8 paus 1.5 // Authors: C.Loizides, J.Bendavid, C.Paus
9 loizides 1.1 //--------------------------------------------------------------------------------------------------
10 loizides 1.6
11 paus 1.5 #ifndef DATATREE_MUON_H
12     #define DATATREE_MUON_H
13 loizides 1.8
14     #include <TRef.h>
15 bendavid 1.11 #include "MitAna/DataTree/interface/ChargedParticle.h"
16 loizides 1.8 #include "MitAna/DataTree/interface/Track.h"
17 loizides 1.1
18     namespace mithep
19     {
20 bendavid 1.11 class Muon : public ChargedParticle
21 loizides 1.1 {
22     public:
23     Muon() {}
24     ~Muon() {}
25 bendavid 1.2
26 loizides 1.10 const Track *BestTrk() const;
27     const Track *GlobalTrk() const;
28     const Track *StandaloneTrk() const;
29     const Track *TrackerTrk() const;
30 sixie 1.13 const Track *Trk() const { return BestTrk(); }
31     Double_t IsoR03SumPt() const { return fIsoR03SumPt; }
32     Double_t IsoR03EmEt() const { return fIsoR03EmEt; }
33     Double_t IsoR03HadEt() const { return fIsoR03HadEt; }
34     Double_t IsoR03HoEt() const { return fIsoR03HoEt; }
35     Int_t IsoR03NTracks() const { return fIsoR03NTracks; }
36     Int_t IsoR03NJets() const { return fIsoR03NJets; }
37     Double_t IsoR05SumPt() const { return fIsoR05SumPt; }
38     Double_t IsoR05EmEt() const { return fIsoR05EmEt; }
39     Double_t IsoR05HadEt() const { return fIsoR05HadEt; }
40     Double_t IsoR05HoEt() const { return fIsoR05HoEt; }
41     Int_t IsoR05NTracks() const { return fIsoR05NTracks; }
42     Int_t IsoR05NJets() const { return fIsoR05NJets; }
43     Double_t EmEnergy() const { return fEmEnergy; }
44     Double_t HadEnergy() const { return fHadEnergy; }
45     Double_t HoEnergy() const { return fHoEnergy; }
46     Double_t EmS9Energy() const { return fEmS9Energy; }
47     Double_t HadS9Energy() const { return fHadS9Energy; }
48     Double_t HoS9Energy() const { return fHoS9Energy; }
49     Double_t Mass() const { return 105.658369e-3; }
50 loizides 1.8
51 sixie 1.13 void SetGlobalTrk(Track* t) { fGlobalTrackRef = t; }
52     void SetStandaloneTrk(Track* t) { fStandaloneTrackRef = t; }
53     void SetTrackerTrk(Track* t) { fTrackerTrackRef = t; }
54     void SetIsoR03SumPt(Double_t isoR03SumPt) { fIsoR03SumPt = isoR03SumPt; }
55     void SetIsoR03EmEt(Double_t isoR03EmEt) { fIsoR03EmEt = isoR03EmEt; }
56     void SetIsoR03HadEt(Double_t isoR03HadEt) { fIsoR03HadEt = isoR03HadEt; }
57     void SetIsoR03HoEt(Double_t isoR03HoEt) { fIsoR03HoEt = isoR03HoEt; }
58     void SetIsoR03NTracks(Int_t isoR03NTracks) { fIsoR03NTracks = isoR03NTracks; }
59     void SetIsoR03NJets(Int_t isoR03NJets) { fIsoR03NJets = isoR03NJets; }
60     void SetIsoR05SumPt(Double_t isoR05SumPt) { fIsoR05SumPt = isoR05SumPt; }
61     void SetIsoR05EmEt(Double_t isoR05EmEt) { fIsoR05EmEt = isoR05EmEt; }
62     void SetIsoR05HadEt(Double_t isoR05HadEt) { fIsoR05HadEt = isoR05HadEt; }
63     void SetIsoR05HoEt(Double_t isoR05HoEt) { fIsoR05HoEt = isoR05HoEt; }
64     void SetIsoR05NTracks(Int_t isoR05NTracks) { fIsoR05NTracks = isoR05NTracks; }
65     void SetIsoR05NJets(Int_t isoR05NJets) { fIsoR05NJets = isoR05NJets; }
66     void SetEmEnergy(Double_t EmEnergy) { fEmEnergy = EmEnergy; }
67     void SetHadEnergy(Double_t HadEnergy) { fHadEnergy = HadEnergy; }
68     void SetHoEnergy(Double_t HoEnergy) { fHoEnergy = HoEnergy; }
69     void SetEmS9Energy(Double_t EmS9Energy) { fEmS9Energy = EmS9Energy; }
70     void SetHadS9Energy(Double_t HadS9Energy) { fHadS9Energy = HadS9Energy; }
71     void SetHoS9Energy(Double_t HoS9Energy) { fHoS9Energy = HoS9Energy; }
72    
73 loizides 1.8 protected:
74 loizides 1.9 TRef fGlobalTrackRef; //global combined track reference
75     TRef fStandaloneTrackRef; //standalone muon track reference
76     TRef fTrackerTrackRef; //tracker track reference
77 sixie 1.13 Double_t fIsoR03SumPt;
78     Double_t fIsoR03EmEt;
79     Double_t fIsoR03HadEt;
80     Double_t fIsoR03HoEt;
81     Int_t fIsoR03NTracks;
82     Int_t fIsoR03NJets;
83     Double_t fIsoR05SumPt;
84     Double_t fIsoR05EmEt;
85     Double_t fIsoR05HadEt;
86     Double_t fIsoR05HoEt;
87     Int_t fIsoR05NTracks;
88     Int_t fIsoR05NJets;
89     Double_t fEmEnergy;
90     Double_t fHadEnergy;
91     Double_t fHoEnergy;
92     Double_t fEmS9Energy;
93     Double_t fHadS9Energy;
94     Double_t fHoS9Energy;
95    
96 loizides 1.7 ClassDef(Muon, 1) // Muon class
97 loizides 1.1 };
98 loizides 1.4 }
99 loizides 1.8
100 loizides 1.9 //--------------------------------------------------------------------------------------------------
101 loizides 1.10 inline const mithep::Track *mithep::Muon::BestTrk() const
102     {
103     // Return "best" track.
104    
105     if (GlobalTrk())
106     return GlobalTrk();
107     else if (StandaloneTrk())
108     return StandaloneTrk();
109     else if (TrackerTrk())
110     return TrackerTrk();
111    
112     return 0;
113     }
114    
115     //--------------------------------------------------------------------------------------------------
116     inline const mithep::Track *mithep::Muon::GlobalTrk() const
117 loizides 1.9 {
118     // Return global combined track.
119    
120     return static_cast<const Track*>(fGlobalTrackRef.GetObject());
121     }
122    
123     //--------------------------------------------------------------------------------------------------
124 loizides 1.10 inline const mithep::Track *mithep::Muon::StandaloneTrk() const
125 loizides 1.9 {
126     // Return standalone track.
127    
128     return static_cast<const Track*>(fStandaloneTrackRef.GetObject());
129     }
130    
131     //--------------------------------------------------------------------------------------------------
132 loizides 1.10 inline const mithep::Track *mithep::Muon::TrackerTrk() const
133 loizides 1.9 {
134     // Return tracker track.
135    
136     return static_cast<const Track*>(fTrackerTrackRef.GetObject());
137     }
138 loizides 1.4 #endif