Go to the documentation of this file. 1 #ifndef PFProducer_PFEGammaAlgo_H
2 #define PFProducer_PFEGammaAlgo_H
48 #include <forward_list>
49 #include <unordered_map>
70 typedef std::unordered_map<const PFKFElement*, float>
KFValMap;
72 using ClusterMap = std::unordered_map<PFClusterElement const*, std::vector<PFClusterElement const*>>;
80 const std::unique_ptr<const GBRForest>
ele_;
96 std::vector<PFBremElement const*>
brems;
148 std::vector<std::vector<FlaggedPtr<const reco::PFBlockElement>>>
_splayedblock;
205 bool removeFreeECAL =
false,
206 bool removeSCECAL =
false);
void linkRefinableObjectPrimaryGSFTrackToECAL(ProtoEGObject &)
void mergeROsByAnyLink(std::list< ProtoEGObject > &)
std::vector< std::vector< FlaggedPtr< const reco::PFBlockElement > > > _splayedblock
reco::PFBlockElementGsfTrack PFGSFElement
void linkRefinableObjectConvSecondaryKFsToSecondaryKFs(ProtoEGObject &)
const PFSCElement * parentSC
reco::ElectronSeedRef electronSeed
PFEGConfigInfo const & cfg_
std::vector< PFBremElement const * > brems
ESChannelStatus const & channelStatus_
void linkRefinableObjectECALToSingleLegConv(ProtoEGObject &)
std::vector< const PFClusterElement * > electronClusters
reco::PFCandidateCollection candidates
bool applyCrackCorrections
std::vector< PFGSFElement const * > secondaryGSFs
GBRForests const & gbrForests_
std::vector< FlaggedPtr< const PFClusterElement > > ecalclusters
CommutativePairs< const reco::PFBlockElement * > localMap
float evaluateSingleLegMVA(const reco::PFBlockRef &blockref, const reco::Vertex &primaryVtx, unsigned int trackIndex)
std::vector< reco::PFCandidateEGammaExtra > PFCandidateEGammaExtraCollection
collection of PFCandidateEGammaExtras
void unlinkRefinableObjectKFandECALWithBadEoverP(ProtoEGObject &)
primaryVertex
hltOfflineBeamSpot for HLTMON
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
std::vector< PFGSFElement const * > primaryGSFs
reco::PFBlockElementBrem PFBremElement
reco::Vertex const & primaryVertex_
bool isPrimaryTrack(const reco::PFBlockElementTrack &KfEl, const reco::PFBlockElementGsfTrack &GsfEl)
float calculateEleMVA(const ProtoEGObject &, reco::PFCandidateEGammaExtra &) const
reco::PFBlockElementCluster PFClusterElement
const std::unique_ptr< const GBRForest > ele_
std::unordered_map< PFClusterElement const *, std::vector< PFClusterElement const * > > ClusterMap
std::unordered_map< const PFKFElement *, float > KFValMap
GBRForests(const edm::ParameterSet &conf)
reco::PFBlockRef _currentblock
void fillExtraInfo(const ProtoEGObject &, reco::PFCandidateEGammaExtra &)
void linkRefinableObjectBremTangentsToECAL(ProtoEGObject &)
reco::PFCandidateEGammaExtraCollection candidateExtras
std::vector< PFClusterElement const * > hcalClusters
void linkRefinableObjectGSFTracksToKFs(ProtoEGObject &)
KFValMap singleLegConversionMvaMap
reco::PFBlockElementTrack PFKFElement
void initializeProtoCands(std::list< ProtoEGObject > &)
void linkRefinableObjectPrimaryKFsToSecondaryKFs(ProtoEGObject &)
const std::unique_ptr< const GBRForest > singleLeg_
void removeOrLinkECALClustersToKFTracks()
int attachPSClusters(const PFClusterElement *, ClusterMap::mapped_type &)
void linkRefinableObjectKFTracksToECAL(ProtoEGObject &)
reco::PFCluster::EEtoPSAssociation EEtoPSAssociation
void linkRefinableObjectSecondaryKFsToECAL(ProtoEGObject &)
std::map< unsigned int, Link > LinkData
Abstract base class for a PFBlock element (track, cluster...)
std::vector< std::pair< CaloClusterPtr::key_type, edm::Ptr< PFCluster > > > EEtoPSAssociation
std::vector< PFKFElement const * > primaryKFs
reco::SuperClusterCollection refinedSuperClusters
void linkKFTrackToECAL(PFKFElement const *, ProtoEGObject &)
void linkRefinableObjectPrimaryGSFTrackToHCAL(ProtoEGObject &)
std::vector< PFKFElement const * > secondaryKFs
reco::PFBlock::LinkData _currentlinks
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
bool isMuon(const reco::PFBlockElement &)
reco::PFBlockRef parentBlock
reco::PFCluster::EEtoPSAssociation const & eetops_
reco::PFBlockElementSuperCluster PFSCElement
bool unwrapSuperCluster(const reco::PFBlockElementSuperCluster *, std::vector< FlaggedPtr< const PFClusterElement >> &, ClusterMap &)
EgammaObjects operator()(const reco::PFBlockRef &block)
PFEGammaAlgo(const PFEGConfigInfo &, GBRForests const &gbrForests, EEtoPSAssociation const &eetops, ESEEIntercalibConstants const &esEEInterCalib, ESChannelStatus const &channelStatus, reco::Vertex const &primaryVertex)
void dumpCurrentRefinableObjects() const
reco::SuperCluster buildRefinedSuperCluster(const ProtoEGObject &)
EgammaObjects fillPFCandidates(const std::list< ProtoEGObject > &)
void unlinkRefinableObjectKFandECALMatchedToHCAL(ProtoEGObject &, bool removeFreeECAL=false, bool removeSCECAL=false)
bool produceEGCandsWithNoSuperCluster
PFEnergyCalibration thePFEnergyCalibration_