11 #ifndef IsolatedLeptonFinderProcessor_h
12 #define IsolatedLeptonFinderProcessor_h 1
18 #include <marlin/Processor.h>
21 #include <EVENT/ReconstructedParticle.h>
22 #include <EVENT/MCParticle.h>
23 #include "IMPL/ReconstructedParticleImpl.h"
24 #include <UTIL/LCRelationNavigator.h>
56 bool IsCharged( ReconstructedParticle* pfo ) ;
59 bool IsLepton( ReconstructedParticle* pfo ) ;
62 bool IsElectron( ReconstructedParticle* pfo ) ;
65 bool IsMuon( ReconstructedParticle* pfo ) ;
68 bool IsPhoton( ReconstructedParticle* pfo ) ;
78 ReconstructedParticle* pfo_i =
static_cast<ReconstructedParticle*
>(
_pfoCol->getElementAt(i) );
79 ReconstructedParticle* pfo_j =
static_cast<ReconstructedParticle*
>(
_pfoCol->getElementAt(j) );
80 return (pfo_i->getEnergy()>pfo_j->getEnergy());
84 void dressLepton( ReconstructedParticleImpl* pfo,
int PFO_idx ) ;
90 void getCalEnergy( ReconstructedParticle* pfo ,
float* cale) ;
159 std::map<ReconstructedParticle*,ReconstructedParticle*>
_rpJetMap {};
std::string _outputIsoLepCollection
Output collection of isolated leptons.
float _muonMaxEnergyDepositByMomentum
bool _useImpactParameterSignificance
If set to true, uses impact parameter significance cuts.
bool IsIsolatedRectangular(ReconstructedParticle *pfo)
Returns true if isolated, as defined by the cone energy.
virtual Processor * newProcessor()
std::string _outputDressedIsoLepCollection
Output collection of dressed isolated leptons.
bool _usePandoraIDs
If set to true, uses Pandora particle IDs.
void dressLepton(ReconstructedParticleImpl *pfo, int PFO_idx)
Adds photons around lepton to four vector.
IsolatedLeptonFinderProcessor()
void getCalEnergy(ReconstructedParticle *pfo, float *cale)
[0]:Ecal energy, [1]:Hcal energy
std::vector< ReconstructedParticle * > _workingList
bool IsLepton(ReconstructedParticle *pfo)
Returns true if it passes muon or electron ID cuts.
float _electronMaxEcalToHcalFraction
float _electronMaxEnergyDepositByMomentum
bool PassesImpactParameterCuts(ReconstructedParticle *pfo)
Returns true if it passes impact parameter cuts.
bool IsGoodLepton(ReconstructedParticle *pfo)
Returns true if pfo is a lepton.
std::string _outputPFOsRemovedDressedIsoLepCollection
Output collection (all input with dressed isolated leptons removed)
ReconstructedParticleImpl * CopyReconstructedParticle(ReconstructedParticle *pfo)
Replace missing copy constructor by hand.
bool PassesImpactParameterSignificanceCuts(ReconstructedParticle *pfo)
Returns true if it passes impact parameter significance cuts.
bool _mergeCloseElectrons
float _muonMinEcalToHcalFraction
IsolatedLeptonFinderProcessor & operator=(const IsolatedLeptonFinderProcessor &)=delete
bool IsIsolatedPolynomial(ReconstructedParticle *pfo)
bool IsIsolatedLepton(ReconstructedParticle *pfo)
Returns true if pfo is an isolated lepton.
std::map< ReconstructedParticle *, ReconstructedParticle * > _rpJetMap
bool _usePolynomialIsolation
If set to true, uses polynomial cuts for isolation.
float _dressPhotonConeAngle
bool _usePID
If set to true, uses PID cuts.
bool IsCharged(ReconstructedParticle *pfo)
Returns true if charged.
bool _useImpactParameter
If set to true, uses impact parameter cuts.
float _muonMinEnergyDepositByMomentum
float _electronMinEcalToHcalFraction
virtual void processEvent(LCEvent *evt)
bool IsPhoton(ReconstructedParticle *pfo)
Returns true if it passes photon ID cuts.
float getConeEnergy(ReconstructedParticle *pfo)
Calculates the cone energy.
bool IsElectron(ReconstructedParticle *pfo)
Returns true if it passes electron ID cuts.
bool _useJetIsolation
If set to true, uses jet-based isolation (LAL algorithm)
bool IsMuon(ReconstructedParticle *pfo)
Returns true if it passes muon ID cuts.
std::string _outputPFOsRemovedIsoLepCollection
Output collection (all input with isolated leptons removed)
float _electronMinEnergyDepositByMomentum
std::string _jetCollectionName
bool _useRectangularIsolation
If set to true, uses rectangular cuts for isolation.
bool _useDressedLeptons
If set to true, uses lepton dressing.
Marlin processor for finding isolated leptons.
bool isMoreEnergetic(int i, int j)
Helper function to order PFOS by energy.
std::string _inputPFOsCollection
Input collection.
bool IsIsolatedJet(ReconstructedParticle *pfo)
float _mergeLeptonConeAngle
float _muonMaxEcalToHcalFraction