Changes in / [db7f5e4:1f34dac] in git
- Files:
-
- 7 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
rdb7f5e4 r1f34dac 316 316 modules/EnergySmearing.h \ 317 317 modules/MomentumSmearing.h \ 318 modules/TrackSmearing.h \ 318 319 modules/ImpactParameterSmearing.h \ 319 320 modules/TimeSmearing.h \ … … 338 339 modules/StatusPidFilter.h \ 339 340 modules/PdgCodeFilter.h \ 341 modules/BeamSpotFilter.h \ 340 342 modules/Cloner.h \ 341 343 modules/Weighter.h \ … … 546 548 classes/DelphesFactory.h \ 547 549 classes/DelphesFormula.h 550 tmp/modules/BeamSpotFilter.$(ObjSuf): \ 551 modules/BeamSpotFilter.$(SrcSuf) \ 552 modules/BeamSpotFilter.h \ 553 classes/DelphesClasses.h \ 554 classes/DelphesFactory.h \ 555 classes/DelphesFormula.h \ 556 external/ExRootAnalysis/ExRootResult.h \ 557 external/ExRootAnalysis/ExRootFilter.h \ 558 external/ExRootAnalysis/ExRootClassifier.h 548 559 tmp/modules/Calorimeter.$(ObjSuf): \ 549 560 modules/Calorimeter.$(SrcSuf) \ … … 830 841 modules/TrackPileUpSubtractor.$(SrcSuf) \ 831 842 modules/TrackPileUpSubtractor.h \ 843 classes/DelphesClasses.h \ 844 classes/DelphesFactory.h \ 845 classes/DelphesFormula.h \ 846 external/ExRootAnalysis/ExRootResult.h \ 847 external/ExRootAnalysis/ExRootFilter.h \ 848 external/ExRootAnalysis/ExRootClassifier.h 849 tmp/modules/TrackSmearing.$(ObjSuf): \ 850 modules/TrackSmearing.$(SrcSuf) \ 851 modules/TrackSmearing.h \ 832 852 classes/DelphesClasses.h \ 833 853 classes/DelphesFactory.h \ … … 915 935 tmp/modules/AngularSmearing.$(ObjSuf) \ 916 936 tmp/modules/BTagging.$(ObjSuf) \ 937 tmp/modules/BeamSpotFilter.$(ObjSuf) \ 917 938 tmp/modules/Calorimeter.$(ObjSuf) \ 918 939 tmp/modules/Cloner.$(ObjSuf) \ … … 946 967 tmp/modules/TrackCountingTauTagging.$(ObjSuf) \ 947 968 tmp/modules/TrackPileUpSubtractor.$(ObjSuf) \ 969 tmp/modules/TrackSmearing.$(ObjSuf) \ 948 970 tmp/modules/TreeWriter.$(ObjSuf) \ 949 971 tmp/modules/UniqueObjectFinder.$(ObjSuf) \ … … 1545 1567 tmp/external/tcl/tclVar.$(ObjSuf) 1546 1568 1569 modules/TrackSmearing.h: \ 1570 classes/DelphesModule.h 1571 @touch $@ 1572 1547 1573 external/fastjet/ClusterSequence.hh: \ 1548 1574 external/fastjet/PseudoJet.hh \ … … 1977 2003 1978 2004 modules/FastJetFinder.h: \ 2005 classes/DelphesModule.h 2006 @touch $@ 2007 2008 modules/BeamSpotFilter.h: \ 1979 2009 classes/DelphesModule.h 1980 2010 @touch $@ -
classes/DelphesClasses.cc
rdb7f5e4 r1f34dac 127 127 Momentum(0.0, 0.0, 0.0, 0.0), 128 128 Position(0.0, 0.0, 0.0, 0.0), 129 InitialPosition(0.0, 0.0, 0.0, 0.0), 129 130 Area(0.0, 0.0, 0.0, 0.0), 130 Dxy(0), SDxy(0), Xd(0), Yd(0), Zd(0), 131 L(0), 132 D0(0), ErrorD0(0), 133 DZ(0), ErrorDZ(0), 134 P(0), ErrorP(0), 135 PT(0), ErrorPT(0), 136 CtgTheta(0), ErrorCtgTheta(0), 137 Phi(0), ErrorPhi(0), 138 Xd(0), Yd(0), Zd(0), 131 139 TrackResolution(0), 132 140 NCharged(0), … … 262 270 object.Momentum = Momentum; 263 271 object.Position = Position; 272 object.InitialPosition = Position; 264 273 object.Area = Area; 265 object.Dxy = Dxy; 266 object.SDxy = SDxy; 274 object.L = L; 275 object.D0 = D0; 276 object.ErrorD0 = ErrorD0; 277 object.DZ = DZ; 278 object.ErrorDZ = ErrorDZ; 279 object.P = P; 280 object.ErrorP = ErrorP; 281 object.PT = PT; 282 object.ErrorPT = ErrorPT; 283 object.CtgTheta = CtgTheta ; 284 object.ErrorCtgTheta = ErrorCtgTheta; 285 object.Phi = Phi; 286 object.ErrorPhi = ErrorPhi; 267 287 object.Xd = Xd; 268 288 object.Yd = Yd; … … 363 383 Momentum.SetXYZT(0.0, 0.0, 0.0, 0.0); 364 384 Position.SetXYZT(0.0, 0.0, 0.0, 0.0); 385 InitialPosition.SetXYZT(0.0, 0.0, 0.0, 0.0); 365 386 Area.SetXYZT(0.0, 0.0, 0.0, 0.0); 366 Dxy = 0.0; 367 SDxy = 0.0; 387 L = 0.0; 388 D0 = 0.0; 389 ErrorD0 = 0.0; 390 DZ = 0.0; 391 ErrorDZ = 0.0; 392 P =0.0; 393 ErrorP =0.0; 394 PT = 0.0; 395 ErrorPT = 0.0; 396 CtgTheta = 0.0; 397 ErrorCtgTheta = 0.0; 398 Phi = 0.0; 399 ErrorPhi = 0.0; 368 400 Xd = 0.0; 369 401 Yd = 0.0; -
classes/DelphesClasses.h
rdb7f5e4 r1f34dac 147 147 Float_t Pz; // particle momentum vector (z component) | hepevt.phep[number][2] 148 148 149 Float_t PT; // particle transverse momentum 149 Float_t D0; 150 Float_t DZ; 151 Float_t P; 152 Float_t PT; 153 Float_t CtgTheta; 154 Float_t Phi; 150 155 Float_t Eta; // particle pseudorapidity 151 Float_t Phi; // particle azimuthal angle152 153 156 Float_t Rapidity; // particle rapidity 154 157 … … 175 178 Float_t Y; // vertex position (y component) 176 179 Float_t Z; // vertex position (z component) 177 178 ClassDef(Vertex, 1) 180 181 Double_t ErrorX; 182 Double_t ErrorY; 183 Double_t ErrorZ; 184 185 Int_t Index; 186 Int_t NDF; 187 Double_t Sigma; 188 Double_t SumPT2; 189 Double_t BTVSumPT2; 190 Double_t GenDeltaZ; 191 Double_t GenSumPT2; 192 193 ClassDef(Vertex, 2) 179 194 }; 180 195 … … 397 412 Int_t Charge; // track charge 398 413 399 Float_t PT; // track transverse momentum400 401 414 Float_t Eta; // track pseudorapidity 402 Float_t Phi; // track azimuthal angle 403 415 404 416 Float_t EtaOuter; // track pseudorapidity at the tracker edge 405 417 Float_t PhiOuter; // track azimuthal angle at the tracker edge … … 415 427 Float_t TOuter; // track position (z component) at the tracker edge 416 428 417 Float_t Dxy; // track signed transverse impact parameter 418 Float_t SDxy; // signed error on the track signed transverse impact parameter 429 Float_t L; // track path length 430 431 Float_t D0; // track signed transverse impact parameter 432 Float_t ErrorD0; // signed error on the track signed transverse impact parameter 433 434 Float_t DZ; // track transverse momentum 435 Float_t ErrorDZ; // track transverse momentum error 436 437 Float_t P; // track transverse momentum 438 Float_t ErrorP; // track transverse momentum error 439 440 Float_t PT; // track transverse momentum 441 Float_t ErrorPT; // track transverse momentum error 442 443 Float_t CtgTheta; // track transverse momentum 444 Float_t ErrorCtgTheta; // track transverse momentum error 445 446 Float_t Phi; // track azimuthal angle 447 Float_t ErrorPhi; // track azimuthal angle 448 419 449 Float_t Xd; // X coordinate of point of closest approach to vertex 420 450 Float_t Yd; // Y coordinate of point of closest approach to vertex … … 526 556 Float_t DeltaPhi; 527 557 528 TLorentzVector Momentum, Position, Area; 529 530 Float_t Dxy; 531 Float_t SDxy; 558 TLorentzVector Momentum, Position, InitialPosition, PositionError, Area; 559 560 Float_t L; // path length 561 Float_t D0; 562 Float_t ErrorD0; 563 Float_t DZ; 564 Float_t ErrorDZ; 565 Float_t P; 566 Float_t ErrorP; 567 Float_t PT; 568 Float_t ErrorPT; 569 Float_t CtgTheta; 570 Float_t ErrorCtgTheta; 571 Float_t Phi; 572 Float_t ErrorPhi; 573 532 574 Float_t Xd; 533 575 Float_t Yd; … … 562 604 Float_t SumPt; 563 605 606 // vertex variables 607 608 Int_t ClusterIndex; 609 Int_t ClusterNDF; 610 Double_t ClusterSigma; 611 Double_t SumPT2; 612 Double_t BTVSumPT2; 613 Double_t GenDeltaZ; 614 Double_t GenSumPT2; 615 564 616 // N-subjettiness variables 565 617 -
modules/ImpactParameterSmearing.cc
rdb7f5e4 r1f34dac 96 96 { 97 97 Candidate *candidate, *particle, *mother; 98 Double_t xd, yd, zd, d xy, sx, sy, sz, ddxy;98 Double_t xd, yd, zd, d0, sx, sy, sz, dd0; 99 99 Double_t pt, eta, px, py, phi, e; 100 100 … … 103 103 { 104 104 105 // take momentum before smearing (otherwise apply double smearing on d xy)105 // take momentum before smearing (otherwise apply double smearing on d0) 106 106 particle = static_cast<Candidate*>(candidate->GetCandidates()->At(0)); 107 107 … … 131 131 132 132 // calculate impact parameter (after-smearing) 133 d xy= (xd*py - yd*px)/pt;133 d0 = (xd*py - yd*px)/pt; 134 134 135 dd xy= gRandom->Gaus(0.0, fFormula->Eval(pt, eta, phi, e));135 dd0 = gRandom->Gaus(0.0, fFormula->Eval(pt, eta, phi, e)); 136 136 137 137 // fill smeared values in candidate … … 143 143 candidate->Zd = zd; 144 144 145 candidate->D xy = dxy;146 candidate-> SDxy = ddxy;145 candidate->D0 = d0; 146 candidate->ErrorD0 = dd0; 147 147 148 148 candidate->AddCandidate(mother); -
modules/ModulesLinkDef.h
rdb7f5e4 r1f34dac 35 35 #include "modules/EnergySmearing.h" 36 36 #include "modules/MomentumSmearing.h" 37 #include "modules/TrackSmearing.h" 37 38 #include "modules/ImpactParameterSmearing.h" 38 39 #include "modules/TimeSmearing.h" … … 57 58 #include "modules/StatusPidFilter.h" 58 59 #include "modules/PdgCodeFilter.h" 60 #include "modules/BeamSpotFilter.h" 59 61 #include "modules/Cloner.h" 60 62 #include "modules/Weighter.h" … … 62 64 #include "modules/JetFlavorAssociation.h" 63 65 #include "modules/JetFakeParticle.h" 66 #include "modules/VertexFinder.h" 67 #include "modules/VertexSorter.h" 64 68 #include "modules/ExampleModule.h" 65 69 … … 79 83 #pragma link C++ class EnergySmearing+; 80 84 #pragma link C++ class MomentumSmearing+; 85 #pragma link C++ class TrackSmearing+; 81 86 #pragma link C++ class ImpactParameterSmearing+; 82 87 #pragma link C++ class TimeSmearing+; … … 101 106 #pragma link C++ class StatusPidFilter+; 102 107 #pragma link C++ class PdgCodeFilter+; 108 #pragma link C++ class BeamSpotFilter+; 103 109 #pragma link C++ class Cloner+; 104 110 #pragma link C++ class Weighter+; … … 106 112 #pragma link C++ class JetFlavorAssociation+; 107 113 #pragma link C++ class JetFakeParticle+; 114 #pragma link C++ class VertexFinder+; 115 #pragma link C++ class VertexSorter+; 108 116 #pragma link C++ class ExampleModule+; 109 117 -
modules/ParticlePropagator.cc
rdb7f5e4 r1f34dac 67 67 } 68 68 69 69 70 //------------------------------------------------------------------------------ 70 71 … … 91 92 fItInputArray = fInputArray->MakeIterator(); 92 93 94 // import beamspot 95 try 96 { 97 fBeamSpotInputArray = ImportArray(GetString("BeamSpotInputArray", "BeamSpotFilter/beamSpotParticle")); 98 } 99 catch(runtime_error &e) 100 { 101 fBeamSpotInputArray = 0; 102 } 93 103 // create output arrays 94 104 … … 111 121 { 112 122 Candidate *candidate, *mother; 113 TLorentzVector candidatePosition, candidateMomentum ;123 TLorentzVector candidatePosition, candidateMomentum, beamSpotPosition; 114 124 Double_t px, py, pz, pt, pt2, e, q; 115 125 Double_t x, y, z, t, r, phi; … … 120 130 Double_t tmp, discr, discr2; 121 131 Double_t delta, gammam, omega, asinrho; 122 Double_t rcu, rc2, dxy, xd, yd, zd; 123 132 Double_t rcu, rc2, xd, yd, zd; 133 Double_t l, d0, dz, p, ctgTheta, phip, etap, alpha; 134 Double_t bsx, bsy, bsz; 135 124 136 const Double_t c_light = 2.99792458E8; 125 137 138 if (!fBeamSpotInputArray || fBeamSpotInputArray->GetSize () == 0) 139 beamSpotPosition.SetXYZT(0.0, 0.0, 0.0, 0.0); 140 else 141 { 142 Candidate &beamSpotCandidate = *((Candidate *) fBeamSpotInputArray->At(0)); 143 beamSpotPosition = beamSpotCandidate.Position; 144 } 145 126 146 fItInputArray->Reset(); 127 147 while((candidate = static_cast<Candidate*>(fItInputArray->Next()))) … … 132 152 y = candidatePosition.Y()*1.0E-3; 133 153 z = candidatePosition.Z()*1.0E-3; 154 155 bsx = beamSpotPosition.X()*1.0E-3; 156 bsy = beamSpotPosition.Y()*1.0E-3; 157 bsz = beamSpotPosition.Z()*1.0E-3; 158 134 159 q = candidate->Charge; 135 160 … … 181 206 y_t = y + py*t; 182 207 z_t = z + pz*t; 208 209 l = TMath::Sqrt( (x_t - x)*(x_t - x) + (y_t - y)*(y_t - y) + (z_t - z)*(z_t - z)); 183 210 184 211 mother = candidate; … … 186 213 187 214 candidate->Position.SetXYZT(x_t*1.0E3, y_t*1.0E3, z_t*1.0E3, candidatePosition.T() + t*e*1.0E3); 188 215 candidate->L = l*1.0E3; 216 189 217 candidate->Momentum = candidateMomentum; 190 218 candidate->AddCandidate(mother); … … 238 266 yd = (rc2 > 0.0) ? yd / rc2 : -999; 239 267 zd = z + (TMath::Sqrt(xd*xd + yd*yd) - TMath::Sqrt(x*x + y*y))*pz/pt; 240 241 // calculate impact paramater 242 dxy = (xd*py - yd*px)/pt; 243 268 269 // use perigee momentum rather than original particle 270 // momentum, since the orignal particle momentum isn't known 271 272 px = TMath::Sign(1.0,r) * pt * (-y_c / r_c); 273 py = TMath::Sign(1.0,r) * pt * (x_c / r_c); 274 etap = candidateMomentum.Eta(); 275 phip = TMath::ATan2(py, px); 276 277 candidateMomentum.SetPtEtaPhiE(pt, etap, phip, candidateMomentum.E()); 278 279 // calculate additional track parameters (correct for beamspot position) 280 281 d0 = ( (x - bsx) * py - (y - bsy) * px) / pt; 282 dz = z - ((x - bsx) * px + (py - bsy) * py) / pt * (pz / pt); 283 p = candidateMomentum.P(); 284 ctgTheta = 1.0 / TMath::Tan (candidateMomentum.Theta ()); 285 244 286 // 3. time evaluation t = TMath::Min(t_r, t_z) 245 287 // t_r : time to exit from the sides … … 287 329 r_t = TMath::Hypot(x_t, y_t); 288 330 331 332 // compute path length for an helix 333 334 alpha = pz*1.0E9 / c_light / gammam; 335 l = t * TMath::Sqrt(alpha*alpha + r*r*omega*omega); 336 289 337 if(r_t > 0.0) 290 338 { 339 340 // store these variables before cloning 341 342 candidate->D0 = d0*1.0E3; 343 candidate->DZ = dz*1.0E3; 344 candidate->P = p; 345 candidate->PT = pt; 346 candidate->CtgTheta = ctgTheta; 347 candidate->Phi = phip; 348 291 349 mother = candidate; 292 350 candidate = static_cast<Candidate*>(candidate->Clone()); … … 295 353 296 354 candidate->Momentum = candidateMomentum; 297 candidate->Dxy = dxy*1.0E3; 298 candidate->Xd = xd*1.0E3; 355 356 candidate->L = l*1.0E3; 357 358 candidate->Xd = xd*1.0E3; 299 359 candidate->Yd = yd*1.0E3; 300 360 candidate->Zd = zd*1.0E3; -
modules/ParticlePropagator.h
rdb7f5e4 r1f34dac 35 35 class TClonesArray; 36 36 class TIterator; 37 class TLorentzVector; 37 38 38 39 class ParticlePropagator: public DelphesModule … … 55 56 56 57 const TObjArray *fInputArray; //! 58 const TObjArray *fBeamSpotInputArray; //! 57 59 58 60 TObjArray *fOutputArray; //! -
modules/PileUpMerger.cc
rdb7f5e4 r1f34dac 170 170 numberOfEvents = gRandom->Integer(2*fMeanPileUp + 1); 171 171 break; 172 case 2: 173 numberOfEvents = fMeanPileUp; 174 break; 172 175 default: 173 176 numberOfEvents = gRandom->Poisson(fMeanPileUp); -
modules/TrackCountingBTagging.cc
rdb7f5e4 r1f34dac 96 96 97 97 Double_t jpx, jpy; 98 Double_t dr, tp x, tpy, tpt;99 Double_t xd, yd, d xy, ddxy, ip, sip;98 Double_t dr, tpt; 99 Double_t xd, yd, d0, dd0, ip, sip; 100 100 101 101 Int_t sign; … … 117 117 { 118 118 const TLorentzVector &trkMomentum = track->Momentum; 119 119 120 120 dr = jetMomentum.DeltaR(trkMomentum); 121 122 121 tpt = trkMomentum.Pt(); 123 tpx = trkMomentum.Px();124 tpy = trkMomentum.Py();125 126 122 xd = track->Xd; 127 123 yd = track->Yd; 128 d xy= TMath::Hypot(xd, yd);129 dd xy = track->SDxy;124 d0 = TMath::Hypot(xd, yd); 125 dd0 = track->ErrorD0; 130 126 131 127 if(tpt < fPtMin) continue; 132 128 if(dr > fDeltaR) continue; 133 if(d xy> fIPmax) continue;129 if(d0 > fIPmax) continue; 134 130 135 131 sign = (jpx*xd + jpy*yd > 0.0) ? 1 : -1; 136 132 137 ip = sign*d xy;138 sip = ip / TMath::Abs(dd xy);133 ip = sign*d0; 134 sip = ip / TMath::Abs(dd0); 139 135 140 136 if(sip > fSigMin) count++; -
modules/TreeWriter.cc
rdb7f5e4 r1f34dac 215 215 entry->Pz = momentum.Pz(); 216 216 217 entry->D0 = candidate->D0; 218 entry->DZ = candidate->DZ; 219 entry->P = candidate->P; 220 entry->PT = candidate->PT; 221 entry->CtgTheta = candidate->CtgTheta; 222 entry->Phi = candidate->Phi; 223 217 224 entry->Eta = eta; 218 225 entry->Phi = momentum.Phi(); … … 291 298 entry->ZOuter = position.Z(); 292 299 entry->TOuter = position.T()*1.0E-3/c_light; 293 294 entry->Dxy = candidate->Dxy; 295 entry->SDxy = candidate->SDxy ; 300 301 entry->L = candidate->L; 302 303 entry->D0 = candidate->D0; 304 entry->ErrorD0 = candidate->ErrorD0; 305 entry->DZ = candidate->DZ; 306 entry->ErrorDZ = candidate->ErrorDZ; 307 entry->P = candidate->P; 308 entry->ErrorP = candidate->ErrorP; 309 entry->PT = candidate->PT; 310 entry->ErrorPT = candidate->ErrorPT; 311 entry->CtgTheta = candidate->CtgTheta; 312 entry->ErrorCtgTheta = candidate->ErrorCtgTheta; 313 entry->Phi = candidate->Phi; 314 entry->ErrorPhi = candidate->ErrorPhi; 315 296 316 entry->Xd = candidate->Xd; 297 317 entry->Yd = candidate->Yd; … … 307 327 308 328 entry->Eta = eta; 309 entry->Phi = momentum.Phi(); 310 entry->PT = pt; 311 329 312 330 particle = static_cast<Candidate*>(candidate->GetCandidates()->At(0)); 313 331 const TLorentzVector &initialPosition = particle->Position;
Note:
See TracChangeset
for help on using the changeset viewer.