1 #ifndef PFProducer_PFEGammaAlgo_H 2 #define PFProducer_PFEGammaAlgo_H 48 #include <forward_list> 49 #include <unordered_map> 71 typedef std::unordered_map<unsigned int, std::vector<unsigned int> >
AsscMap;
74 typedef std::unordered_map<
const PFGSFElement*,
76 typedef std::unordered_map<
const PFClusterElement*,
78 typedef std::unordered_map<
const PFKFElement*,
94 std::vector<PFBremFlaggedElement>
brems;
166 bool isMuon(
const reco::PFBlockElement&);
189 std::vector<PFClusterFlaggedElement>&,
193 ClusterMap::mapped_type&);
231 bool removeFreeECAL =
false,
232 bool removeSCECAL =
false);
237 const std::list<ProtoEGObject>&,
267 unsigned int trackIndex);
std::unordered_map< unsigned int, std::vector< unsigned int > > AsscMap
Abstract base class for a PFBlock element (track, cluster...)
std::vector< PFClusterFlaggedElement > ecalclusters
const char * mvaWeightFile_
reco::PFBlockElementSuperCluster PFSCElement
reco::SuperClusterCollection refinedscs_
reco::SuperClusterCollection & getRefinedSCs()
reco::PFBlockRef parentBlock
void unlinkRefinableObjectKFandECALWithBadEoverP(ProtoEGObject &)
GSFToTrackMap boundKFTracks
std::unordered_map< const PFKFElement *, float > KFValMap
std::pair< const PFClusterElement *, bool > PFClusterFlaggedElement
std::vector< std::pair< const reco::PFBlockElement *, const reco::PFBlockElement * > > ElementMap
std::shared_ptr< PFEnergyCalibration > thePFEnergyCalibration
std::map< unsigned int, Link > LinkData
std::vector< PFClusterFlaggedElement > hcalClusters
reco::PFBlockElementGsfTrack PFGSFElement
bool isPrimaryTrack(const reco::PFBlockElementTrack &KfEl, const reco::PFBlockElementGsfTrack &GsfEl)
void setPhotonPrimaryVtx(const reco::Vertex &primary)
void linkRefinableObjectPrimaryGSFTrackToECAL(ProtoEGObject &)
void linkRefinableObjectECALToSingleLegConv(const pfEGHelpers::HeavyObjectCache *hoc, ProtoEGObject &)
std::vector< const PFClusterElement * > electronClusters
std::vector< std::vector< PFFlaggedElement > > _splayedblock
std::pair< const PFGSFElement *, bool > PFGSFFlaggedElement
void linkRefinableObjectBremTangentsToECAL(ProtoEGObject &)
const reco::Vertex * primaryVtx
void setEEtoPSAssociation(EEtoPSAssociation const &eetops)
reco::PFBlockRef _currentblock
std::pair< const reco::PFBlockElement *, bool > PFFlaggedElement
std::pair< const PFSCElement *, bool > PFSCFlaggedElement
void setAlphaGamma_ESplanes_fromDB(const ESEEIntercalibConstants *esEEInterCalib)
std::vector< PFKFFlaggedElement > secondaryKFs
void dumpCurrentRefinableObjects() const
void initializeProtoCands(std::list< ProtoEGObject > &)
void linkRefinableObjectPrimaryKFsToSecondaryKFs(ProtoEGObject &)
bool unwrapSuperCluster(const reco::PFBlockElementSuperCluster *, std::vector< PFClusterFlaggedElement > &, ClusterMap &)
reco::PFCandidateEGammaExtraCollection & getEGExtra()
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
std::vector< PFGSFFlaggedElement > secondaryGSFs
reco::PFCluster::EEtoPSAssociation EEtoPSAssociation
PFEGammaAlgo(const PFEGConfigInfo &)
bool produceEGCandsWithNoSuperCluster
const PFSCElement * parentSC
std::vector< reco::PFCandidateEGammaExtra > PFCandidateEGammaExtraCollection
collection of PFCandidateEGammaExtras
std::vector< PFBremFlaggedElement > brems
std::vector< std::pair< CaloClusterPtr::key_type, edm::Ptr< PFCluster > > > EEtoPSAssociation
std::unordered_map< const PFGSFElement *, std::vector< PFKFFlaggedElement > > GSFToTrackMap
std::list< ProtoEGObject > _refinableObjects
reco::PFBlockElementCluster PFClusterElement
reco::PFBlockElementBrem PFBremElement
KFValMap singleLegConversionMvaMap
reco::PFCandidateEGammaExtraCollection outcandsextra_
void linkKFTrackToECAL(const PFKFFlaggedElement &, ProtoEGObject &)
reco::PFCandidateCollection & getCandidates()
reco::PFBlock::LinkData _currentlinks
void buildAndRefineEGObjects(const pfEGHelpers::HeavyObjectCache *hoc, const reco::PFBlockRef &block)
reco::PFCluster::EEtoPSAssociation const * eetops_
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
bool isMuon(const reco::PFBlockElement &)
void fillExtraInfo(const ProtoEGObject &, reco::PFCandidateEGammaExtra &)
float calculateEleMVA(const pfEGHelpers::HeavyObjectCache *hoc, const ProtoEGObject &, reco::PFCandidateEGammaExtra &) const
bool applyCrackCorrections
reco::ElectronSeedRef electronSeed
float evaluateSingleLegMVA(const pfEGHelpers::HeavyObjectCache *hoc, const reco::PFBlockRef &blockref, const reco::Vertex &primaryVtx, unsigned int trackIndex)
reco::PFBlockElementTrack PFKFElement
void linkRefinableObjectGSFTracksToKFs(ProtoEGObject &)
std::vector< PFKFFlaggedElement > primaryKFs
std::unordered_map< const PFClusterElement *, std::vector< PFClusterFlaggedElement > > ClusterMap
void fillPFCandidates(const pfEGHelpers::HeavyObjectCache *hoc, const std::list< ProtoEGObject > &, reco::PFCandidateCollection &, reco::PFCandidateEGammaExtraCollection &)
void removeOrLinkECALClustersToKFTracks()
reco::SuperCluster buildRefinedSuperCluster(const ProtoEGObject &)
void unlinkRefinableObjectKFandECALMatchedToHCAL(ProtoEGObject &, bool removeFreeECAL=false, bool removeSCECAL=false)
std::pair< const PFKFElement *, bool > PFKFFlaggedElement
void mergeROsByAnyLink(std::list< ProtoEGObject > &)
int attachPSClusters(const PFClusterElement *, ClusterMap::mapped_type &)
void linkRefinableObjectKFTracksToECAL(ProtoEGObject &)
void linkRefinableObjectSecondaryKFsToECAL(ProtoEGObject &)
void linkRefinableObjectConvSecondaryKFsToSecondaryKFs(ProtoEGObject &)
reco::PFCandidateCollection outcands_
std::vector< PFGSFFlaggedElement > primaryGSFs
std::pair< const PFBremElement *, bool > PFBremFlaggedElement
const ESChannelStatus * channelStatus_
void setESChannelStatus(const ESChannelStatus *channelStatus)
void linkRefinableObjectPrimaryGSFTrackToHCAL(ProtoEGObject &)