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_()
37 initImpactParameters();
43 embeddedGsfElectronCore_(
false),
44 embeddedGsfTrack_(
false),
45 embeddedSuperCluster_(
false),
46 embeddedPflowSuperCluster_(
false),
47 embeddedTrack_(
false),
48 embeddedSeedCluster_(
false),
49 embeddedRecHits_(
false),
50 embeddedPFCandidate_(
false),
51 ecalDrivenMomentum_(anElectron.
p4())
53 initImpactParameters();
59 embeddedGsfElectronCore_(
false),
60 embeddedGsfTrack_(
false),
61 embeddedSuperCluster_(
false),
62 embeddedPflowSuperCluster_(
false),
63 embeddedTrack_(
false),
64 embeddedSeedCluster_(
false),
65 embeddedRecHits_(
false),
66 embeddedPFCandidate_(
false),
67 ecalDrivenMomentum_(anElectronRef->
p4())
69 initImpactParameters();
75 embeddedGsfElectronCore_(
false),
76 embeddedGsfTrack_(
false),
77 embeddedSuperCluster_(
false),
78 embeddedPflowSuperCluster_(
false),
79 embeddedTrack_(
false),
80 embeddedSeedCluster_(
false),
81 embeddedRecHits_(
false),
82 embeddedPFCandidate_(
false),
83 ecalDrivenMomentum_(anElectronRef->
p4())
85 initImpactParameters();
98 out <<
"\tpat::Electron: ";
99 out << std::setiosflags(std::ios::right);
100 out << std::setiosflags(std::ios::fixed);
101 out << std::setprecision(3);
102 out <<
" E/pT/eta/phi "
142 std::unique_ptr<std::vector<reco::SuperCluster> > sc(
new std::vector<reco::SuperCluster>(
superCluster_));
144 (*sc)[0].setSeed(
seed());
146 if (
basicClusters_.size() && !(*sc)[0].clusters().isAvailable()) {
148 for (
unsigned int iclus=0; iclus<
basicClusters_.size(); ++iclus) {
151 (*sc)[0].setClusters(clusters);
158 (*sc)[0].setPreshowerClusters(clusters);
257 for(;itscl!=itsclE;++itscl){
269 for(;itscl!=itsclE;++itscl){
281 for(;itscl!=itsclE;++itscl){
293 for(;itscl!=itsclE;++itscl){
332 if (it->first == name)
return it->second;
335 ex <<
"pat::Electron: the ID " << name <<
" can't be found in this pat::Electron.\n";
336 ex <<
"The available IDs are: ";
338 ex <<
"'" << it->first <<
"' ";
347 if (it->first == name)
return true;
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.
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
bool isNonnull() const
Checks for non-null.
SuperClusterRef parentSuperCluster() const
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
double dB() const
the version without arguments returns PD2D, but with an absolute value (for backwards compatibility) ...
void push_back(Ptr< T > const &iPtr)
void embedSuperCluster()
method to store the electron's SuperCluster internally
void setDB(double dB, double edB, IpType type)
Set impact parameter of a certain type and its uncertainty.
void embedGsfElectronCore()
method to store the electron's core internally
std::vector< reco::SuperCluster > superCluster_
Place to store electron's supercluster internally.
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
virtual double eta() const
momentum pseudorapidity
virtual double pt() const
transverse momentum
std::vector< reco::CaloCluster > pflowBasicClusters_
Place to store electron's pflow basic clusters internally.
TrackRef closestCtfTrackRef() const
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.
virtual double energy() const
energy
std::vector< uint16_t > associatedPackedFCandidateIndices_
reco::SuperClusterRef superCluster() const
override the reco::GsfElectron::superCluster method, to access the internal storage of the superclust...
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::GsfTrackRef gsfTrack() const
override the reco::GsfElectron::gsfTrack method, to access the internal storage of the supercluster ...
reco::PFCandidateRef pfCandidateRef() const
reference to the source PFCandidates; null if this has been built from a standard electron ...
reco::TrackRef closestCtfTrackRef() const
override the reco::GsfElectron::closestCtfTrackRef method, to access the internal storage of the trac...
bool embeddedRecHits_
True if RecHits stored internally.
double edB() const
the version without arguments returns PD2D, but with an absolute value (for backwards compatibility) ...
virtual SuperClusterRef superCluster() const
reference to a SuperCluster
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...
std::vector< reco::GsfElectronCore > gsfElectronCore_
Place to store electron's gsfElectronCore internally.
float eip_[IpTypeSize]
Impact parameter uncertainty as recommended by the tracking group.
reco::SuperClusterRef parentSuperCluster() const
override the reco::GsfElectron::pflowSuperCluster method, to access the internal storage of the pflow...
virtual reco::GsfElectronCoreRef core() const
override the virtual reco::GsfElectron::core method, so that the embedded core can be used by GsfElec...
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
reco::TrackRef track() const
returns nothing. Use either gsfTrack or closestCtfTrack
bool embeddedGsfTrack_
True if electron's gsfTrack is stored internally.
bool set(std::unique_ptr< T > iNewValue) const
tuple idx
DEBUGGING if hasattr(process,"trackMonIterativeTracking2012"): print "trackMonIterativeTracking2012 D...
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
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< float > > LorentzVector
reco::CandidatePtr sourceCandidatePtr(size_type i) const
get the source candidate pointer with index i
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
volatile std::atomic< bool > shutdown_flag false
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
virtual ~Electron()
destructor
void embedTrack()
method to store the electron's Track internally
virtual double phi() const
momentum azimuthal angle
edm::RefVector< pat::PackedCandidateCollection > associatedPackedPFCandidates() const
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
void embedPFCandidate()
embed the PFCandidate pointed to by pfCandidateRef_
std::vector< reco::SuperCluster > pflowSuperCluster_
Place to store electron's pflow supercluster internally.
virtual GsfTrackRef gsfTrack() const
reference to a GsfTrack
float sigmaIetaIphi_
additional missing mva variables : 14/04/2012
std::vector< reco::CaloCluster > seedCluster_
Place to store electron's seed cluster internally.