Changes in / [bae4fe8:22138b0] in git
- Files:
-
- 2 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
modules/TrackCountingBTagging.cc
rbae4fe8 r22138b0 72 72 fNtracks = GetInt("Ntracks", 3); 73 73 74 fUse3D = GetBool("Use3D", false);75 76 74 // import input array(s) 77 75 … … 97 95 Candidate *jet, *track; 98 96 99 Double_t jpx, jpy , jpz;97 Double_t jpx, jpy; 100 98 Double_t dr, tpt; 101 Double_t xd, yd, zd, d0, dd0, dz, ddz, sip;99 Double_t xd, yd, d0, dd0, ip, sip; 102 100 103 101 Int_t sign; … … 112 110 jpx = jetMomentum.Px(); 113 111 jpy = jetMomentum.Py(); 114 jpz = jetMomentum.Pz();115 112 116 113 // loop over all input tracks 117 114 fItTrackInputArray->Reset(); 118 115 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()))) 121 117 { 122 118 const TLorentzVector &trkMomentum = track->Momentum; 119 120 dr = jetMomentum.DeltaR(trkMomentum); 123 121 tpt = trkMomentum.Pt(); 122 xd = track->Xd; 123 yd = track->Yd; 124 d0 = TMath::Hypot(xd, yd); 125 dd0 = track->ErrorD0; 126 124 127 if(tpt < fPtMin) continue; 125 126 d0 = TMath::Abs(track->D0); 128 if(dr > fDeltaR) continue; 127 129 if(d0 > fIPmax) continue; 128 130 129 dr = jetMomentum.DeltaR(trkMomentum); 130 if(dr > fDeltaR) continue; 131 sign = (jpx*xd + jpy*yd > 0.0) ? 1 : -1; 131 132 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); 148 135 149 136 if(sip > fSigMin) count++; -
modules/TrackCountingBTagging.h
rbae4fe8 r22138b0 54 54 Double_t fSigMin; 55 55 Int_t fNtracks; 56 Bool_t fUse3D;57 56 58 57 TIterator *fItTrackInputArray; //! -
modules/TrackSmearing.cc
rbae4fe8 r22138b0 61 61 void TrackSmearing::Init() 62 62 { 63 fBz = GetDouble("Bz", 0.0);64 65 63 // read resolution formula 66 64 … … 160 158 Double_t pt, eta, d0, d0Error, trueD0, dz, dzError, trueDZ, p, pError, trueP, ctgTheta, ctgThetaError, trueCtgTheta, phi, phiError, truePhi; 161 159 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;166 160 TProfile2D *d0ErrorHist = NULL, 167 161 *dzErrorHist = NULL, … … 355 349 y = candidate->InitialPosition.Y (); 356 350 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 359 352 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 390 354 if (fApplyToPileUp || !candidate->IsPU) 391 355 { -
modules/TrackSmearing.h
rbae4fe8 r22138b0 32 32 33 33 Double_t ptError (const Double_t, const Double_t, const Double_t, const Double_t); 34 35 Double_t fBz;36 34 37 35 DelphesFormula *fD0Formula; //!
Note:
See TracChangeset
for help on using the changeset viewer.