Fork me on GitHub

Changeset 1180bc1 in git for modules/BTagging.cc


Ignore:
Timestamp:
Jun 30, 2015, 2:38:29 PM (9 years ago)
Author:
Michele Selvaggi <michele.selvaggi@…>
Branches:
ImprovedOutputFile, Timing, dual_readout, llp, master
Children:
c627b07
Parents:
6153fb0
Message:

fixed BTagging without LHEF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • modules/BTagging.cc

    r6153fb0 r1180bc1  
    3434#include "classes/DelphesFormula.h"
    3535
    36 #include "ExRootAnalysis/ExRootResult.h"
    37 #include "ExRootAnalysis/ExRootFilter.h"
    38 #include "ExRootAnalysis/ExRootClassifier.h"
    39 
    4036#include "TMath.h"
    4137#include "TString.h"
     
    5551//------------------------------------------------------------------------------
    5652
    57 class BTaggingPartonClassifier : public ExRootClassifier
     53BTagging::BTagging() :
     54  fItJetInputArray(0)
    5855{
    59 public:
    60 
    61   BTaggingPartonClassifier() {}
    62 
    63   Int_t GetCategory(TObject *object);
    64 
    65   Double_t fEtaMax, fPTMin;
    66 };
    67 
    68 //------------------------------------------------------------------------------
    69 
    70 Int_t BTaggingPartonClassifier::GetCategory(TObject *object)
    71 {
    72   Candidate *parton = static_cast<Candidate*>(object);
    73   const TLorentzVector &momentum = parton->Momentum;
    74   Int_t pdgCode;
    75 
    76   if(momentum.Pt() <= fPTMin || TMath::Abs(momentum.Eta()) > fEtaMax) return -1;
    77 
    78   pdgCode = TMath::Abs(parton->PID);
    79   if(pdgCode != 21 && pdgCode > 5) return -1;
    80 
    81   return 0;
    82 }
    83 
    84 //------------------------------------------------------------------------------
    85 
    86 BTagging::BTagging() :
    87   fClassifier(0), fFilter(0),
    88   fItPartonInputArray(0), fItJetInputArray(0)
    89 {
    90   fClassifier = new BTaggingPartonClassifier;
    9156}
    9257
     
    9560BTagging::~BTagging()
    9661{
    97   if(fClassifier) delete fClassifier;
    9862}
    9963
     
    10872
    10973  fBitNumber = GetInt("BitNumber", 0);
    110 
    111   fDeltaR = GetDouble("DeltaR", 0.5);
    112 
    113   fClassifier->fPTMin = GetDouble("PartonPTMin", 1.0);
    114   fClassifier->fEtaMax = GetDouble("PartonEtaMax", 2.5);
    11574
    11675  // read efficiency formulas
     
    13998  // import input array(s)
    14099
    141   fPartonInputArray = ImportArray(GetString("PartonInputArray", "Delphes/partons"));
    142   fItPartonInputArray = fPartonInputArray->MakeIterator();
    143 
    144   fFilter = new ExRootFilter(fPartonInputArray);
    145 
    146100  fJetInputArray = ImportArray(GetString("JetInputArray", "FastJetFinder/jets"));
    147101  fItJetInputArray = fJetInputArray->MakeIterator();
     
    155109  DelphesFormula *formula;
    156110
    157   if(fFilter) delete fFilter;
    158111  if(fItJetInputArray) delete fItJetInputArray;
    159   if(fItPartonInputArray) delete fItPartonInputArray;
    160112
    161113  for(itEfficiencyMap = fEfficiencyMap.begin(); itEfficiencyMap != fEfficiencyMap.end(); ++itEfficiencyMap)
     
    172124  Candidate *jet;
    173125  Double_t pt, eta, phi, e;
    174   TObjArray *partonArray;
    175126  map< Int_t, DelphesFormula * >::iterator itEfficiencyMap;
    176127  DelphesFormula *formula;
    177 
    178   // select quark and gluons
    179   fFilter->Reset();
    180   partonArray = fFilter->GetSubArray(fClassifier, 0);
    181 
    182   if(partonArray == 0) return;
    183 
    184   TIter itPartonArray(partonArray);
    185128
    186129  // loop over all input jets
Note: See TracChangeset for help on using the changeset viewer.