1 #ifndef RecoParticleFlow_PFRootEvent_PFRootEventManager_h
2 #define RecoParticleFlow_PFRootEvent_PFRootEventManager_h
109 class PFBlockElement;
117 class PFClusterCalibration;
128 typedef std::list< std::pair<double, unsigned> >::iterator
ITM;
209 virtual void write();
222 bool reconnect=
false);
228 void connect(
const char* infilename=
"");
261 bool findNeighbours);
267 const std::map<unsigned, unsigned>& detId2index );
292 std::vector<ProtoJet>&
output);
296 std::vector< std::list <simMatch> >& candSimMatchTrack,
297 std::vector< std::list <simMatch> >& candSimMatchEcal)
const;
324 int maxNLines = -1 )
const;
336 std::string
expand(
const std::string& oldString)
const;
344 const char* seed=
" ",
357 int maxNLines = -1)
const;
388 double& peta,
double& pphi,
double& pe)
const;
edm::InputTag displacedRecTracksTag_
const reco::PFBlockCollection & blocks() const
CaloTowerCollection caloTowers_
std::auto_ptr< reco::PFBlockCollection > pfBlocks_
reconstructed pfblocks
bool useAtHLT_
Use HLT tracking.
edm::InputTag MCTruthTag_
void fillClusterMask(std::vector< bool > &mask, const reco::PFClusterCollection &clusters) const
cluster mask set to true for rechits inside TCutG
edm::Handle< reco::CaloMETCollection > caloMetsHandle_
CMSSW Calo MET.
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
void fillTrackMask(std::vector< bool > &mask, const reco::PFRecTrackCollection &tracks) const
track mask set to true for rechits inside TCutG
void reconstructGenJets()
reconstruct gen jets
std::string getGenParticleName(int partId, std::string &latexStringName) const
get name of genParticle
edm::Handle< reco::GenParticleRefVector > genParticlesforJetsHandle_
input collection of gen particles
edm::EventAuxiliary * eventAuxiliary_
event auxiliary information
void reset()
reset before next event
A benchmark managing several benchmarks.
void reconstructPFJets()
reconstruct pf jets
PFClusterAlgo clusterAlgoHFEM_
clustering algorithm for HF, electro-magnetic layer
PFMETMonitor pfMETMonitor_
unsigned filterNParticles_
void printCluster(const reco::PFCluster &cluster, std::ostream &out=std::cout) const
bool tauBenchmarkDebug_
tau benchmark debug
double printSimParticlesPtMin_
bool printPFJets_
print PFJets yes/no
reco::METCollection tcMets_
TCMET.
ParticleType
particle types
std::pair< double, unsigned > simMatch
edm::Handle< reco::PFRecHitCollection > rechitsHFEMHandle_
rechits HF EM
PFClusterAlgo clusterAlgoHO_
clustering algorithm for HO
boost::shared_ptr< PFEnergyCalibration > calibration_
edm::Handle< reco::PFJetCollection > pfJetsHandle_
CMSSW PF Jets.
bool printPFBlocks_
print PFBlocks yes/no
PFJetBenchmark PFJetBenchmark_
PFJet Benchmark.
General option file parser.
reco::PFMETCollection pfMetsCMSSW_
bool useConvBremPFRecTracks_
Use Conv Brem KF Tracks.
edm::InputTag caloJetsTag_
void fillOutEventWithPFCandidates(const reco::PFCandidateCollection &pfCandidates)
fills OutEvent with candidates
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
bool debug_
debug printouts for this PFRootEventManager on/off
edm::Handle< reco::PFCandidateCollection > pfCandidateHandle_
CMSSW PF candidates.
boost::shared_ptr< PFEnergyCalibrationHF > thepfEnergyCalibrationHF_
reco::GenParticleRefVector genParticlesforJets_
edm::InputTag convBremGsfrecTracksTag_
std::string outFileName_
output filename
int chargeValue(const int &pdgId) const
edm::Handle< reco::PFRecHitCollection > rechitsHCALHandle_
rechits HCAL
edm::Handle< reco::PFMETCollection > pfMetsHandle_
CMSSW PF MET.
fwlite::ChainEvent * ev_
NEW: input event.
IO * options_
options file parser
reco::PFJetCollection pfJetsCMSSW_
std::auto_ptr< reco::PFClusterCollection > clustersECAL_
void PreprocessRecHits(reco::PFRecHitCollection &rechits, bool findNeighbours)
preprocess a rechit vector from a given rechit branch
bool usePFV0s_
Use of V0 in PFAlgo.
double printClustersEMin_
std::vector< GenJet > GenJetCollection
collection of GenJet objects
reco::MuonCollection muons_
edm::InputTag stdTracksTag_
std::vector< Track > TrackCollection
collection of Tracks
std::vector< std::string > inFileNames_
input file names
PFRootEventManager()
default constructor
edm::Handle< reco::PFClusterCollection > clustersHCALHandle_
clusters HCAL
reco::PFRecTrackCollection displacedRecTracks_
reco::GenJetCollection genJets_
gen Jets
edm::InputTag egammaElectronsTag_
reco::PFRecHitCollection rechitsHFHAD_
std::vector< Vertex > VertexCollection
collection of Vertex objects
edm::InputTag primaryVerticesTag_
std::vector< PFSimParticle > PFSimParticleCollection
collection of PFSimParticle objects
edm::InputTag rechitsHFEMTag_
edm::InputTag rechitsECALTag_
std::vector< PFRecHit > PFRecHitCollection
collection of PFRecHit objects
reco::CandidatePtrVector caloTowersPtrs_
bool usePFNuclearInteractions_
Use of PFDisplacedVertex in PFAlgo.
bool isHadronicTau() const
study the sim event to check if the tau decay is hadronic
std::auto_ptr< reco::PFClusterCollection > clustersHCAL_
reco::PhotonCollection photons_
bool usePFElectrons_
Use PFElectrons.
Base class for particle flow input reconstructed tracks and simulated particles.
std::vector< PFConversion > PFConversionCollection
collection of PFConversion objects
std::vector< ProtoJet > caloJets_
calo Jets
edm::InputTag clustersHFHADTag_
void fillOutEventWithCaloTowers(const CaloTowerCollection &cts)
fills outEvent with calo towers
std::map< int, int > EventToEntry
PFClusterAlgo clusterAlgoECAL_
reco::PFRecTrackCollection recTracks_
TBranch * eventAuxiliaryBranch_
edm::Handle< reco::GsfPFRecTrackCollection > gsfrecTracksHandle_
reconstructed GSF tracks
bool highPtJet(double ptMin) const
returns true if there is at least one jet with pT>pTmin
std::vector< reco::MET > METCollection
collection of MET objects
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
reco::PFRecHitCollection rechitsPS_
void particleFlow()
performs particle flow
edm::Handle< reco::PhotonCollection > photonHandle_
photons
double printGenParticlesPtMin_
double tauBenchmark(const reco::PFCandidateCollection &candidates)
COLIN need to get rid of this mess.
std::vector< Muon > MuonCollection
collection of Muon objects
edm::Handle< std::vector< reco::CaloJet > > caloJetsHandle_
CMSSW calo Jets.
bool doPFMETBenchmark_
PFMET benchmark on/off.
reco::PFRecHitCollection rechitsHCAL_
std::vector< PFCandidatePtr > pfCandidates(const PFJet &jet, int particleId, bool sort=true)
void reconstructFWLiteJets(const reco::CandidatePtrVector &Candidates, std::vector< ProtoJet > &output)
used by the reconstruct*Jets functions
edm::InputTag gsfrecTracksTag_
edm::Handle< reco::PFRecHitCollection > rechitsECALHandle_
rechits ECAL
edm::Handle< reco::PFRecHitCollection > rechitsHFHADHandle_
rechits HF HAD
std::vector< edm::Handle< reco::PFRecHitCollection > > rechitsCLEANEDHandles_
edm::InputTag clustersECALTag_
reco::PFSimParticleCollection trueParticles_
edm::Handle< reco::PFSimParticleCollection > trueParticlesHandle_
true particles
bool readFromSimulation(int entry)
read data from simulation tree
edm::InputTag clustersPSTag_
edm::InputTag clustersHOTag_
edm::InputTag stringToTag(const std::vector< std::string > &tagname)
returns an InputTag from a vector of strings
void print(std::ostream &out=std::cout, int maxNLines=-1) const
print information
Algorithm for particle flow clustering.
void readOptions(const char *file, bool refresh=true, bool reconnect=false)
edm::Handle< reco::TrackCollection > stdTracksHandle_
standard reconstructed tracks
std::vector< int > filterTaus_
edm::InputTag rechitsPSTag_
edm::Handle< reco::PFClusterCollection > clustersHOHandle_
clusters HO
edm::Handle< reco::GenJetCollection > genJetsHandle_
CMSSW gen Jets.
void fillPhotonMask(std::vector< bool > &mask, const reco::PhotonCollection &photons) const
photon mask set to true for photons inside TCutG
bool jetsDebug_
debug printouts for jet algo on/off
edm::Handle< reco::PFClusterCollection > clustersHFEMHandle_
clusters HCAL
bool printClusters_
print clusters yes/no
reco::VertexCollection primaryVertices_
edm::InputTag genParticlesforMETTag_
Particle flow rechit (rechit + geometry and topology information). See clustering algorithm in PFClus...
reco::CandidatePtrVector pfCandidatesPtrs_
TTree * outTree_
output tree
void fillOutEventWithClusters(const reco::PFClusterCollection &clusters)
fills OutEvent with clusters
std::auto_ptr< reco::PFClusterCollection > clustersPS_
std::vector< GsfPFRecTrack > GsfPFRecTrackCollection
collection of GsfPFRecTrack objects
void printRecHits(const reco::PFRecHitCollection &rechits, const PFClusterAlgo &clusterAlgo, std::ostream &out=std::cout) const
print rechits
edm::InputTag rechitsHOTag_
reco::GenJetCollection genJetsCMSSW_
edm::Handle< reco::PFClusterCollection > clustersECALHandle_
clusters ECAL
TFile * outFile_
output file
void mcTruthMatching(std::ostream &out, const reco::PFCandidateCollection &candidates, std::vector< std::list< simMatch > > &candSimMatchTrack, std::vector< std::list< simMatch > > &candSimMatchEcal) const
std::pair< std::string, MonitorElement * > entry
PFJetMonitor pfJetMonitor_
std::ofstream * calibFile_
TH1F * h_deltaETvisible_MCPF_
output histo dET ( PF - MC)
edm::InputTag pfNuclearTrackerVertexTag_
edm::InputTag corrcaloJetsTag_
bool doParticleFlow_
particle flow on/off
edm::InputTag genParticlesforJetsTag_
edm::InputTag caloTowersTag_
PFClusterAlgo clusterAlgoHCAL_
clustering algorithm for HCAL
PFCandidateManager pfCandidateManager_
edm::InputTag recTracksTag_
std::auto_ptr< reco::PFCandidateElectronExtraCollection > pfCandidateElectronExtras_
PFCandidateElectronExtra.
reco::PFMETCollection pfMets_
PF MET.
bool printPFCandidates_
print PFCandidates yes/no
std::map< int, EventToEntry > LumisMap
void printClusters(const reco::PFClusterCollection &clusters, std::ostream &out=std::cout) const
print clusters
std::list< std::pair< double, unsigned > >::iterator ITM
reco::PFCandidateCollection pfCandCMSSW_
reco::GsfPFRecTrackCollection gsfrecTracks_
bool useKDTreeTrackEcalLinker_
ECAL-track link optimization.
edm::InputTag genJetsTag_
std::vector< PFV0 > PFV0Collection
collection of PFV0 objects
bool usePFConversions_
Use of conversions in PFAlgo.
std::auto_ptr< reco::PFClusterCollection > clustersHO_
bool findRecHitNeighbours_
find rechit neighbours ?
reco::CandidatePtrVector genParticlesforJetsPtrs_
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
std::vector< PFBlock > PFBlockCollection
collection of PFBlock objects
TH1F * h_deltaETvisible_MCEHT_
output histo dET ( EHT - MC)
virtual bool processEntry(int entry)
process one entry (pass the TTree entry)
edm::InputTag clustersHCALTag_
reco::PFRecHitCollection rechitsHFEM_
PFAlgo pfAlgo_
particle flow algorithm
true particle for particle flow
void clustering()
read data from testbeam tree
std::vector< reco::PFRecHitCollection > rechitsCLEANEDV_
rechits HF CLEANED
edm::Handle< reco::PFRecHitCollection > rechitsHOHandle_
rechits HO
edm::InputTag rechitsHFHADTag_
std::string expand(const std::string &oldString) const
void printRecHit(const reco::PFRecHit &rh, unsigned index, const char *seed=" ", std::ostream &out=std::cout) const
double printPFCandidatesPtMin_
void fillOutEventWithSimParticles(const reco::PFSimParticleCollection &ptcs)
fills OutEvent with sim particles
virtual bool processEvent(int run, int lumi, int event)
process one event (pass the CMS event number)
std::auto_ptr< reco::PFCandidateCollection > pfCandidates_
reconstructed pfCandidates
bool countChargedAndPhotons() const
bool printMCTruthMatching_
reco::PFRecHitCollection rechitsHO_
edm::Handle< reco::PFConversionCollection > conversionHandle_
conversions
void connect(const char *infilename="")
open the root file and connect to the tree
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
reco::GsfPFRecTrackCollection convBremGsfrecTracks_
edm::Handle< reco::GsfElectronCollection > egammaElectronHandle_
void printGenParticles(std::ostream &out=std::cout, int maxNLines=-1) const
print the HepMC truth
reco::GenParticleCollection genParticlesCMSSW_
edm::Handle< reco::GenParticleCollection > genParticlesforMETHandle_
CMSSW GenParticles.
bool doTauBenchmark_
tau benchmark on/off
std::vector< reco::CaloMET > CaloMETCollection
collection of CaloMET objects
reco::PFJetCollection pfJets_
PF Jets.
edm::InputTag caloMetsTag_
std::auto_ptr< reco::PFClusterCollection > clustersHFEM_
edm::InputTag clustersHFEMTag_
bool eventAccepted() const
returns true if the event is accepted(have a look at the function implementation) ...
edm::InputTag rechitsHCALTag_
void printMCCalib(std::ofstream &out) const
print calibration information
reco::PFRecHitCollection rechitsCLEANED_
std::auto_ptr< reco::PFClusterCollection > clustersHFHAD_
edm::Handle< CaloTowerCollection > caloTowersHandle_
input collection of calotowers
std::map< int, LumisMap > RunsMap
PFBlockAlgo pfBlockAlgo_
algorithm for building the particle flow blocks
reco::TrackCollection stdTracks_
bool highPtPFCandidate(double ptMin, reco::PFCandidate::ParticleType type=reco::PFCandidate::X) const
returns true if there is a PFCandidate of a given type over a given pT
reco::CaloMETCollection caloMetsCMSSW_
edm::Handle< reco::PFClusterCollection > clustersPSHandle_
clusters PS
PFClusterAlgo clusterAlgoPS_
clustering algorithm for PS
void setRecHitNeigbours(reco::PFRecHit &rh, const std::map< unsigned, unsigned > &detId2index)
std::vector< Photon > PhotonCollection
collectin of Photon objects
edm::Handle< edm::HepMCProduct > MCTruthHandle_
MC truth.
reco::PFDisplacedTrackerVertexCollection pfNuclearTrackerVertex_
edm::HepMCProduct MCTruth_
bool doPFCandidateBenchmark_
virtual void readSpecificOptions(const char *file)
virtual ~PFRootEventManager()
destructor
bool doPFJetBenchmark_
PFJet benchmark on/off.
const reco::PFSimParticle & closestParticle(reco::PFTrajectoryPoint::LayerType layer, double eta, double phi, double &peta, double &pphi, double &pe) const
find the closest PFSimParticle to a point (eta,phi) in a given detector
edm::Handle< reco::METCollection > tcMetsHandle_
CMSSW TCMET.
std::auto_ptr< METManager > metManager_
edm::Handle< reco::PFDisplacedTrackerVertexCollection > pfNuclearTrackerVertexHandle_
PFDisplacedVertex.
std::vector< PFJet > PFJetCollection
collection of PFJet objects
edm::Handle< reco::VertexCollection > primaryVerticesHandle_
reconstructed primary vertices
void initializeEventInformation()
bool useHO_
Use of HO in links with tracks/HCAL and in particle flow reconstruction.
boost::shared_ptr< pftools::PFClusterCalibration > clusterCalibration_
edm::InputTag conversionTag_
bool printSimParticles_
print true particles yes/no
std::vector< reco::PFMET > PFMETCollection
collection of PFMET objects
void reconstructCaloJets()
reconstruct calo jets
edm::Handle< reco::PFRecTrackCollection > displacedRecTracksHandle_
edm::Handle< reco::PFRecHitCollection > rechitsPSHandle_
rechits PS
edm::Handle< std::vector< reco::CaloJet > > corrcaloJetsHandle_
CMSSW corrected calo Jets.
edm::Handle< reco::GsfPFRecTrackCollection > convBremGsfrecTracksHandle_
reconstructed secondary GSF tracks
edm::Handle< reco::PFV0Collection > v0Handle_
V0.
bool useConvBremGsfTracks_
Use Secondary Gsf Tracks.
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
std::vector< reco::CaloJet > corrcaloJetsCMSSW_
edm::InputTag pfCandidateTag_
void pfCandCompare(int)
compare particle flow
reco::PFRecHitCollection rechitsECAL_
reco::CaloMETCollection caloMets_
Calo MET.
double MET1cut
PFMET Benchmark.
reco::PFConversionCollection conversion_
PFClusterAlgo clusterAlgoHFHAD_
clustering algorithm for HF, hadronic layer
ROOT interface to particle flow package.
std::vector< reco::CaloJet > caloJetsCMSSW_
bool JECinCaloMet_
propagate the Jet Energy Corrections to the caloMET on/off
bool fastsim_
Fastsim or fullsim.
reco::METCollection tcMetsCMSSW_
bool useEGElectrons_
Use EGElectrons.
LayerType
Define the different layers where the track can be propagated.
edm::Handle< reco::PFClusterCollection > clustersHFHADHandle_
clusters HCAL
bool useEGPhotons_
Use EGPhotons.
View_t
viewport definition
void fillRecHitMask(std::vector< bool > &mask, const reco::PFRecHitCollection &rechits) const
rechit mask set to true for rechits inside TCutG
bool trackInsideGCut(const reco::PFTrack &track) const
is PFTrack inside cut G ? yes if at least one trajectory point is inside.
bool doCompare_
comparison with pf CMSSW
std::vector< PFRecTrack > PFRecTrackCollection
collection of PFRecTrack objects
bool printGenParticles_
print MC truth yes/no
edm::Handle< reco::MuonCollection > muonsHandle_
muons
std::vector< PFDisplacedTrackerVertex > PFDisplacedTrackerVertexCollection
collection of DisplacedTrackerVertexs
void PreprocessRecTracks(reco::PFRecTrackCollection &rectracks)
preprocess a rectrack vector from a given rectrack branch
reco::GsfElectronCollection egammaElectrons_
void fillOutEventWithBlocks(const reco::PFBlockCollection &blocks)
fills outEvent with blocks
std::vector< edm::InputTag > rechitsCLEANEDTags_
edm::InputTag trueParticlesTag_
FWLiteJetProducer jetMaker_
wrapper to official jet algorithms
bool printRecHits_
print rechits yes/no
int jetAlgoType_
jet algo type
edm::Handle< reco::PFRecTrackCollection > recTracksHandle_
reconstructed tracks
int eventToEntry(int run, int lumi, int event) const