1 #ifndef TJjetsPFOAnalysisProcessor_h
2 #define TJjetsPFOAnalysisProcessor_h 1
4 #include "marlin/Processor.h"
6 #include "TrueJet_Parser.h"
41 void check( LCEvent * event ) ;
52 typedef std::vector< JetContentPair* >
JetVec;
79 template <
class Object>
bool areDisjointVectors(
const std::vector<Object> &v1,
const std::vector<Object> &v2 )
const;
123 static bool SortPfoTargetsByEnergy(
const EVENT::MCParticle *
const pLhs,
const EVENT::MCParticle *
const pRhs);
TJjetsPFOAnalysisProcessor & operator=(const TJjetsPFOAnalysisProcessor &)=delete
FloatVector m_pfoTargetEnergies
FloatVector m_pfoEnergies
float m_mcPfoSelectionMomentum
void ApplyPfoSelectionRules(EVENT::MCParticle *pMCParticle, MCParticleList &mcPfoCandidates) const
Apply pfo selection rules, starting with root particles.
bool areDisjointVectors(const std::vector< Object > &v1, const std::vector< Object > &v2) const
std::string _recoMCTruthLink
std::set< EVENT::MCParticle * > MCParticleList
void MakeQuarkVariables(JetContentPair *jet_content)
Make quark variables.
float m_pfoHCalToHadEnergy
float m_mcPfoSelectionLowEnergyNPCutOff
std::string _rootfilename
float m_pfoTargetsEnergyTracks
float m_pfoEnergyNeutralHadrons
float m_pfoECalToEmEnergy
void end()
Called after data processing for clean up.
std::vector< Object > turnVectorOfConstToVector(const std::vector< const Object > &v) const
std::vector< LCRelationNavigator * > LCRelationNavigatorVec
int m_nPfoTargetsNeutralHadrons
std::vector< std::string > StringVector
int m_lookForQuarksWithMotherZ
std::string _colAllPFOs
Input collection name.
TJjetsPFOAnalysisProcessor()
TFile * _otfile
Output File specifics.
FloatVector m_pfoCosTheta
std::string get_recoMCTruthLink()
For TrueJet_Parser -> see its documentation.
void check(LCEvent *event)
float m_pfoHCalToEmEnergy
std::set< EVENT::MCParticle * > MCParticleSet
FloatVector m_pfoTargetPx
MCParticleVector m_pfoTargetVector
void init()
Called at the begin of the job before anything is read.
float m_pfoTargetsEnergyNeutralHadrons
std::string m_mcParticleCollection
FloatVector m_pfoTargetPz
std::vector< const MCParticle * > MCParticleVector
void processRunHeader(LCRunHeader *run)
Called for every run.
IntVector m_pfoTargetPdgCodes
float m_pfoTargetsEnergyPhotons
void findTrueJetParticles(LCEvent *event)
void PerformPfoAnalysis()
Perform pfo analysis.
void ExtractCollections(JetContentPair *jet_content)
Extract lcio collections.
void Clear()
PFOAnalysis stuff.
int m_nPfosNeutralHadrons
TH1F * m_hPfoEnergySumL7A
float m_pfoTargetsEnergyTotal
std::vector< JetContentPair * > JetVec
static bool SortPfoTargetsByEnergy(const EVENT::MCParticle *const pLhs, const EVENT::MCParticle *const pRhs)
Sort mc pfo targets by decreasing energy.
ParticleVector m_pfoVector
FloatVector m_pfoTargetCosTheta
float m_pfoECalToHadEnergy
bool hasSomeParentsInMCList(EVENT::MCParticle *pMCParticle, MCParticleList &mcs) const
std::pair< MCParticleVec, ReconstructedParticleVec > JetContentPair
Definitions using typedef.
std::vector< float > FloatVector
std::vector< const ReconstructedParticle * > ParticleVector
FloatVector m_pfoTargetPy
void processEvent(LCEvent *event)
Called for every event - the working horse.
std::vector< int > IntVector
float m_mcPfoSelectionRadius
virtual Processor * newProcessor()
std::string m_inputPfoCollection