Changes in modules/Isolation.cc [65dc4e7:341014c] in git
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
modules/Isolation.cc
r65dc4e7 r341014c 17 17 */ 18 18 19 20 19 /** \class Isolation 21 20 * … … 35 34 #include "classes/DelphesFormula.h" 36 35 36 #include "ExRootAnalysis/ExRootClassifier.h" 37 #include "ExRootAnalysis/ExRootFilter.h" 37 38 #include "ExRootAnalysis/ExRootResult.h" 38 #include "ExRootAnalysis/ExRootFilter.h" 39 #include "ExRootAnalysis/ExRootClassifier.h" 40 39 40 #include "TDatabasePDG.h" 41 #include "TFormula.h" 42 #include "TLorentzVector.h" 41 43 #include "TMath.h" 44 #include "TObjArray.h" 45 #include "TRandom3.h" 42 46 #include "TString.h" 43 #include "TFormula.h"44 #include "TRandom3.h"45 #include "TObjArray.h"46 #include "TDatabasePDG.h"47 #include "TLorentzVector.h"48 47 49 48 #include <algorithm> 50 #include <stdexcept>51 49 #include <iostream> 52 50 #include <sstream> 51 #include <stdexcept> 53 52 54 53 using namespace std; … … 59 58 { 60 59 public: 61 62 60 IsolationClassifier() {} 63 61 … … 71 69 Int_t IsolationClassifier::GetCategory(TObject *object) 72 70 { 73 Candidate *track = static_cast<Candidate *>(object);71 Candidate *track = static_cast<Candidate *>(object); 74 72 const TLorentzVector &momentum = track->Momentum; 75 73 … … 171 169 // loop over all input jets 172 170 fItCandidateInputArray->Reset(); 173 while((candidate = static_cast<Candidate *>(fItCandidateInputArray->Next())))171 while((candidate = static_cast<Candidate *>(fItCandidateInputArray->Next()))) 174 172 { 175 173 const TLorentzVector &candidateMomentum = candidate->Momentum; … … 181 179 { 182 180 fItRhoInputArray->Reset(); 183 while((object = static_cast<Candidate *>(fItRhoInputArray->Next())))181 while((object = static_cast<Candidate *>(fItRhoInputArray->Next()))) 184 182 { 185 183 if(eta >= object->Edges[0] && eta < object->Edges[1]) … … 198 196 199 197 itIsolationArray.Reset(); 200 while((isolation = static_cast<Candidate *>(itIsolationArray.Next())))198 while((isolation = static_cast<Candidate *>(itIsolationArray.Next()))) 201 199 { 202 200 const TLorentzVector &isolationMomentum = isolation->Momentum; … … 204 202 if(fUseMiniCone) 205 203 { 206 pass = candidateMomentum.DeltaR(isolationMomentum) <= fDeltaRMax && 207 candidateMomentum.DeltaR(isolationMomentum) > fDeltaRMin; 204 pass = candidateMomentum.DeltaR(isolationMomentum) <= fDeltaRMax && candidateMomentum.DeltaR(isolationMomentum) > fDeltaRMin; 208 205 } 209 206 else 210 207 { 211 pass = candidateMomentum.DeltaR(isolationMomentum) <= fDeltaRMax && 212 candidate->GetUniqueID() != isolation->GetUniqueID(); 208 pass = candidateMomentum.DeltaR(isolationMomentum) <= fDeltaRMax && candidate->GetUniqueID() != isolation->GetUniqueID(); 213 209 } 214 210 … … 233 229 } 234 230 } 235 236 231 } 237 232 238 // find rho233 // find rho 239 234 rho = 0.0; 240 235 if(fRhoInputArray) 241 236 { 242 237 fItRhoInputArray->Reset(); 243 while((object = static_cast<Candidate *>(fItRhoInputArray->Next())))238 while((object = static_cast<Candidate *>(fItRhoInputArray->Next()))) 244 239 { 245 240 if(eta >= object->Edges[0] && eta < object->Edges[1]) … … 250 245 } 251 246 252 253 254 247 // correct sum for pile-up contamination 255 sumDBeta = sumChargedNoPU + TMath::Max(sumNeutral - 0.5 *sumChargedPU, 0.0);256 sumRhoCorr = sumChargedNoPU + TMath::Max(sumNeutral - TMath::Max(rho, 0.0) *fDeltaRMax*fDeltaRMax*TMath::Pi(), 0.0);257 ratioDBeta = sumDBeta /candidateMomentum.Pt();258 ratioRhoCorr = sumRhoCorr /candidateMomentum.Pt();248 sumDBeta = sumChargedNoPU + TMath::Max(sumNeutral - 0.5 * sumChargedPU, 0.0); 249 sumRhoCorr = sumChargedNoPU + TMath::Max(sumNeutral - TMath::Max(rho, 0.0) * fDeltaRMax * fDeltaRMax * TMath::Pi(), 0.0); 250 ratioDBeta = sumDBeta / candidateMomentum.Pt(); 251 ratioRhoCorr = sumRhoCorr / candidateMomentum.Pt(); 259 252 260 253 candidate->IsolationVar = ratioDBeta;
Note:
See TracChangeset
for help on using the changeset viewer.