Fork me on GitHub

Changes in / [bae4fe8:22138b0] in git


Ignore:
Files:
2 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • modules/TrackCountingBTagging.cc

    rbae4fe8 r22138b0  
    7272  fNtracks = GetInt("Ntracks", 3);
    7373
    74   fUse3D = GetBool("Use3D", false);
    75 
    7674  // import input array(s)
    7775
     
    9795  Candidate *jet, *track;
    9896
    99   Double_t jpx, jpy, jpz;
     97  Double_t jpx, jpy;
    10098  Double_t dr, tpt;
    101   Double_t xd, yd, zd, d0, dd0, dz, ddz, sip;
     99  Double_t xd, yd, d0, dd0, ip, sip;
    102100
    103101  Int_t sign;
     
    112110    jpx = jetMomentum.Px();
    113111    jpy = jetMomentum.Py();
    114     jpz = jetMomentum.Pz();
    115112
    116113    // loop over all input tracks
    117114    fItTrackInputArray->Reset();
    118115    count = 0;
    119     // stop once we have enough tracks
    120     while((track = static_cast<Candidate*>(fItTrackInputArray->Next())) and count < fNtracks)
     116    while((track = static_cast<Candidate*>(fItTrackInputArray->Next())))
    121117    {
    122118      const TLorentzVector &trkMomentum = track->Momentum;
     119     
     120      dr = jetMomentum.DeltaR(trkMomentum);
    123121      tpt = trkMomentum.Pt();
     122      xd = track->Xd;
     123      yd = track->Yd;
     124      d0 = TMath::Hypot(xd, yd);
     125      dd0 = track->ErrorD0;
     126
    124127      if(tpt < fPtMin) continue;
    125      
    126       d0 = TMath::Abs(track->D0);
     128      if(dr > fDeltaR) continue;
    127129      if(d0 > fIPmax) continue;
    128130
    129       dr = jetMomentum.DeltaR(trkMomentum);
    130       if(dr > fDeltaR) continue;
     131      sign = (jpx*xd + jpy*yd > 0.0) ? 1 : -1;
    131132
    132       xd = track->Xd;
    133       yd = track->Yd;
    134       zd = track->Zd;
    135       dd0 = TMath::Abs(track->ErrorD0);
    136       dz = TMath::Abs(track->DZ);
    137       ddz = TMath::Abs(track->ErrorDZ);
    138 
    139       if(fUse3D){
    140         sign = (jpx*xd + jpy*yd + jpz*zd > 0.0) ? 1 : -1;
    141         //add transverse and longitudinal significances in quadrature
    142         sip = sign * TMath::Sqrt( TMath::Power(d0 / dd0, 2) + TMath::Power(dz / ddz, 2) );
    143       }
    144       else {
    145         sign = (jpx*xd + jpy*yd > 0.0) ? 1 : -1;
    146         sip = sign * d0 / TMath::Abs(dd0);
    147       }
     133      ip = sign*d0;
     134      sip = ip / TMath::Abs(dd0);
    148135
    149136      if(sip > fSigMin) count++;
  • modules/TrackCountingBTagging.h

    rbae4fe8 r22138b0  
    5454  Double_t fSigMin;
    5555  Int_t    fNtracks;
    56   Bool_t   fUse3D;
    5756
    5857  TIterator *fItTrackInputArray; //!
  • modules/TrackSmearing.cc

    rbae4fe8 r22138b0  
    6161void TrackSmearing::Init()
    6262{
    63   fBz = GetDouble("Bz", 0.0);
    64 
    6563  // read resolution formula
    6664
     
    160158  Double_t pt, eta, d0, d0Error, trueD0, dz, dzError, trueDZ, p, pError, trueP, ctgTheta, ctgThetaError, trueCtgTheta, phi, phiError, truePhi;
    161159  Double_t x, y, z, t, px, py, pz, theta;
    162   Double_t q, r;
    163   Double_t x_c, y_c, r_c, phi_0;
    164   Double_t rcu, rc2, xd, yd, zd;
    165   const Double_t c_light = 2.99792458E8;
    166160  TProfile2D *d0ErrorHist = NULL,
    167161             *dzErrorHist = NULL,
     
    355349    y = candidate->InitialPosition.Y ();
    356350    candidate->InitialPosition.SetZ (z + ((pz * (px * (x - beamSpotPosition.X ()) + py * (y - beamSpotPosition.Y ())) + pt * pt * (dz - z)) / (pt * pt)));
    357     z = candidate->InitialPosition.Z ();
    358 
     351 
    359352    candidate->InitialPosition.SetT(t);
    360 
    361     // update closest approach
    362     x *= 1.0E-3;
    363     y *= 1.0E-3;
    364     z *= 1.0E-3;
    365 
    366     q = candidate->Charge;
    367 
    368     r = pt / (q * fBz) * 1.0E9/c_light;        // in [m]
    369     phi_0 = TMath::ATan2(py, px); // [rad] in [-pi, pi]
    370 
    371     // 2. helix axis coordinates
    372     x_c = x + r*TMath::Sin(phi_0);
    373     y_c = y - r*TMath::Cos(phi_0);
    374     r_c = TMath::Hypot(x_c, y_c);
    375 
    376     rcu = TMath::Abs(r);
    377     rc2 = r_c*r_c;
    378 
    379     // calculate coordinates of closest approach to track circle in transverse plane xd, yd, zd
    380     xd = x_c*x_c*x_c - x_c*rcu*r_c + x_c*y_c*y_c;
    381     xd = (rc2 > 0.0) ? xd / rc2 : -999;
    382     yd = y_c*(-rcu*r_c + rc2);
    383     yd = (rc2 > 0.0) ? yd / rc2 : -999;
    384     zd = z + (TMath::Sqrt(xd*xd + yd*yd) - TMath::Sqrt(x*x + y*y))*pz/pt;
    385 
    386     candidate->Xd = xd*1.0E3;
    387     candidate->Yd = yd*1.0E3;
    388     candidate->Zd = zd*1.0E3;
    389 
     353   
    390354    if (fApplyToPileUp || !candidate->IsPU)
    391355    {
  • modules/TrackSmearing.h

    rbae4fe8 r22138b0  
    3232
    3333  Double_t ptError (const Double_t, const Double_t, const Double_t, const Double_t);
    34 
    35   Double_t fBz;
    3634
    3735  DelphesFormula *fD0Formula; //!
Note: See TracChangeset for help on using the changeset viewer.