|
|
Go to the documentation of this file.
3 #ifndef PhysicsTools_PatAlgos_PATElectronProducer_h
4 #define PhysicsTools_PatAlgos_PATElectronProducer_h
46 class TrackerIsolationPt;
47 class CaloIsolationEnergy;
82 typedef std::vector<edm::Handle<edm::Association<reco::GenParticleCollection> > >
GenAssociations;
84 std::vector<edm::EDGetTokenT<edm::Association<reco::GenParticleCollection> > >
genMatchTokens_;
143 bool primaryVertexIsValid,
145 bool beamspotIsValid);
152 template <
typename T>
154 const char* psetName,
159 typedef std::pair<std::string, edm::InputTag>
NameTag;
196 template <
typename T>
198 const char* psetName,
203 if (iConfig.
exists(psetName)) {
206 if (depconf.
exists(
"tracker"))
208 if (depconf.
exists(
"ecal"))
210 if (depconf.
exists(
"hcal"))
212 if (depconf.
exists(
"pfAllParticles")) {
215 if (depconf.
exists(
"pfChargedHadrons")) {
219 if (depconf.
exists(
"pfChargedAll")) {
222 if (depconf.
exists(
"pfPUChargedHadrons")) {
226 if (depconf.
exists(
"pfNeutralHadrons")) {
230 if (depconf.
exists(
"pfPhotons")) {
233 if (depconf.
exists(
"user")) {
234 std::vector<edm::InputTag> userdeps = depconf.
getParameter<std::vector<edm::InputTag> >(
"user");
235 std::vector<edm::InputTag>::const_iterator it = userdeps.begin(), ed = userdeps.end();
237 for (; it != ed; ++it, ++
key) {
pat::helper::MultiIsolator::IsolationValuePairs isolatorTmpStorage_
std::vector< edm::EDGetTokenT< edm::ValueMap< double > > > isolationValueNoPFIdTokens_
const bool embedGsfTrack_
std::vector< NameTag > elecIDSrcs_
std::vector< edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > > genMatchTokens_
edm::RefToBase< reco::GsfElectron > ElectronBaseRef
const bool addPFClusterIso_
void embedHighLevel(pat::Electron &anElectron, reco::GsfTrackRef track, reco::TransientTrack &tt, reco::Vertex &primaryVertex, bool primaryVertexIsValid, reco::BeamSpot &beamspot, bool beamspotIsValid)
std::pair< pat::IsolationKeys, edm::InputTag > IsolationLabel
void fillElectron2(Electron &anElectron, const reco::CandidatePtr &candPtrForIsolation, const reco::CandidatePtr &candPtrForGenMatch, const reco::CandidatePtr &candPtrForLoader, const GenAssociations &genMatches, const IsoDepositMaps &deposits, const IsolationValueMaps &isolationValues) const
edm::EDGetTokenT< edm::ValueMap< float > > PUPPINoLeptonsIsolation_photons_
void setElectronMiniIso(pat::Electron &anElectron, const pat::PackedCandidateCollection *pc)
pat::helper::KinResolutionsLoader resolutionLoader_
IsolationLabels isolationValueLabels_
const edm::EDGetTokenT< std::vector< reco::Vertex > > pvToken_
std::vector< edm::EDGetTokenT< edm::ValueMap< float > > > elecIDTokens_
const bool embedPflowBasicClusters_
const bool embedHighLevelSelection_
embed high level selection variables?
std::vector< edm::Handle< edm::ValueMap< IsoDeposit > > > IsoDepositMaps
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
pat::PATUserDataHelper< pat::Electron > userDataHelper_
edm::EDGetTokenT< edm::ValueMap< float > > PUPPINoLeptonsIsolation_charged_hadrons_
const bool addEfficiencies_
IsolationLabels isolationValueLabelsNoPFId_
std::pair< std::string, edm::InputTag > NameTag
std::vector< std::pair< pat::IsolationKeys, float > > IsolationValuePairs
const bool embedPreshowerClusters_
const GreaterByPt< Electron > pTComparator_
const edm::EDGetTokenT< edm::ValueMap< reco::PFCandidatePtr > > pfCandidateMapToken_
const edm::EDGetTokenT< reco::PFCandidateCollection > pfElecToken_
const bool embedPflowSuperCluster_
const bool embedSeedCluster_
primaryVertex
hltOfflineBeamSpot for HLTMON
const bool usePfCandidateMultiMap_
const edm::EDGetTokenT< edm::ValueMap< std::vector< reco::PFCandidateRef > > > pfCandidateMultiMapToken_
std::vector< edm::EDGetTokenT< edm::ValueMap< IsoDeposit > > > isoDepositTokens_
std::vector< edm::EDGetTokenT< edm::ValueMap< double > > > isolationValueTokens_
const bool embedBasicClusters_
const bool embedGsfElectronCore_
const edm::InputTag reducedEndcapRecHitCollection_
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
bool exists(std::string const ¶meterName) const
checks if a parameter exists
edm::EDGetTokenT< edm::ValueMap< float > > PUPPIIsolation_charged_hadrons_
const edm::EDGetTokenT< edm::ValueMap< float > > hcalPFClusterIsoT_
const bool embedSuperCluster_
const edm::InputTag reducedBarrelRecHitCollection_
std::vector< IsolationLabel > IsolationLabels
const edm::EDGetTokenT< EcalRecHitCollection > reducedEndcapRecHitCollectionToken_
const bool embedPflowPreshowerClusters_
const edm::EDGetTokenT< edm::View< reco::GsfElectron > > electronToken_
const CaloTopology * ecalTopology_
const bool embedPFCandidate_
const edm::EDGetTokenT< reco::ConversionCollection > hConversionsToken_
~PATElectronProducer() override
edm::EDGetTokenT< edm::ValueMap< float > > PUPPIIsolation_photons_
const bool addMVAVariables_
mva input variables
const bool useParticleFlow_
pflow specific
const bool addPuppiIsolation_
std::vector< pat::PackedCandidate > PackedCandidateCollection
PATElectronProducer(const edm::ParameterSet &iConfig)
pat::helper::MultiIsolator isolator_
std::vector< edm::Handle< edm::ValueMap< double > > > IsolationValueMaps
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::EDGetTokenT< pat::PackedCandidateCollection > pcToken_
IsolationKeys
Enum defining isolation keys.
std::vector< double > miniIsoParamsB_
void fillElectron(Electron &aElectron, const ElectronBaseRef &electronRef, const reco::CandidateBaseRef &baseRef, const GenAssociations &genMatches, const IsoDepositMaps &deposits, const bool pfId, const IsolationValueMaps &isolationValues, const IsolationValueMaps &isolationValuesNoPFId) const
common electron filling, for both the standard and PF2PAT case
const edm::EDGetTokenT< edm::ValueMap< float > > ecalPFClusterIsoT_
const edm::EDGetTokenT< reco::BeamSpot > beamLineToken_
T getParameter(std::string const &) const
edm::EDGetTokenT< edm::ValueMap< float > > PUPPINoLeptonsIsolation_neutral_hadrons_
std::vector< edm::Handle< edm::Association< reco::GenParticleCollection > > > GenAssociations
Analysis-level electron class.
const EcalClusterLazyTools::ESGetTokens ecalClusterToolsESGetTokens_
IsolationLabels isoDepositLabels_
std::vector< double > miniIsoParamsE_
const bool addResolutions_
pat::helper::EfficiencyLoader efficiencyLoader_
Produces pat::Electron's.
void readIsolationLabels(const edm::ParameterSet &iConfig, const char *psetName, IsolationLabels &labels, std::vector< edm::EDGetTokenT< edm::ValueMap< T > > > &tokens)
const edm::EDGetTokenT< EcalRecHitCollection > reducedBarrelRecHitCollectionToken_
edm::EDGetTokenT< edm::ValueMap< float > > PUPPIIsolation_neutral_hadrons_