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);
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) {
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) {
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 <<
"' ";
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 ...
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.
edm::Ref< GsfElectronCoreCollection > GsfElectronCoreRef
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
reco::SuperClusterRef parentSuperCluster() const override
override the reco::GsfElectron::pflowSuperCluster method, to access the internal storage of the pflow...
bool set(std::unique_ptr< T > iNewValue) const
ret
prodAgent to be discontinued
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
bool isNonnull() const
Checks for non-null.
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
edm::RefVector< pat::PackedCandidateCollection > associatedPackedPFCandidates() const
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
std::vector< reco::CaloCluster > pflowBasicClusters_
Place to store electron's pflow basic clusters internally.
void embedPflowSuperCluster()
method to store the electron's PflowSuperCluster internally
reco::PFCandidateRef pfCandidateRef() const
reference to the source PFCandidates; null if this has been built from a standard electron ...
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.
bool isElectronIDAvailable(const std::string &name) const
Returns true if a specific ID is available in this pat::Electron.
bool embeddedRecHits_
True if RecHits stored internally.
~Electron() override
destructor
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
virtual GsfElectronCoreRef core() const
float electronID(const std::string &name) const
Returns a specific electron ID associated to the pat::Electron given its name.
ProductID id() const
Accessor for product ID.
EcalRecHitCollection recHits_
Place to store electron's RecHits internally (5x5 around seed+ all RecHits)
double dB() const
the version without arguments returns PD2D, but with an absolute value (for backwards compatibility) ...
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
bool embeddedGsfTrack_
True if electron's gsfTrack is stored internally.
reco::TrackRef track() const override
returns nothing. Use either gsfTrack or closestCtfTrack
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...
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
virtual TrackRef closestCtfTrackRef() const
virtual SuperClusterRef parentSuperCluster() const
std::vector< reco::CaloCluster > pflowPreshowerClusters_
Place to store electron's pflow preshower clusters internally.
double edB() const
the version without arguments returns PD2D, but with an absolute value (for backwards compatibility) ...
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
reco::CaloClusterPtr seed() const
direct access to the seed cluster
bool embeddedPFCandidate_
true if the IsolatedPFCandidate is embedded
void embedTrack()
method to store the electron's Track internally
reco::GsfElectronCoreRef core() const override
override the virtual reco::GsfElectron::core method, so that the embedded core can be used by GsfElec...
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() const
float sigmaIetaIphi_
additional missing mva variables : 14/04/2012
std::vector< reco::CaloCluster > seedCluster_
Place to store electron's seed cluster internally.