15 embeddedGsfElectronCore_(
false),
16 embeddedGsfTrack_(
false),
17 embeddedSuperCluster_(
false),
18 embeddedPflowSuperCluster_(
false),
19 embeddedTrack_(
false),
20 embeddedSeedCluster_(
false),
21 embeddedRecHits_(
false),
22 embeddedPFCandidate_(
false),
24 ecalRegressionEnergy_(0.0),
25 ecalTrackRegressionEnergy_(0.0),
26 ecalRegressionError_(0.0),
27 ecalTrackRegressionError_(0.0),
30 ecalRegressionScale_(-99999.),
31 ecalRegressionSmear_(-99999.),
32 ecalTrackRegressionScale_(-99999.),
33 ecalTrackRegressionSmear_(-99999.),
34 packedPFCandidates_(),
35 associatedPackedFCandidateIndices_() {
36 initImpactParameters();
42 embeddedGsfElectronCore_(
false),
43 embeddedGsfTrack_(
false),
44 embeddedSuperCluster_(
false),
45 embeddedPflowSuperCluster_(
false),
46 embeddedTrack_(
false),
47 embeddedSeedCluster_(
false),
48 embeddedRecHits_(
false),
49 embeddedPFCandidate_(
false),
50 ecalDrivenMomentum_(anElectron.p4()) {
51 initImpactParameters();
57 embeddedGsfElectronCore_(
false),
58 embeddedGsfTrack_(
false),
59 embeddedSuperCluster_(
false),
60 embeddedPflowSuperCluster_(
false),
61 embeddedTrack_(
false),
62 embeddedSeedCluster_(
false),
63 embeddedRecHits_(
false),
64 embeddedPFCandidate_(
false),
65 ecalDrivenMomentum_(anElectronRef->p4()) {
66 initImpactParameters();
72 embeddedGsfElectronCore_(
false),
73 embeddedGsfTrack_(
false),
74 embeddedSuperCluster_(
false),
75 embeddedPflowSuperCluster_(
false),
76 embeddedTrack_(
false),
77 embeddedSeedCluster_(
false),
78 embeddedRecHits_(
false),
79 embeddedPFCandidate_(
false),
80 ecalDrivenMomentum_(anElectronRef->p4()) {
81 initImpactParameters();
92 out <<
"\tpat::Electron: ";
93 out << std::setiosflags(std::ios::right);
94 out << std::setiosflags(std::ios::fixed);
95 out << std::setprecision(3);
96 out <<
" E/pT/eta/phi " << obj.
energy() <<
"/" << obj.
pt() <<
"/" << obj.
eta() <<
"/" << obj.
phi();
130 std::unique_ptr<std::vector<reco::SuperCluster> > sc(
new std::vector<reco::SuperCluster>(
superCluster_));
132 (*sc)[0].setSeed(
seed());
134 if (!
basicClusters_.empty() && !(*sc)[0].clusters().isAvailable()) {
136 for (
unsigned int iclus = 0; iclus <
basicClusters_.size(); ++iclus) {
139 (*sc)[0].setClusters(clusters);
146 (*sc)[0].setPreshowerClusters(clusters);
242 for (; itscl != itsclE; ++itscl) {
254 for (; itscl != itsclE; ++itscl) {
266 for (; itscl != itsclE; ++itscl) {
278 for (; itscl != itsclE; ++itscl) {
295 if (rechits !=
nullptr) {
317 if (it->first == name)
321 ex <<
"pat::Electron: the ID " << name <<
" can't be found in this pat::Electron.\n";
322 ex <<
"The available IDs are: ";
324 ex <<
"'" << it->first <<
"' ";
333 if (it->first == name)
void setMvaVariables(double sigmaIetaIphi, double ip3d)
set missing mva input variables
edm::Ref< GsfTrackCollection > GsfTrackRef
persistent reference to a GsfTrack
uint8_t cachedIP_
True if the IP (former dB) has been cached.
void embedRecHits(const EcalRecHitCollection *rechits)
method to store the RecHits internally - can be called from the PATElectronProducer ...
tuple ret
prodAgent to be discontinued
bool embeddedTrack_
True if electron's track is stored internally.
reco::CandidatePtr sourceCandidatePtr(size_type i) const override
get the source candidate pointer with index i
std::vector< reco::GsfTrack > gsfTrack_
Place to store electron's gsfTrack internally.
bool isElectronIDAvailable(const std::string &name) const
Returns true if a specific ID is available in this pat::Electron.
edm::Ref< GsfElectronCoreCollection > GsfElectronCoreRef
virtual TrackRef closestCtfTrackRef() const
bool isNonnull() const
Checks for non-null.
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
virtual SuperClusterRef parentSuperCluster() const
double pt() const final
transverse momentum
double dB() const
the version without arguments returns PD2D, but with an absolute value (for backwards compatibility) ...
reco::SuperClusterRef parentSuperCluster() const override
override the reco::GsfElectron::pflowSuperCluster method, to access the internal storage of the pflow...
void push_back(Ptr< T > const &iPtr)
reco::TrackRef closestCtfTrackRef() const override
override the reco::GsfElectron::closestCtfTrackRef method, to access the internal storage of the trac...
void embedSuperCluster()
method to store the electron's SuperCluster internally
void embedGsfElectronCore()
method to store the electron's core internally
std::vector< reco::SuperCluster > superCluster_
Place to store electron's supercluster internally.
reco::GsfTrackRef gsfTrack() const override
override the reco::GsfElectron::gsfTrack method, to access the internal storage of the supercluster ...
reco::SuperClusterRef superCluster() const override
override the reco::GsfElectron::superCluster method, to access the internal storage of the superclust...
edm::Ptr< CaloCluster > CaloClusterPtr
std::vector< reco::Track > track_
Place to store electron's track internally.
bool embeddedGsfElectronCore_
True if electron's gsfElectronCore is stored internally.
edm::Ref< SuperClusterCollection > SuperClusterRef
reference to an object in a collection of SuperCluster objects
std::vector< reco::CaloCluster > pflowBasicClusters_
Place to store electron's pflow basic clusters internally.
void embedPflowSuperCluster()
method to store the electron's PflowSuperCluster internally
edm::RefProd< pat::PackedCandidateCollection > packedPFCandidates_
std::vector< reco::CaloCluster > basicClusters_
Place to store electron's basic clusters internally.
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
std::vector< uint16_t > associatedPackedFCandidateIndices_
void setDB(double dB, double edB, IPTYPE type)
Set impact parameter of a certain type and its uncertainty.
void embedSeedCluster()
method to store the electron's seedcluster internally
std::ostream & operator<<(std::ostream &, BeamSpot beam)
std::vector< reco::CaloCluster > preshowerClusters_
Place to store electron's preshower clusters internally.
reco::PFCandidateRef pfCandidateRef() const
reference to the source PFCandidates; null if this has been built from a standard electron ...
bool embeddedRecHits_
True if RecHits stored internally.
~Electron() override
destructor
double edB() const
the version without arguments returns PD2D, but with an absolute value (for backwards compatibility) ...
Analysis-level lepton class.
float electronID(const std::string &name) const
Returns a specific electron ID associated to the pat::Electron given its name.
bool embeddedSeedCluster_
True if seed cluster is stored internally.
edm::AtomicPtrCache< std::vector< reco::SuperCluster > > superClusterRelinked_
Place to temporarily store the electron's supercluster after relinking the seed to it...
math::XYZTLorentzVector LorentzVector
std::vector< reco::GsfElectronCore > gsfElectronCore_
Place to store electron's gsfElectronCore internally.
float eip_[IpTypeSize]
Impact parameter uncertainty as recommended by the tracking group.
void embedPflowBasicClusters()
method to store the electron's pflow basic clusters
edm::Ref< PFCandidateCollection > PFCandidateRef
persistent reference to a PFCandidate
void embedBasicClusters()
method to store the electron's basic clusters
void embedGsfTrack()
method to store the electron's GsfTrack internally
EcalRecHitCollection recHits_
Place to store electron's RecHits internally (5x5 around seed+ all RecHits)
reco::PFCandidateCollection pfCandidate_
A copy of the source IsolatedPFCandidate is stored in this vector if embeddedPFCandidate_ if True...
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
void fill(std::map< std::string, TH1 * > &h, const std::string &s, double x)
bool embeddedGsfTrack_
True if electron's gsfTrack is stored internally.
reco::TrackRef track() const override
returns nothing. Use either gsfTrack or closestCtfTrack
bool set(std::unique_ptr< T > iNewValue) const
bool embeddedPflowSuperCluster_
True if electron's pflowsupercluster is stored internally.
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Analysis-level electron class.
std::vector< IdPair > electronIDs_
Electron IDs.
reco::PFCandidateRef pfCandidateRef_
reference to the IsolatedPFCandidate this has been built from; null if this has been built from a sta...
virtual GsfElectronCoreRef core() const
float ip_[IpTypeSize]
Impact parameter at the primary vertex,.
bool embeddedSuperCluster_
True if electron's supercluster is stored internally.
void embedPreshowerClusters()
method to store the electron's preshower clusters
std::vector< reco::CaloCluster > pflowPreshowerClusters_
Place to store electron's pflow preshower clusters internally.
ProductID id() const
Accessor for product ID.
float sigmaIetaIphi() const
reco::CaloClusterPtr seed() const
direct access to the seed cluster
void initImpactParameters()
init impact parameter defaults (for use in a constructor)
void embedPflowPreshowerClusters()
method to store the electron's pflow preshower clusters
Electron()
default constructor
bool embeddedPFCandidate_
true if the IsolatedPFCandidate is embedded
void embedTrack()
method to store the electron's Track internally
double phi() const final
momentum azimuthal angle
reco::GsfElectronCoreRef core() const override
override the virtual reco::GsfElectron::core method, so that the embedded core can be used by GsfElec...
edm::RefVector< pat::PackedCandidateCollection > associatedPackedPFCandidates() const
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
SuperClusterRef superCluster() const override
reference to a SuperCluster
void embedPFCandidate()
embed the PFCandidate pointed to by pfCandidateRef_
std::vector< reco::SuperCluster > pflowSuperCluster_
Place to store electron's pflow supercluster internally.
float sigmaIetaIphi_
additional missing mva variables : 14/04/2012
double energy() const final
energy
double eta() const final
momentum pseudorapidity
std::vector< reco::CaloCluster > seedCluster_
Place to store electron's seed cluster internally.