Changeset 584e2e9 in git
- Timestamp:
- Dec 12, 2019, 3:08:26 PM (5 years ago)
- Branches:
- Timing
- Children:
- d4e5b6a
- Parents:
- 0976f6a (diff), 2b5ff2c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 4 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r0976f6a r584e2e9 428 428 modules/JetPileUpSubtractor.h \ 429 429 modules/TrackPileUpSubtractor.h \ 430 modules/TrackTimingPileUpSubtractor.h \ 430 431 modules/TaggingParticlesSkimmer.h \ 431 432 modules/PileUpJetID.h \ … … 444 445 modules/VertexFinder.h \ 445 446 modules/VertexFinderDA4D.h \ 447 modules/HighMassVertexRecover.h \ 446 448 modules/DecayFilter.h \ 447 449 modules/ExampleModule.h … … 782 784 external/Hector/H_BeamParticle.h \ 783 785 external/Hector/H_RecRPObject.h 786 tmp/modules/HighMassVertexRecover.$(ObjSuf): \ 787 modules/HighMassVertexRecover.$(SrcSuf) \ 788 modules/HighMassVertexRecover.h \ 789 classes/DelphesClasses.h \ 790 classes/DelphesFactory.h \ 791 classes/DelphesFormula.h \ 792 external/ExRootAnalysis/ExRootResult.h \ 793 external/ExRootAnalysis/ExRootFilter.h \ 794 external/ExRootAnalysis/ExRootClassifier.h 784 795 tmp/modules/IdentificationMap.$(ObjSuf): \ 785 796 modules/IdentificationMap.$(SrcSuf) \ … … 1016 1027 modules/TrackSmearing.$(SrcSuf) \ 1017 1028 modules/TrackSmearing.h \ 1029 classes/DelphesClasses.h \ 1030 classes/DelphesFactory.h \ 1031 classes/DelphesFormula.h \ 1032 external/ExRootAnalysis/ExRootClassifier.h \ 1033 external/ExRootAnalysis/ExRootFilter.h \ 1034 external/ExRootAnalysis/ExRootResult.h 1035 tmp/modules/TrackTimingPileUpSubtractor.$(ObjSuf): \ 1036 modules/TrackTimingPileUpSubtractor.$(SrcSuf) \ 1037 modules/TrackTimingPileUpSubtractor.h \ 1018 1038 classes/DelphesClasses.h \ 1019 1039 classes/DelphesFactory.h \ … … 1058 1078 classes/DelphesFormula.h \ 1059 1079 classes/DelphesPileUpReader.h \ 1060 external/ExRootAnalysis/ExRoot Classifier.h \1061 external/ExRootAnalysis/ExRootFilter.h \ 1062 external/ExRootAnalysis/ExRoot Result.h1080 external/ExRootAnalysis/ExRootResult.h \ 1081 external/ExRootAnalysis/ExRootFilter.h \ 1082 external/ExRootAnalysis/ExRootClassifier.h 1063 1083 tmp/modules/VertexSorter.$(ObjSuf): \ 1064 1084 modules/VertexSorter.$(SrcSuf) \ … … 1146 1166 tmp/modules/ExampleModule.$(ObjSuf) \ 1147 1167 tmp/modules/Hector.$(ObjSuf) \ 1168 tmp/modules/HighMassVertexRecover.$(ObjSuf) \ 1148 1169 tmp/modules/IdentificationMap.$(ObjSuf) \ 1149 1170 tmp/modules/ImpactParameterSmearing.$(ObjSuf) \ … … 1172 1193 tmp/modules/TrackPileUpSubtractor.$(ObjSuf) \ 1173 1194 tmp/modules/TrackSmearing.$(ObjSuf) \ 1195 tmp/modules/TrackTimingPileUpSubtractor.$(ObjSuf) \ 1174 1196 tmp/modules/TreeWriter.$(ObjSuf) \ 1175 1197 tmp/modules/UniqueObjectFinder.$(ObjSuf) \ … … 2093 2115 @touch $@ 2094 2116 2117 modules/TrackTimingPileUpSubtractor.h: \ 2118 classes/DelphesModule.h 2119 @touch $@ 2120 2095 2121 modules/Delphes.h: \ 2096 2122 classes/DelphesModule.h … … 2267 2293 external/fastjet/config.h: \ 2268 2294 external/fastjet/config_win.h 2295 @touch $@ 2296 2297 modules/HighMassVertexRecover.h: \ 2298 classes/DelphesModule.h \ 2299 classes/DelphesClasses.h 2269 2300 @touch $@ 2270 2301 -
cards/FCC/FCChh_PileUpVtx.tcl
r0976f6a r584e2e9 130 130 } 131 131 132 ################################# ####133 # Track propagation to calorimeters134 ################################# ####132 ################################# 133 # Propagate particles in cylinder 134 ################################# 135 135 136 136 module ParticlePropagator ParticlePropagator { -
modules/TimeSmearing.cc
r0976f6a r584e2e9 53 53 54 54 TimeSmearing::TimeSmearing() : 55 f ItInputArray(0)55 fFormula(0), fItInputArray(0) 56 56 { 57 fFormula = new DelphesFormula; 57 58 } 58 59 … … 61 62 TimeSmearing::~TimeSmearing() 62 63 { 64 if(fFormula) delete fFormula; 63 65 } 64 66 … … 69 71 // read resolution formula 70 72 71 fTimeResolution = GetDouble("TimeResolution", 1.0E-10); 73 fFormula->Compile(GetString("TimeResolution", "1.0")); 74 72 75 // import input array 73 76 fEtaMax = GetDouble("EtaMax", 6.); 74 77 fInputArray = ImportArray(GetString("InputArray", "MuonMomentumSmearing/muons")); 75 78 fItInputArray = fInputArray->MakeIterator(); … … 92 95 { 93 96 Candidate *candidate, *mother; 94 Double_t ti, tf_smeared, tf; 97 Double_t ti, tf_smeared, tf, timeResolution; 98 Double_t pt, eta, phi, e, d0, dz, ctgTheta; 99 100 95 101 const Double_t c_light = 2.99792458E8; 96 102 97 103 fItInputArray->Reset(); 98 while((candidate = static_cast<Candidate 104 while((candidate = static_cast<Candidate*>(fItInputArray->Next()))) 99 105 { 100 const TLorentzVector &candidateInitialPosition = candidate->InitialPosition; 101 const TLorentzVector &candidateFinalPosition = candidate->Position; 102 103 ti = candidateInitialPosition.T() * 1.0E-3 / c_light; 104 tf = candidateFinalPosition.T() * 1.0E-3 / c_light; 106 ti = candidate->InitialPosition.T()*1.0E-3/c_light; 107 tf = candidate->Position.T()*1.0E-3/c_light; 108 109 // dummy, only need to properly call TFormula 110 const TLorentzVector &candidatePosition = candidate->Position; 111 const TLorentzVector &candidateMomentum = candidate->Momentum; 112 eta = candidatePosition.Eta(); 113 phi = candidatePosition.Phi(); 114 pt = candidateMomentum.Pt(); 115 e = candidateMomentum.E(); 116 d0 = candidate->D0; 117 dz = candidate->DZ; 118 ctgTheta = candidate->CtgTheta; 105 119 106 120 // apply smearing formula 107 tf_smeared = gRandom->Gaus(tf, fTimeResolution); 108 ti = ti + tf_smeared - tf; 109 tf = tf_smeared; 121 122 timeResolution = fFormula->Eval(pt, eta, phi, e, d0, dz, ctgTheta); 123 if(fabs(candidate->Position.Eta())<fEtaMax) 124 { 125 tf_smeared = tf + timeResolution*gRandom->Gaus(0, 1); 126 } 127 else continue; 128 129 // double beta_particle = candidate->Momentum.P()/candidate->Momentum.E(); 130 // ti = tf_smeared - candidate->Ld*1.0E-3/(c_light*beta_particle); 110 131 111 132 mother = candidate; 112 candidate = static_cast<Candidate *>(candidate->Clone()); 113 candidate->InitialPosition.SetT(ti * 1.0E3 * c_light); 114 candidate->Position.SetT(tf * 1.0E3 * c_light); 115 116 candidate->ErrorT = fTimeResolution * 1.0E3 * c_light; 117 133 candidate = static_cast<Candidate*>(candidate->Clone()); 118 134 candidate->AddCandidate(mother); 135 candidate->InitialPosition.SetT((100+ti)*1.0E3*c_light); 136 candidate->Position.SetT(tf_smeared*1.0E3*c_light); 137 candidate->ErrorT = timeResolution*1.0E3*c_light; 119 138 120 139 fOutputArray->Add(candidate); -
modules/TimeSmearing.h
r0976f6a r584e2e9 32 32 class TIterator; 33 33 class TObjArray; 34 class DelphesFormula; 34 35 35 36 class TimeSmearing: public DelphesModule … … 44 45 45 46 private: 46 Double_t fTimeResolution; 47 DelphesFormula *fFormula; //! 48 Double_t fEtaMax; 47 49 48 50 TIterator *fItInputArray; //! -
modules/TrackTimingPileUpSubtractor.cc
r0976f6a r584e2e9 143 143 tvtx = candidate->Position.T(); 144 144 tvtx_err = candidate->PositionError.T(); 145 cout << " initial : " << candidate->InitialPosition.T() << " final : " << candidate->Position.T() << endl; 145 146 } 146 147 } … … 171 172 // apply pile-up subtraction 172 173 distance = pow((zvtx - z),2)/pow((zvtx_err - z_err),2) + pow((tvtx - t),2)/pow((tvtx_err - t_err),2); 174 //cout << " t : " << tvtx << " t(particle)" << t << endl; 173 175 // here I calculated distance using Z and T of selected vertex (highest sum Pt square) and particles 174 176 // however z_err of vertices is gives 0 because of using CMS trackResolutionCMS.tcl (in that formula, there is limitation on |eta| < 2.5) -
readers/DelphesPythia8.cpp
r0976f6a r584e2e9 151 151 152 152 candidate->Position.SetXYZT(x, y, z, t); 153 154 153 allParticleOutputArray->Add(candidate); 155 154 156 if(!pdgParticle) continue; 155 if(!pdgParticle && (abs(pid) > 1006333 || abs(pid) < 1000612) ) 156 continue; 157 157 158 158 if(status == 1)
Note:
See TracChangeset
for help on using the changeset viewer.