5 |
|
// |
6 |
|
// Details to be worked out... |
7 |
|
// |
8 |
< |
// Authors: C.Loizides, J.Bendavid, C.Paus |
8 |
> |
// Authors: C.Loizides(AKA TREE NAZI), J.Bendavid, C.Paus |
9 |
|
//-------------------------------------------------------------------------------------------------- |
10 |
|
|
11 |
< |
#ifndef MITANA_DATATREE_MUON_H |
12 |
< |
#define MITANA_DATATREE_MUON_H |
11 |
> |
#ifndef DATATREE_MUON_H |
12 |
> |
#define DATATREE_MUON_H |
13 |
|
|
14 |
|
#include <TRef.h> |
15 |
|
#include "MitAna/DataTree/interface/ChargedParticle.h" |
16 |
|
#include "MitAna/DataTree/interface/Track.h" |
17 |
|
|
18 |
< |
namespace mithep |
19 |
< |
{ |
20 |
< |
class Muon : public ChargedParticle |
21 |
< |
{ |
18 |
> |
#include "MitAna/DataTree/interface/BitMask32.h" |
19 |
> |
|
20 |
> |
namespace mithep { |
21 |
> |
class Muon : public ChargedParticle { |
22 |
|
public: |
23 |
|
Muon() {} |
24 |
|
~Muon() {} |
27 |
|
const Track *GlobalTrk() const; |
28 |
|
const Track *StandaloneTrk() const; |
29 |
|
const Track *TrackerTrk() const; |
30 |
< |
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; } |
30 |
> |
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 |
> |
//PCH |
51 |
> |
Int_t NChambers() const { return fNTraversedChambers;} |
52 |
> |
|
53 |
> |
BitMask32 Stations() const { return fStationMask; } |
54 |
> |
UInt_t StationMask() const { return fStationMask.Bits(); } |
55 |
> |
Int_t NSegments() const { return fStationMask.NBitsSet();} |
56 |
|
|
57 |
+ |
Float_t GetDX(int iStation) const { |
58 |
+ |
if(iStation >= 0 && iStation < 8) return fDX[iStation]; |
59 |
+ |
return 99999; |
60 |
+ |
} |
61 |
+ |
Float_t GetDY(int iStation) const { |
62 |
+ |
if(iStation >= 0 && iStation < 8) return fDY[iStation]; |
63 |
+ |
return 99999; |
64 |
+ |
} |
65 |
+ |
Float_t GetPullX(int iStation) const { |
66 |
+ |
if(iStation >= 0 && iStation < 8) return fPullX[iStation]; |
67 |
+ |
return 99999; |
68 |
+ |
} |
69 |
+ |
Float_t GetPullY(int iStation) const { |
70 |
+ |
if(iStation >= 0 && iStation < 8) return fPullY[iStation]; |
71 |
+ |
return 99999; |
72 |
+ |
} |
73 |
+ |
Float_t GetTrackDist(int iStation) const { |
74 |
+ |
if(iStation >= 0 && iStation < 8) return fTrackDist[iStation]; |
75 |
+ |
return 99999; |
76 |
+ |
} |
77 |
+ |
Float_t GetTrackDistErr(int iStation) const { |
78 |
+ |
if(iStation >= 0 && iStation < 8) return fTrackDistErr[iStation]; |
79 |
+ |
return 99999; |
80 |
+ |
} |
81 |
+ |
Int_t GetNSegments(int iStation) const { |
82 |
+ |
if(iStation >= 0 && iStation < 8) return fNSegments[iStation]; |
83 |
+ |
return 99999; |
84 |
+ |
} |
85 |
|
void SetGlobalTrk(Track* t) { fGlobalTrackRef = t; } |
86 |
|
void SetStandaloneTrk(Track* t) { fStandaloneTrackRef = t; } |
87 |
|
void SetTrackerTrk(Track* t) { fTrackerTrackRef = t; } |
104 |
|
void SetHadS9Energy(Double_t HadS9Energy) { fHadS9Energy = HadS9Energy; } |
105 |
|
void SetHoS9Energy(Double_t HoS9Energy) { fHoS9Energy = HoS9Energy; } |
106 |
|
|
107 |
+ |
//PCH |
108 |
+ |
void SetNChambers(Int_t iNTraversedChambers) {fNTraversedChambers = iNTraversedChambers;} |
109 |
+ |
void SetStationMask(UInt_t iStationMask) {fStationMask.SetBits(iStationMask);} |
110 |
+ |
void SetDX(int iStation,Float_t iDX) {if(iStation >= 0 && iStation < 8) fDX[iStation] = iDX;} |
111 |
+ |
void SetDY(int iStation,Float_t iDY) {if(iStation >= 0 && iStation < 8) fDY[iStation] = iDY;} |
112 |
+ |
void SetPullX(int iStation,Float_t iPullX) {if(iStation >= 0 && iStation < 8) fPullX[iStation] = iPullX;} |
113 |
+ |
void SetPullY(int iStation,Float_t iPullY) {if(iStation >= 0 && iStation < 8) fPullY[iStation] = iPullY;} |
114 |
+ |
void SetTrackDist(int iStation,Float_t iDist) {if(iStation >= 0 && iStation < 8) fTrackDist[iStation] = iDist;} |
115 |
+ |
void SetTrackDistErr(int iStation,Float_t iDistErr) {if(iStation >= 0 && iStation < 8) fTrackDistErr[iStation] = iDistErr;} |
116 |
+ |
void SetNSegments (int iStation,int iNSegements) {if(iStation >= 0 && iStation < 8) fNSegments [iStation] = iNSegements;} |
117 |
+ |
|
118 |
|
protected: |
119 |
|
TRef fGlobalTrackRef; //global combined track reference |
120 |
|
TRef fStandaloneTrackRef; //standalone muon track reference |
137 |
|
Double_t fEmS9Energy; |
138 |
|
Double_t fHadS9Energy; |
139 |
|
Double_t fHoS9Energy; |
140 |
< |
|
140 |
> |
//-------------> Added By PCH |
141 |
> |
//-------------> 0-3 DT 4-7 CSCs Segment Components |
142 |
> |
Int_t fNTraversedChambers; |
143 |
> |
BitMask32 fStationMask; |
144 |
> |
|
145 |
> |
Float_t fDX[8]; |
146 |
> |
Float_t fDY[8]; |
147 |
> |
Float_t fPullX[8]; |
148 |
> |
Float_t fPullY[8]; |
149 |
> |
Float_t fTrackDist[8]; |
150 |
> |
Float_t fTrackDistErr[8]; |
151 |
> |
Int_t fNSegments[8]; |
152 |
|
ClassDef(Muon, 1) // Muon class |
153 |
|
}; |
154 |
|
} |
192 |
|
return static_cast<const Track*>(fTrackerTrackRef.GetObject()); |
193 |
|
} |
194 |
|
#endif |
195 |
+ |
|
196 |
+ |
|
197 |
+ |
|
198 |
+ |
|