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

Comparing UserCode/MitPhysics/Utils/src/JetTools.cc (file contents):
Revision 1.6 by mzanetti, Tue Jan 18 14:30:20 2011 UTC vs.
Revision 1.12 by ceballos, Fri Mar 11 15:19:36 2011 UTC

# Line 288 | Line 288 | Double_t JetTools::MtHiggs(const Particl
288        - met->Px()*dilepton->Px() - met->Py()*dilepton->Py()
289        - leptons->At(0)->Px()*leptons->At(1)->Px() - leptons->At(0)->Py()*leptons->At(1)->Py());
290    }
291 +  else if(nsel == 7){ // Use of M mass and mnu == 0, no fancy stuff
292 +    enell   = TMath::Sqrt(dilepton->Pt()*dilepton->Pt() + dilepton->Mass()*dilepton->Mass());
293 +    enenn   = TMath::Sqrt(met->Pt()*met->Pt() + 0.0*0.0);
294 +    enex    = dilepton->Px() + met->Px();
295 +    eney    = dilepton->Py() + met->Py();
296 +    mtHiggs = (enell+enenn)*(enell+enenn) - enex*enex - eney*eney;
297 +  }
298  
299    if(nsel >= 0 && nsel <= 4){
300      mtHiggs = mll*mll + mnu*mnu + 2.0*(enell*enenn - enex*enex - eney*eney);
301    }
302 +
303    if(mtHiggs <= 0) mtHiggs = 0.0;
304    else             mtHiggs = TMath::Sqrt(mtHiggs);
305  
# Line 300 | Line 308 | Double_t JetTools::MtHiggs(const Particl
308    return mtHiggs;
309   }
310  
311 < void JetTools::Alpha(Double_t AlphaVar[2], const TrackCol *tracks, Jet *jet, const VertexCol *vertices, Double_t  delta_z, Double_t delta_cone){  
312 <  AlphaVar[0] = -1.0;
313 <  AlphaVar[1] = -1.0;
306 <  if(tracks->GetEntries() <= 0) return;
311 > Double_t JetTools::Beta(const TrackCol *tracks, Jet *jet, const Vertex *vertex, Double_t  delta_z, Double_t delta_cone){  
312 >
313 >  if(tracks->GetEntries() <= 0) return 1.0;
314  
315    double Pt_jets_X = 0. ;
316    double Pt_jets_Y = 0. ;
# Line 314 | Line 321 | void JetTools::Alpha(Double_t AlphaVar[2
321      if(MathUtils::DeltaR(tracks->At(i)->Mom(),jet->Mom()) < delta_cone){
322        Pt_jets_X_tot += tracks->At(i)->Px();
323        Pt_jets_Y_tot += tracks->At(i)->Py();  
324 <      double pDz = TMath::Abs(tracks->At(i)->DzCorrected(*vertices->At(0)));
324 >      double pDz = TMath::Abs(tracks->At(i)->DzCorrected(*vertex));
325        if(pDz < delta_z){
326          Pt_jets_X += tracks->At(i)->Px();
327          Pt_jets_Y += tracks->At(i)->Py();  
# Line 322 | Line 329 | void JetTools::Alpha(Double_t AlphaVar[2
329      }
330    }
331  
332 <  if(jet->Pt() > 0)
333 <    AlphaVar[0] = sqrt(Pt_jets_X*Pt_jets_X + Pt_jets_Y*Pt_jets_Y) / jet->Pt();
334 <  if(Pt_jets_X_tot > 0 || Pt_jets_Y_tot > 0)
335 <    AlphaVar[1] = sqrt(Pt_jets_X*Pt_jets_X + Pt_jets_Y*Pt_jets_Y) / sqrt(Pt_jets_X_tot*Pt_jets_X_tot + Pt_jets_Y_tot*Pt_jets_Y_tot);
332 >  if(sqrt(Pt_jets_X_tot*Pt_jets_X_tot + Pt_jets_Y_tot*Pt_jets_Y_tot) > 0)
333 >    return sqrt(Pt_jets_X*Pt_jets_X + Pt_jets_Y*Pt_jets_Y) / sqrt(Pt_jets_X_tot*Pt_jets_X_tot + Pt_jets_Y_tot*Pt_jets_Y_tot);
334 >
335 >  return 1.0;
336   }
337  
338 +
339 + Double_t JetTools::Beta(const PFJet *jet, const Vertex *vertex, Double_t  delta_z){  
340 +  double Pt_jets_X = 0. ;
341 +  double Pt_jets_Y = 0. ;
342 +  double Pt_jets_X_tot = 0. ;
343 +  double Pt_jets_Y_tot = 0. ;
344 +
345 +  for(UInt_t i=0;i<jet->NPFCands();i++){
346 +    if(jet->PFCand(i)->BestTrk()){
347 +      Pt_jets_X_tot += jet->PFCand(i)->BestTrk()->Px();
348 +      Pt_jets_Y_tot += jet->PFCand(i)->BestTrk()->Py();  
349 +      double pDz = TMath::Abs(jet->PFCand(i)->BestTrk()->DzCorrected(*vertex));
350 +      if(pDz < delta_z){
351 +        Pt_jets_X += jet->PFCand(i)->BestTrk()->Px();
352 +        Pt_jets_Y += jet->PFCand(i)->BestTrk()->Py();
353 +      }
354 +    }
355 +  }
356 +
357 +  if(sqrt(Pt_jets_X_tot*Pt_jets_X_tot + Pt_jets_Y_tot*Pt_jets_Y_tot) > 0)
358 +    return sqrt(Pt_jets_X*Pt_jets_X + Pt_jets_Y*Pt_jets_Y) / sqrt(Pt_jets_X_tot*Pt_jets_X_tot + Pt_jets_Y_tot*Pt_jets_Y_tot);
359 +
360 +  return 1.0;
361 + }
362 +
363 +
364 + Bool_t  JetTools::PassBetaVertexAssociationCut(const PFJet *jet, const Vertex *referenceVertex, const VertexCol *vertices, Double_t delta_z) {
365 +
366 +  Bool_t passBetaCut = kTRUE;
367 +  if(vertices->GetEntries() > 0) {
368 +    Double_t Beta = JetTools::Beta(jet, referenceVertex, 0.2);
369 +    Double_t Beta_other = 0.0;
370 +    for(UInt_t nv=0; nv<vertices->GetEntries(); nv++){
371 +      if (referenceVertex == vertices->At(nv)) continue;
372 +      Double_t BetaAux = JetTools::Beta(jet, vertices->At(nv), 0.2);
373 +      if(BetaAux > Beta_other) Beta_other = BetaAux;
374 +    }
375 +    if(Beta_other > Beta) passBetaCut = kFALSE;
376 +  }
377 +
378 +  return passBetaCut;
379 +
380 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines