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