ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/src/MetTools.cc
(Generate patch)

Comparing UserCode/MitPhysics/Utils/src/MetTools.cc (file contents):
Revision 1.7 by ceballos, Fri May 13 08:27:16 2011 UTC vs.
Revision 1.10 by sixie, Thu Jul 7 20:22:19 2011 UTC

# Line 38 | Line 38 | MetTools::MetTools(const MuonCol *fMuons
38        if (fabs(fPFCandidates->At(i)->TrackerTrk()->DzCorrected(*fVertex)) < deltaZCut) {
39          trackNumeratorX -= fPFCandidates->At(i)->Px();
40          trackNumeratorY -= fPFCandidates->At(i)->Py();
41 +        fRecoil += fPFCandidates->At(i)->Mom();
42 +        fChargedRecoil += fPFCandidates->At(i)->Mom();
43        }
44      }
45  
# Line 46 | Line 48 | MetTools::MetTools(const MuonCol *fMuons
48        if (fPFCandidates->At(i)->Pt() > ptCut and fabs(fPFCandidates->At(i)->Eta()) < etaCut ) {
49          neutralNumeratorX -= fPFCandidates->At(i)->Px();
50          neutralNumeratorY -= fPFCandidates->At(i)->Py();
51 +        fRecoil += fPFCandidates->At(i)->Mom();
52        }
53      }
54    }
# Line 85 | Line 88 | MetTools::MetTools(const ElectronCol *fE
88            (fPFCandidates->At(i)->HasGsfTrk()     && fabs(fPFCandidates->At(i)->GsfTrk()->DzCorrected(*fVertex)    ) < deltaZCut)) {
89          trackNumeratorX -= fPFCandidates->At(i)->Px();
90          trackNumeratorY -= fPFCandidates->At(i)->Py();
91 +        fRecoil += fPFCandidates->At(i)->Mom();
92 +        fChargedRecoil += fPFCandidates->At(i)->Mom();
93        }
94      }
95  
# Line 93 | Line 98 | MetTools::MetTools(const ElectronCol *fE
98        if (fPFCandidates->At(i)->Pt() > ptCut and fabs(fPFCandidates->At(i)->Eta()) < etaCut ) {
99          neutralNumeratorX -= fPFCandidates->At(i)->Px();
100          neutralNumeratorY -= fPFCandidates->At(i)->Py();
101 +        fRecoil += fPFCandidates->At(i)->Mom();
102        }
103      }
104    }
# Line 152 | Line 158 | MetTools::MetTools(const MuonCol *fMuons
158        if (fabs(fPFCandidates->At(i)->TrackerTrk()->DzCorrected(*fVertex)) < deltaZCut) {
159          trackNumeratorX -= fPFCandidates->At(i)->Px();
160          trackNumeratorY -= fPFCandidates->At(i)->Py();
161 +        fRecoil += fPFCandidates->At(i)->Mom();
162 +        fChargedRecoil += fPFCandidates->At(i)->Mom();
163        }
164      }
165  
# Line 160 | Line 168 | MetTools::MetTools(const MuonCol *fMuons
168        if (fPFCandidates->At(i)->Pt() > ptCut and fabs(fPFCandidates->At(i)->Eta()) < etaCut ) {
169          neutralNumeratorX -= fPFCandidates->At(i)->Px();
170          neutralNumeratorY -= fPFCandidates->At(i)->Py();
171 +        fRecoil += fPFCandidates->At(i)->Mom();
172        }
173      }
174    }
# Line 207 | Line 216 | MetTools::MetTools(const ElectronCol *fE
216      if (fPFCandidates->At(i)->HasTrackerTrk() || fPFCandidates->At(i)->HasGsfTrk()){
217        bool isElectronTrack = false;
218        for (UInt_t m = 0; m < fElectrons->GetEntries(); ++m) {
219 <        if ( (fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) or
219 >        if ( (fElectrons->At(m)->HasTrackerTrk() and fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) or
220               (fElectrons->At(m)->HasGsfTrk() and fElectrons->At(m)->GsfTrk() == fPFCandidates->At(i)->GsfTrk()) ) {
221            isElectronTrack = true;
222            break;
# Line 219 | Line 228 | MetTools::MetTools(const ElectronCol *fE
228            (fPFCandidates->At(i)->HasGsfTrk()     && fabs(fPFCandidates->At(i)->GsfTrk()->DzCorrected(*fVertex)    ) < deltaZCut)) {
229          trackNumeratorX -= fPFCandidates->At(i)->Px();
230          trackNumeratorY -= fPFCandidates->At(i)->Py();
231 +        fRecoil += fPFCandidates->At(i)->Mom();
232 +        fChargedRecoil += fPFCandidates->At(i)->Mom();
233        }
234      }
235  
# Line 227 | Line 238 | MetTools::MetTools(const ElectronCol *fE
238        if (fPFCandidates->At(i)->Pt() > ptCut and fabs(fPFCandidates->At(i)->Eta()) < etaCut ) {
239          neutralNumeratorX -= fPFCandidates->At(i)->Px();
240          neutralNumeratorY -= fPFCandidates->At(i)->Py();
241 +        fRecoil += fPFCandidates->At(i)->Mom();
242        }
243      }
244    }
# Line 236 | Line 248 | MetTools::MetTools(const ElectronCol *fE
248   }
249  
250  
251 + void MetTools::AddToCorrectedTrackMet( const Particle *p, bool debug ) {
252 +  float MetX = fCorrectedTrackMet.Mex();
253 +  float MetY = fCorrectedTrackMet.Mey();
254 +
255 +  if (debug) std::cout << "AddToCorrectedTrackMet:\n";
256 +  if (debug) std::cout << "Before: " << MetX << " " << MetY << std::endl;
257 +
258 +  MetX -= p->Px();
259 +  MetY -= p->Py();
260 +
261 +  if (debug) std::cout << "Add : " << p->Px() << " " << p->Py() << std::endl;
262 +  if (debug) std::cout << "After : " << MetX << " " << MetY << std::endl;
263 +
264 +  fCorrectedTrackMet.SetMex(MetX);
265 +  fCorrectedTrackMet.SetMey(MetY);
266 +
267 +  return;
268 + }
269 +
270 + void MetTools::AddToCorrectedMet( const Particle *p) {
271 +  float MetX=fCorrectedMet.Mex();
272 +  float MetY=fCorrectedMet.Mey();
273 +  
274 +  MetX -= p->Px();
275 +  MetY -= p->Py();
276 +
277 +  fCorrectedMet.SetMex(MetX);
278 +  fCorrectedMet.SetMey(MetY);
279 +
280 +  return;
281 + }
282 +
283 + void MetTools::AddToRecoil( const Particle *p) {
284 +
285 +  if (p->Charge() != 0) {
286 +    fChargedRecoil += p->Mom();
287 +  }
288 +  fRecoil += p->Mom();
289 +
290 +  return;
291 + }
292 +
293 +
294 +
295 + void MetTools::RemoveParticleInIsoConeFromTrackMet( const Particle *p, const PFCandidateCol *fPFCandidates, const Vertex *fVertex, float deltaZCut , float deltaR, bool debug ) {
296 +  float MetX = fCorrectedTrackMet.Mex();
297 +  float MetY = fCorrectedTrackMet.Mey();
298 +  
299 +  if (debug) std::cout << "RemoveParticleInIsoConeFromTrackMet:\n";
300 +  if (debug) std::cout << "Before: " << MetX << " " << MetY << std::endl;
301 +
302 +  for (UInt_t i=0; i<fPFCandidates->GetEntries(); ++i) {
303 +    //charged
304 +    if (fPFCandidates->At(i)->HasTrackerTrk() || fPFCandidates->At(i)->HasGsfTrk()) {
305 +      //passes dZ cut
306 +      if ((fPFCandidates->At(i)->HasTrackerTrk() && fabs(fPFCandidates->At(i)->TrackerTrk()->DzCorrected(*fVertex)) < deltaZCut) ||
307 +          (fPFCandidates->At(i)->HasGsfTrk()     && fabs(fPFCandidates->At(i)->GsfTrk()->DzCorrected(*fVertex)    ) < deltaZCut)) {        
308 +        //inside cone
309 +        if (MathUtils::DeltaR(fPFCandidates->At(i)->Mom(), p->Mom()) < deltaR ) {
310 +          MetX += fPFCandidates->At(i)->Px();
311 +          MetY += fPFCandidates->At(i)->Py();
312 +          if (debug) std::cout << "Subtract : " << fPFCandidates->At(i)->Px() << " " << fPFCandidates->At(i)->Py() << " : " << std::endl;
313 +        }
314 +      }
315 +    }
316 +  }
317 +
318 +  if (debug) std::cout << "After : " << MetX << " " << MetY << std::endl;
319 +
320 +  fCorrectedTrackMet.SetMex(MetX);
321 +  fCorrectedTrackMet.SetMey(MetY);
322 +
323 +  return;
324 + }
325 +
326 +
327 + void MetTools::RemoveParticleInIsoConeFromCorrectedMet( const Particle *p, const PFCandidateCol *fPFCandidates, const Vertex *fVertex, float deltaZCut, float ptCut, float etaCut , float deltaR) {
328 +  float MetX = fCorrectedMet.Mex();
329 +  float MetY = fCorrectedMet.Mey();
330 +  
331 +  for (UInt_t i=0; i<fPFCandidates->GetEntries(); ++i) {
332 +
333 +    //inside cone
334 +    if (MathUtils::DeltaR(fPFCandidates->At(i)->Mom(), p->Mom()) < deltaR ) {
335 +
336 +      //charged
337 +      if (fPFCandidates->At(i)->HasTrackerTrk() || fPFCandidates->At(i)->HasGsfTrk()) {
338 +        //passes dZ cut
339 +        if ((fPFCandidates->At(i)->HasTrackerTrk() && fabs(fPFCandidates->At(i)->TrackerTrk()->DzCorrected(*fVertex)) < deltaZCut) ||
340 +            (fPFCandidates->At(i)->HasGsfTrk()     && fabs(fPFCandidates->At(i)->GsfTrk()->DzCorrected(*fVertex)    ) < deltaZCut)) {                  
341 +          MetX += p->Px();
342 +          MetY += p->Py();
343 +        }
344 +      }
345 +
346 +      //neutrals
347 +      if (fPFCandidates->At(i)->PFType()== PFCandidate::eNeutralHadron || fPFCandidates->At(i)->PFType()== PFCandidate::eGamma) {
348 +        if (fPFCandidates->At(i)->Pt() > ptCut and fabs(fPFCandidates->At(i)->Eta()) < etaCut ) {
349 +          MetX += fPFCandidates->At(i)->Px();
350 +          MetY += fPFCandidates->At(i)->Py();
351 +        }
352 +      }
353 +    }
354 +
355 +  }
356 +
357 +  fCorrectedMet.SetMex(MetX);
358 +  fCorrectedMet.SetMey(MetY);
359 +
360 +  return;
361 + }
362 +
363 +
364 + void MetTools::RemoveParticleInIsoConeFromRecoil( const Particle *p, const PFCandidateCol *fPFCandidates, const Vertex *fVertex, float deltaZCut, float ptCut, float etaCut , float deltaR) {
365 +  
366 +  for (UInt_t i=0; i<fPFCandidates->GetEntries(); ++i) {
367 +
368 +    //inside cone
369 +    if (MathUtils::DeltaR(fPFCandidates->At(i)->Mom(), p->Mom()) < deltaR ) {
370 +
371 +      //charged
372 +      if (fPFCandidates->At(i)->HasTrackerTrk() || fPFCandidates->At(i)->HasGsfTrk()) {
373 +        //passes dZ cut
374 +        if ((fPFCandidates->At(i)->HasTrackerTrk() && fabs(fPFCandidates->At(i)->TrackerTrk()->DzCorrected(*fVertex)) < deltaZCut) ||
375 +            (fPFCandidates->At(i)->HasGsfTrk()     && fabs(fPFCandidates->At(i)->GsfTrk()->DzCorrected(*fVertex)    ) < deltaZCut)) {                  
376 +          fChargedRecoil -= fPFCandidates->At(i)->Mom();
377 +          fRecoil -= fPFCandidates->At(i)->Mom();
378 +        }
379 +      }
380 +
381 +      //neutrals
382 +      if (fPFCandidates->At(i)->PFType()== PFCandidate::eNeutralHadron || fPFCandidates->At(i)->PFType()== PFCandidate::eGamma) {
383 +        if (fPFCandidates->At(i)->Pt() > ptCut and fabs(fPFCandidates->At(i)->Eta()) < etaCut ) {          
384 +          fRecoil -= fPFCandidates->At(i)->Mom();
385 +        }
386 +      }
387 +    }
388 +  }
389 +
390 +  return;
391 + }
392 +
393 +
394   MetTools::MetTools(const MuonCol *fMuons, const ElectronCol *fElectrons, const PFCandidateCol *fPFCandidates,
395                     const Vertex *fVertex, float deltaZCut, float ptCut, float etaCut) {
396  
# Line 270 | Line 425 | MetTools::MetTools(const MuonCol *fMuons
425        
426        bool isElectronTrack = false;
427        for (UInt_t m = 0; m < fElectrons->GetEntries(); ++m) {
428 <        if ( (fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) or
428 >        if ( (fElectrons->At(m)->HasTrackerTrk() and fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) or
429               (fElectrons->At(m)->HasGsfTrk() and fElectrons->At(m)->GsfTrk() == fPFCandidates->At(i)->GsfTrk()) ) {
430            isElectronTrack = true;
431            break;
# Line 282 | Line 437 | MetTools::MetTools(const MuonCol *fMuons
437            (fPFCandidates->At(i)->HasGsfTrk()     && fabs(fPFCandidates->At(i)->GsfTrk()->DzCorrected(*fVertex)    ) < deltaZCut)) {
438          trackNumeratorX -= fPFCandidates->At(i)->Px();
439          trackNumeratorY -= fPFCandidates->At(i)->Py();
440 +        fRecoil += fPFCandidates->At(i)->Mom();
441 +        fChargedRecoil += fPFCandidates->At(i)->Mom();
442        }
443      }
444  
# Line 290 | Line 447 | MetTools::MetTools(const MuonCol *fMuons
447        if (fPFCandidates->At(i)->Pt() > ptCut and fabs(fPFCandidates->At(i)->Eta()) < etaCut ) {
448          neutralNumeratorX -= fPFCandidates->At(i)->Px();
449          neutralNumeratorY -= fPFCandidates->At(i)->Py();
450 +        fRecoil += fPFCandidates->At(i)->Mom();
451        }
452      }
453    }
# Line 353 | Line 511 | MetTools::MetTools(const MuonCol *fMuons
511        
512        bool isElectronTrack = false;
513        for (UInt_t m = 0; m < fElectrons->GetEntries(); ++m) {
514 <        if ( (fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) or
514 >        if ( (fElectrons->At(m)->HasTrackerTrk() and fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) or
515               (fElectrons->At(m)->HasGsfTrk() and fElectrons->At(m)->GsfTrk() == fPFCandidates->At(i)->GsfTrk()) ) {
516            isElectronTrack = true;
517            break;
# Line 365 | Line 523 | MetTools::MetTools(const MuonCol *fMuons
523            (fPFCandidates->At(i)->HasGsfTrk()     && fabs(fPFCandidates->At(i)->GsfTrk()->DzCorrected(*fVertex)    ) < deltaZCut)) {
524          trackNumeratorX -= fPFCandidates->At(i)->Px();
525          trackNumeratorY -= fPFCandidates->At(i)->Py();
526 +        fRecoil += fPFCandidates->At(i)->Mom();
527 +        fChargedRecoil += fPFCandidates->At(i)->Mom();
528        }
529      }
530  
# Line 373 | Line 533 | MetTools::MetTools(const MuonCol *fMuons
533        if (fPFCandidates->At(i)->Pt() > ptCut and fabs(fPFCandidates->At(i)->Eta()) < etaCut ) {
534          neutralNumeratorX -= fPFCandidates->At(i)->Px();
535          neutralNumeratorY -= fPFCandidates->At(i)->Py();
536 +        fRecoil += fPFCandidates->At(i)->Mom();
537        }
538      }
539    }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines