35 |
|
fTracksMass(0), fIsoTrackPtSum(0), fIsoECalEtSum(0), |
36 |
|
fMaxHCalHitEt(0) {} |
37 |
|
|
38 |
< |
void AddIsoTrack(const Track *t) { fIsoTracks.Add(t); } |
39 |
< |
void AddNeutralBC(const BasicCluster *c) { fNeutralBCs.Add(c); } |
40 |
< |
void AddSignalTrack(const Track *t) { fSignalTracks.Add(t); } |
41 |
< |
Double_t IsoECalEtSum() const { return fIsoECalEtSum; } |
42 |
< |
const Track *IsoTrack(UInt_t i) const { return fIsoTracks.At(i); } |
43 |
< |
Double_t IsoTrackPtSum() const { return fIsoTrackPtSum; } |
44 |
< |
const Track *LeadTrack() const { return fLeadTrack.Obj(); } |
45 |
< |
Double_t LeadTrack3x3HCalEt() const { return fLeadTrack3x3HCalEt; } |
46 |
< |
Double_t LeadTrack3x3HCalDEta() const { return fLeadTrack3x3HCalDEta; } |
47 |
< |
Double_t LeadTrackSignedD0Sig() const { return fLeadTrackSignD0Sig; } |
48 |
< |
Double_t MaxHCalHitEt() const { return fMaxHCalHitEt; } |
49 |
< |
UInt_t NIsoTracks() const { return fIsoTracks.Entries(); } |
50 |
< |
const BasicCluster *NeutralBC(UInt_t i) const { return fNeutralBCs.At(i); } |
51 |
< |
UInt_t NNeutralBCs() const { return fNeutralBCs.Entries(); } |
52 |
< |
UInt_t NSignalTracks() const { return fSignalTracks.Entries(); } |
53 |
< |
EObjType ObjType() const { return kCaloTau; } |
54 |
< |
void SetCaloJet(const CaloJet *j) { fCaloJet = j; } |
55 |
< |
void SetIsoECalEtSum(Double_t x) { fIsoECalEtSum = x; } |
56 |
< |
void SetIsoTrackPtSum(Double_t x) { fIsoTrackPtSum = x; } |
57 |
< |
void SetLeadTrack(const Track *t) { fLeadTrack = t; } |
58 |
< |
void SetLeadTrack3x3HCalDEta(Double_t x) { fLeadTrack3x3HCalDEta = x; } |
59 |
< |
void SetLeadTrack3x3HCalEt(Double_t x) { fLeadTrack3x3HCalEt = x; } |
60 |
< |
void SetLeadTrackSignD0Sig(Double_t x) { fLeadTrackSignD0Sig = x; } |
61 |
< |
void SetMaxHCalHitEt(Double_t x) { fMaxHCalHitEt = x; } |
62 |
< |
void SetSignalTracksMass(Double_t x) { fSignalTracksMass = x; } |
63 |
< |
void SetTracksMass(Double_t x) { fTracksMass = x; } |
64 |
< |
const Track *SignalTrack(UInt_t i) const { return fSignalTracks.At(i); } |
65 |
< |
Double_t SignalTracksMass() const { return fSignalTracksMass; } |
66 |
< |
const CaloJet *SourceCaloJet() const { return fCaloJet.Obj(); } |
67 |
< |
const Jet *SourceJet() const { return SourceCaloJet(); } |
68 |
< |
Double_t TracksMass() const { return fTracksMass; } |
38 |
> |
void AddIsoTrack(const Track *t) { fIsoTracks.Add(t); } |
39 |
> |
void AddNeutralBC(const BasicCluster *c) { fNeutralBCs.Add(c); } |
40 |
> |
void AddSignalTrack(const Track *t) |
41 |
> |
{ ClearCharge(); fSignalTracks.Add(t); } |
42 |
> |
Double_t IsoECalEtSum() const { return fIsoECalEtSum; } |
43 |
> |
const Track *IsoTrack(UInt_t i) const { return fIsoTracks.At(i); } |
44 |
> |
Double_t IsoTrackPtSum() const { return fIsoTrackPtSum; } |
45 |
> |
const Track *LeadTrack() const { return fLeadTrack.Obj(); } |
46 |
> |
Double_t LeadTrack3x3HCalEt() const { return fLeadTrack3x3HCalEt; } |
47 |
> |
Double_t LeadTrack3x3HCalDEta() const { return fLeadTrack3x3HCalDEta; } |
48 |
> |
Double_t LeadTrackSignedD0Sig() const { return fLeadTrackSignD0Sig; } |
49 |
> |
Double_t MaxHCalHitEt() const { return fMaxHCalHitEt; } |
50 |
> |
UInt_t NIsoTracks() const { return fIsoTracks.Entries(); } |
51 |
> |
const BasicCluster *NeutralBC(UInt_t i) const { return fNeutralBCs.At(i); } |
52 |
> |
UInt_t NNeutralBCs() const { return fNeutralBCs.Entries(); } |
53 |
> |
UInt_t NSignalTracks() const { return fSignalTracks.Entries(); } |
54 |
> |
EObjType ObjType() const { return kCaloTau; } |
55 |
> |
void SetCaloJet(const CaloJet *j) { fCaloJet = j; } |
56 |
> |
void SetIsoECalEtSum(Double_t x) { fIsoECalEtSum = x; } |
57 |
> |
void SetIsoTrackPtSum(Double_t x) { fIsoTrackPtSum = x; } |
58 |
> |
void SetLeadTrack(const Track *t) { fLeadTrack = t; } |
59 |
> |
void SetLeadTrack3x3HCalDEta(Double_t x) { fLeadTrack3x3HCalDEta = x; } |
60 |
> |
void SetLeadTrack3x3HCalEt(Double_t x) { fLeadTrack3x3HCalEt = x; } |
61 |
> |
void SetLeadTrackSignD0Sig(Double_t x) { fLeadTrackSignD0Sig = x; } |
62 |
> |
void SetMaxHCalHitEt(Double_t x) { fMaxHCalHitEt = x; } |
63 |
> |
void SetSignalTracksMass(Double_t x) { fSignalTracksMass = x; } |
64 |
> |
void SetTracksMass(Double_t x) { fTracksMass = x; } |
65 |
> |
const Track *SignalTrack(UInt_t i) const { return fSignalTracks.At(i); } |
66 |
> |
Double_t SignalTracksMass() const { return fSignalTracksMass; } |
67 |
> |
const CaloJet *SourceCaloJet() const { return fCaloJet.Obj(); } |
68 |
> |
const Jet *SourceJet() const { return SourceCaloJet(); } |
69 |
> |
Double_t TracksMass() const { return fTracksMass; } |
70 |
> |
|
71 |
> |
// Some structural tools |
72 |
> |
void Mark(UInt_t i = 1) const; |
73 |
|
|
74 |
|
protected: |
75 |
+ |
Double_t GetCharge() const; |
76 |
|
|
77 |
< |
Double32_t fLeadTrackSignD0Sig; //[0,0,14]signed leading track D0 significance |
78 |
< |
Double32_t fLeadTrack3x3HCalEt; //[0,0,14]hcal 3x3 calo tower et around lead track |
79 |
< |
Double32_t fLeadTrack3x3HCalDEta; //[0,0,14]abs(delta eta) between lead track |
80 |
< |
// and hottest hcal rec hit in 3x3 region |
81 |
< |
Double32_t fSignalTracksMass; //[0,0,14]invariant mass of signal tracks |
82 |
< |
Double32_t fTracksMass; //[0,0,14]invariant mass of signal and iso tracks |
83 |
< |
Double32_t fIsoTrackPtSum; //[0,0,14]sum pt of tracks in isolation annulus |
84 |
< |
Double32_t fIsoECalEtSum; //[0,0,14]sum et of ecal rechits in iso annulus |
85 |
< |
Double32_t fMaxHCalHitEt; //[0,0,14]et of largest et hcal rechit |
86 |
< |
Ref<Track> fLeadTrack; //leading track in signal cone |
87 |
< |
Ref<CaloJet> fCaloJet; //original reconstructed calo jet |
88 |
< |
RefArray<Track> fSignalTracks; //tracks in signal cone |
89 |
< |
RefArray<Track> fIsoTracks; //tracks in isolation annulus |
90 |
< |
RefArray<BasicCluster> fNeutralBCs; //neutral Ecal basic clusters |
77 |
> |
Double32_t fLeadTrackSignD0Sig; //[0,0,14]signed leading track D0 significance |
78 |
> |
Double32_t fLeadTrack3x3HCalEt; //[0,0,14]hcal 3x3 calo tower et around lead trk |
79 |
> |
Double32_t fLeadTrack3x3HCalDEta; //[0,0,14]abs(delta eta) between lead track |
80 |
> |
// and hottest hcal rec hit in 3x3 region |
81 |
> |
Double32_t fSignalTracksMass; //[0,0,14]invariant mass of signal tracks |
82 |
> |
Double32_t fTracksMass; //[0,0,14]invariant mass of signal + iso tracks |
83 |
> |
Double32_t fIsoTrackPtSum; //[0,0,14]sum pt of tracks in isolation annulus |
84 |
> |
Double32_t fIsoECalEtSum; //[0,0,14]sum et of ecal rechits in iso annulus |
85 |
> |
Double32_t fMaxHCalHitEt; //[0,0,14]et of largest et hcal rechit |
86 |
> |
Ref<Track> fLeadTrack; //leading track in signal cone |
87 |
> |
Ref<CaloJet> fCaloJet; //original reconstructed calo jet |
88 |
> |
RefArray<Track> fSignalTracks; //tracks in signal cone |
89 |
> |
RefArray<Track> fIsoTracks; //tracks in isolation annulus |
90 |
> |
RefArray<BasicCluster> fNeutralBCs; //neutral Ecal basic clusters |
91 |
|
|
92 |
|
ClassDef(CaloTau, 1) // CaloTau class |
93 |
|
}; |
94 |
|
} |
95 |
+ |
|
96 |
+ |
//-------------------------------------------------------------------------------------------------- |
97 |
+ |
inline void mithep::CaloTau::Mark(UInt_t ib) const |
98 |
+ |
{ |
99 |
+ |
// mark myself |
100 |
+ |
mithep::DataObject::Mark(ib); |
101 |
+ |
// mark my dependencies if they are there |
102 |
+ |
if (fLeadTrack.IsValid()) |
103 |
+ |
fLeadTrack.Obj()->Mark(ib); |
104 |
+ |
if (fCaloJet.IsValid()) |
105 |
+ |
fCaloJet.Obj()->Mark(ib); |
106 |
+ |
// arrays |
107 |
+ |
fSignalTracks.Mark(ib); |
108 |
+ |
fIsoTracks .Mark(ib); |
109 |
+ |
fNeutralBCs .Mark(ib); |
110 |
+ |
} |
111 |
+ |
|
112 |
+ |
//-------------------------------------------------------------------------------------------------- |
113 |
+ |
inline Double_t mithep::CaloTau::GetCharge() const |
114 |
+ |
{ |
115 |
+ |
// Get charge from signal tracks. |
116 |
+ |
|
117 |
+ |
Double_t sumq = 0; |
118 |
+ |
for (UInt_t i=0; i<fSignalTracks.Entries(); ++i) { |
119 |
+ |
sumq += fSignalTracks.At(i)->Charge(); |
120 |
+ |
} |
121 |
+ |
return sumq; |
122 |
+ |
} |
123 |
|
#endif |