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.17 by pharris, Wed Apr 4 07:57:01 2012 UTC vs.
Revision 1.29 by pharris, Mon May 14 09:42:27 2012 UTC

# Line 340 | Line 340 | Double_t JetTools::Beta(const TrackCol *
340   Double_t JetTools::Beta(const PFJet *jet, const Vertex *vertex, Double_t  delta_z){  
341    double Pt_jets= 0. ;
342    double Pt_jetsTot = 0. ;
343 <
343 >  
344    for(UInt_t i=0;i<jet->NPFCands();i++){
345 <    if(jet->PFCand(i)->BestTrk()){
346 <      Pt_jetsTot += jet->PFCand(i)->BestTrk()->Pt();
347 <      double pDz = TMath::Abs(jet->PFCand(i)->BestTrk()->DzCorrected(*vertex));
345 >    if(jet->PFCand(i)->TrackerTrk()){
346 >      Pt_jetsTot += jet->PFCand(i)->TrackerTrk()->Pt();
347 >      double pDz = TMath::Abs(jet->PFCand(i)->TrackerTrk()->DzCorrected(*vertex));
348        if(pDz < delta_z){
349 <        Pt_jets += jet->PFCand(i)->BestTrk()->Pt();
349 >        Pt_jets += jet->PFCand(i)->TrackerTrk()->Pt();
350        }
351      }
352    }
353  
354 <  Double_t beta = 1.0;
354 >  Double_t beta = 0.;
355    if (Pt_jetsTot > 0)
356      beta = Pt_jets/Pt_jetsTot;
357  
# Line 491 | Line 491 | Double_t JetTools::impactParameter(const
491    double lDZCorr = -1000;
492    for(UInt_t i0 = 0; i0 < iJet->NPFCands(); i0++) {
493      const PFCandidate *pCand = iJet->PFCand(i0);
494 <    if(pCand->BestTrk() == 0) continue;
495 <    if(pCand->Pt() < 1.) continue;
496 <    if(iDZ)  lDZCorr = pCand->BestTrk()->DzCorrected(*iVertex);
497 <    if(!iDZ) lDZCorr = pCand->BestTrk()->D0Corrected(*iVertex);
494 >    if(pCand->TrackerTrk() == 0) continue;
495 >    //if(pCand->Pt() < 1.) continue; => previous iterations
496 >    if(iDZ)  lDZCorr = fabs(pCand->TrackerTrk()->DzCorrected(*iVertex));
497 >    if(!iDZ) lDZCorr = fabs(pCand->TrackerTrk()->D0Corrected(*iVertex));
498      break;
499    }
500    return lDZCorr;
# Line 509 | Line 509 | Double_t JetTools::dRMean(const PFJet *i
509    }
510    return lDRMean;
511   }
512 + Double_t JetTools::dR2Mean(const PFJet *iJet,int iPFType) {
513 +  double lDR2Mean = 0;
514 +  double lSumPt2 = 0;
515 +  for(UInt_t i0 = 0; i0 < iJet->NPFCands(); i0++) {
516 +    const PFCandidate *pCand = iJet->PFCand(i0);
517 +    if(iPFType != -1 && pCand->PFType() != iPFType) continue;
518 +    lSumPt2   += pCand->Pt()*pCand->Pt();
519 +    double pDR = MathUtils::DeltaR(iJet->Mom(),pCand->Mom());
520 +    lDR2Mean    += pDR*pDR*(pCand->Pt()*pCand->Pt());
521 +  }
522 +  lDR2Mean/=lSumPt2;
523 +  return lDR2Mean;
524 + }
525 + Double_t JetTools::frac(const PFJet *iJet,Double_t iDRMax,Double_t iDRMin,Int_t iPFType) {
526 +  double lFrac = 0;
527 +  for(UInt_t i0 = 0; i0 < iJet->NPFCands(); i0++) {
528 +    const PFCandidate *pCand = iJet->PFCand(i0);
529 +    if(iPFType != -1 && pCand->PFType() != iPFType) continue;
530 +    Double_t pDR = MathUtils::DeltaR(iJet->Mom(),pCand->Mom());
531 +    if(pDR > iDRMax) continue;
532 +    if(pDR < iDRMax-0.1) continue;
533 +    lFrac += pCand->Pt()/iJet->RawMom().Pt();
534 +  }
535 +  return lFrac;
536 + }
537 + Double_t JetTools::betaStar(const PFJet *iJet,const Vertex *iVertex,const VertexCol* iVertices,Double_t iDZCut) {
538 +  Double_t lTotal = 0;  
539 +  Double_t lPileup = 0;
540 +  for(UInt_t i0 = 0; i0 < iJet->NPFCands(); i0++) {
541 +    const PFCandidate* pPF   = iJet->PFCand(i0);
542 +    const Track* pTrack      = pPF->TrackerTrk();
543 +    //if(pPF->GsfTrk()) pTrack = pPF->GsfTrk(); ==> not used in CMSSW
544 +    if(pTrack == 0) continue;
545 +    lTotal += pTrack->Pt();
546 +    double pDZPV  = fabs(pTrack->DzCorrected(*iVertex));
547 +    double pDZMin = pDZPV;
548 +    for(unsigned int i1 = 0; i1 < iVertices->GetEntries(); i1++) {
549 +      const Vertex *pV = iVertices->At(i1);
550 +      if(pV->Ndof() < 4 ||
551 +         (pV->Position() - iVertex->Position()).R() < 0.02 ) continue;
552 +      pDZMin = TMath::Min(pDZMin,fabs(pTrack->DzCorrected(*pV)));
553 +    }
554 +    if(pDZPV > 0.2 && pDZMin < 0.2) lPileup += pTrack->Pt();
555 +  }
556 +  if(lTotal == 0) lTotal = 1;
557 +  return lPileup/(lTotal);
558 + }
559   Bool_t  JetTools::passPFLooseId(const PFJet *iJet) {
560 <  if(iJet->E()                              == 0)       return false;
561 <  if(iJet->NeutralHadronEnergy()/iJet->E()  >  0.99)    return false;
562 <  if(iJet->NeutralEmEnergy()/iJet->E()      >  0.99)    return false;
563 <  if(iJet->NConstituents()                  <  2)       return false;
564 <  if(iJet->ChargedHadronEnergy()/iJet->E()  <= 0     && fabs(iJet->Eta()) < 2.4 ) return false;
565 <  if(iJet->ChargedEmEnergy()/iJet->E()      >  0.99  && fabs(iJet->Eta()) < 2.4 ) return false;
566 <  if(iJet->ChargedMultiplicity()            < 1      && fabs(iJet->Eta()) < 2.4 ) return false;
560 >  if(iJet->RawMom().E()                              == 0)       return false;
561 >  if(iJet->NeutralHadronEnergy()/iJet->RawMom().E()  >  0.99)    return false;
562 >  if(iJet->NeutralEmEnergy()/iJet->RawMom().E()      >  0.99)    return false;
563 >  if(iJet->NConstituents()                           <  2)       return false;
564 >  if(iJet->ChargedHadronEnergy()/iJet->RawMom().E()  <= 0     && fabs(iJet->Eta()) < 2.4 ) return false;
565 >  if(iJet->ChargedEmEnergy()/iJet->RawMom().E()      >  0.99  && fabs(iJet->Eta()) < 2.4 ) return false;
566 >  if(iJet->ChargedMultiplicity()                     < 1      && fabs(iJet->Eta()) < 2.4 ) return false;
567 >  if(fabs(iJet->Eta())                               > 4.99) return false;
568    return true;
569   }
570  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines