Changes in modules/MomentumSmearing.cc [341014c:4827699] in git
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
modules/MomentumSmearing.cc
r341014c r4827699 17 17 */ 18 18 19 19 20 /** \class MomentumSmearing 20 21 * … … 31 32 #include "classes/DelphesFormula.h" 32 33 34 #include "ExRootAnalysis/ExRootResult.h" 35 #include "ExRootAnalysis/ExRootFilter.h" 33 36 #include "ExRootAnalysis/ExRootClassifier.h" 34 #include "ExRootAnalysis/ExRootFilter.h"35 #include "ExRootAnalysis/ExRootResult.h"36 37 38 #include "TMath.h" 39 #include "TString.h" 40 #include "TFormula.h" 41 #include "TRandom3.h" 42 #include "TObjArray.h" 37 43 #include "TDatabasePDG.h" 38 #include "TFormula.h"39 44 #include "TLorentzVector.h" 40 #include "TMath.h"41 #include "TObjArray.h"42 #include "TRandom3.h"43 #include "TString.h"44 45 45 #include <algorithm> 46 #include <algorithm> 47 #include <stdexcept> 46 48 #include <iostream> 47 49 #include <sstream> 48 #include <stdexcept>49 50 50 51 using namespace std; … … 98 99 99 100 fItInputArray->Reset(); 100 while((candidate = static_cast<Candidate 101 while((candidate = static_cast<Candidate*>(fItInputArray->Next()))) 101 102 { 102 103 const TLorentzVector &candidatePosition = candidate->Position; … … 107 108 e = candidateMomentum.E(); 108 109 res = fFormula->Eval(pt, eta, phi, e); 109 110 110 111 // apply smearing formula 111 112 //pt = gRandom->Gaus(pt, fFormula->Eval(pt, eta, phi, e) * pt); 113 114 res = ( res > 1.0 ) ? 1.0 : res; 112 115 113 res = (res > 1.0) ? 1.0 : res; 114 115 pt = LogNormal(pt, res * pt); 116 116 pt = LogNormal(pt, res * pt ); 117 117 118 //if(pt <= 0.0) continue; 118 119 119 120 mother = candidate; 120 candidate = static_cast<Candidate 121 candidate = static_cast<Candidate*>(candidate->Clone()); 121 122 eta = candidateMomentum.Eta(); 122 123 phi = candidateMomentum.Phi(); 123 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt *TMath::CosH(eta));124 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt*TMath::CosH(eta)); 124 125 //candidate->TrackResolution = fFormula->Eval(pt, eta, phi, e); 125 126 candidate->TrackResolution = res; 126 127 candidate->AddCandidate(mother); 127 128 128 129 fOutputArray->Add(candidate); 129 130 } … … 137 138 if(mean > 0.0) 138 139 { 139 b = TMath::Sqrt(TMath::Log((1.0 + (sigma * sigma) / (mean *mean))));140 a = TMath::Log(mean) - 0.5 * b *b;140 b = TMath::Sqrt(TMath::Log((1.0 + (sigma*sigma)/(mean*mean)))); 141 a = TMath::Log(mean) - 0.5*b*b; 141 142 142 return TMath::Exp(a + b *gRandom->Gaus(0.0, 1.0));143 return TMath::Exp(a + b*gRandom->Gaus(0.0, 1.0)); 143 144 } 144 145 else … … 148 149 } 149 150 151 150 152 //------------------------------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.