51 |
|
} |
52 |
|
|
53 |
|
mithep::Met fCorrectedMet(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY); |
54 |
< |
|
54 |
> |
mithep::Met fCorrectedTrackMet(trackNumeratorX, trackNumeratorY); |
55 |
|
} |
56 |
|
|
57 |
– |
|
57 |
|
MetTools::MetTools(const ElectronCol *fElectrons, const PFCandidateCol *fPFCandidates, const Vertex *fVertex, |
58 |
|
float deltaZCut, float ptCut, float etaCut) { |
59 |
|
|
73 |
|
if (fPFCandidates->At(i)->TrackerTrk()){ |
74 |
|
bool isElectronTrack = false; |
75 |
|
for (UInt_t m = 0; m < fElectrons->GetEntries(); ++m) { |
76 |
< |
if (fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk() or |
77 |
< |
fElectrons->At(m)->GsfTrk() == fPFCandidates->At(i)->GsfTrk() ) { |
76 |
> |
if ((fElectrons->At(m)->TrackerTrk() && fPFCandidates->At(i)->TrackerTrk() && fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) or |
77 |
> |
(fElectrons->At(m)->GsfTrk() && fPFCandidates->At(i)->GsfTrk() && fElectrons->At(m)->GsfTrk() == fPFCandidates->At(i)->GsfTrk())) { |
78 |
|
isElectronTrack = true; |
79 |
|
break; |
80 |
|
} |
96 |
|
} |
97 |
|
} |
98 |
|
mithep::Met fCorrectedMet(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY); |
99 |
< |
|
99 |
> |
mithep::Met fCorrectedTrackMet(trackNumeratorX, trackNumeratorY); |
100 |
|
} |
101 |
|
|
102 |
+ |
MetTools::MetTools(const MuonCol *fMuons, const ElectronCol *fElectrons, const PFCandidateCol *fPFCandidates, |
103 |
+ |
const Vertex *fVertex, float deltaZCut, float ptCut, float etaCut) { |
104 |
+ |
|
105 |
+ |
float trackNumeratorX =0, trackNumeratorY =0; |
106 |
+ |
float neutralNumeratorX=0, neutralNumeratorY=0; |
107 |
+ |
|
108 |
+ |
// muons Pt |
109 |
+ |
for (UInt_t m = 0; m < fMuons->GetEntries(); ++m) { |
110 |
+ |
trackNumeratorX -= fMuons->At(m)->Px(); |
111 |
+ |
trackNumeratorY -= fMuons->At(m)->Py(); |
112 |
+ |
} |
113 |
+ |
|
114 |
+ |
// electrons Pt |
115 |
+ |
for (UInt_t m = 0; m < fElectrons->GetEntries(); ++m) { |
116 |
+ |
trackNumeratorX -= fElectrons->At(m)->Px(); |
117 |
+ |
trackNumeratorY -= fElectrons->At(m)->Py(); |
118 |
+ |
} |
119 |
+ |
|
120 |
+ |
// PF candidates pT |
121 |
+ |
for (UInt_t i=0; i<fPFCandidates->GetEntries(); ++i) { |
122 |
+ |
|
123 |
+ |
// charged |
124 |
+ |
if (fPFCandidates->At(i)->TrackerTrk()){ |
125 |
+ |
bool isMuonTrack = false; |
126 |
+ |
for (UInt_t m = 0; m < fMuons->GetEntries(); ++m) { |
127 |
+ |
if (fMuons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) { |
128 |
+ |
isMuonTrack = true; |
129 |
+ |
break; |
130 |
+ |
} |
131 |
+ |
} |
132 |
+ |
if (isMuonTrack) continue; |
133 |
+ |
|
134 |
+ |
bool isElectronTrack = false; |
135 |
+ |
for (UInt_t m = 0; m < fElectrons->GetEntries(); ++m) { |
136 |
+ |
if ((fElectrons->At(m)->TrackerTrk() && fPFCandidates->At(i)->TrackerTrk() && fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) or |
137 |
+ |
(fElectrons->At(m)->GsfTrk() && fPFCandidates->At(i)->GsfTrk() && fElectrons->At(m)->GsfTrk() == fPFCandidates->At(i)->GsfTrk())) { |
138 |
+ |
isElectronTrack = true; |
139 |
+ |
break; |
140 |
+ |
} |
141 |
+ |
} |
142 |
+ |
if (isElectronTrack) continue; |
143 |
+ |
|
144 |
+ |
if (fabs(fPFCandidates->At(i)->TrackerTrk()->DzCorrected(*fVertex)) < deltaZCut) { |
145 |
+ |
trackNumeratorX -= fPFCandidates->At(i)->Px(); |
146 |
+ |
trackNumeratorY -= fPFCandidates->At(i)->Py(); |
147 |
+ |
} |
148 |
+ |
} |
149 |
|
|
150 |
+ |
// neutral |
151 |
+ |
if (fPFCandidates->At(i)->PFType()== PFCandidate::eNeutralHadron || fPFCandidates->At(i)->PFType()== PFCandidate::eGamma) { |
152 |
+ |
if (fPFCandidates->At(i)->Pt() > ptCut and fabs(fPFCandidates->At(i)->Eta()) < etaCut ) { |
153 |
+ |
neutralNumeratorX -= fPFCandidates->At(i)->Px(); |
154 |
+ |
neutralNumeratorY -= fPFCandidates->At(i)->Py(); |
155 |
+ |
} |
156 |
+ |
} |
157 |
+ |
} |
158 |
+ |
mithep::Met fCorrectedMet(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY); |
159 |
+ |
mithep::Met fCorrectedTrackMet(trackNumeratorX, trackNumeratorY); |
160 |
+ |
} |
161 |
|
|
162 |
|
Met MetTools::GetMimumMet(const Met *UncorrectedMet) { |
163 |
|
|
164 |
|
return (fCorrectedMet.Pt() < UncorrectedMet->Pt()) ? fCorrectedMet : *UncorrectedMet; |
165 |
|
} |
166 |
|
|
167 |
+ |
Met MetTools::GetMimumTrackMet(const Met *UncorrectedMet) { |
168 |
+ |
|
169 |
+ |
return (fCorrectedTrackMet.Pt() < UncorrectedMet->Pt()) ? fCorrectedTrackMet : *UncorrectedMet; |
170 |
+ |
} |
171 |
|
|