15 embeddedGsfElectronCore_(
false),
16 embeddedGsfTrack_(
false),
17 embeddedSuperCluster_(
false),
18 embeddedPflowSuperCluster_(
false),
19 embeddedTrack_(
false),
20 embeddedSeedCluster_(
false),
21 embeddedRecHits_(
false),
22 embeddedPFCandidate_(
false),
27 ecalRegressionEnergy_(0.0),
28 ecalTrackRegressionEnergy_(0.0),
29 ecalRegressionError_(0.0),
30 ecalTrackRegressionError_(0.0),
33 ecalRegressionScale_(-99999.),
34 ecalRegressionSmear_(-99999.),
35 ecalTrackRegressionScale_(-99999.),
36 ecalTrackRegressionSmear_(-99999.),
37 packedPFCandidates_(),
38 associatedPackedFCandidateIndices_()
46 embeddedGsfElectronCore_(
false),
47 embeddedGsfTrack_(
false),
48 embeddedSuperCluster_(
false),
49 embeddedPflowSuperCluster_(
false),
50 embeddedTrack_(
false),
51 embeddedSeedCluster_(
false),
52 embeddedRecHits_(
false),
53 embeddedPFCandidate_(
false),
54 ecalDrivenMomentum_(anElectron.
p4()),
65 embeddedGsfElectronCore_(
false),
66 embeddedGsfTrack_(
false),
67 embeddedSuperCluster_(
false),
68 embeddedPflowSuperCluster_(
false),
69 embeddedTrack_(
false),
70 embeddedSeedCluster_(
false),
71 embeddedRecHits_(
false),
72 embeddedPFCandidate_(
false),
73 ecalDrivenMomentum_(anElectronRef->
p4()),
84 embeddedGsfElectronCore_(
false),
85 embeddedGsfTrack_(
false),
86 embeddedSuperCluster_(
false),
87 embeddedPflowSuperCluster_(
false),
88 embeddedTrack_(
false),
89 embeddedSeedCluster_(
false),
90 embeddedRecHits_(
false),
91 embeddedPFCandidate_(
false),
92 ecalDrivenMomentum_(anElectronRef->
p4()),
110 out <<
"\tpat::Electron: ";
111 out << std::setiosflags(std::ios::right);
112 out << std::setiosflags(std::ios::fixed);
113 out << std::setprecision(3);
114 out <<
" E/pT/eta/phi "
124 for (
int i_ = 0; i_<5; ++i_){
156 std::unique_ptr<std::vector<reco::SuperCluster> > sc(
new std::vector<reco::SuperCluster>(
superCluster_));
158 (*sc)[0].setSeed(
seed());
160 if (
basicClusters_.size() && !(*sc)[0].clusters().isAvailable()) {
162 for (
unsigned int iclus=0; iclus<
basicClusters_.size(); ++iclus) {
165 (*sc)[0].setClusters(clusters);
172 (*sc)[0].setPreshowerClusters(clusters);
271 for(;itscl!=itsclE;++itscl){
283 for(;itscl!=itsclE;++itscl){
295 for(;itscl!=itsclE;++itscl){
307 for(;itscl!=itsclE;++itscl){
346 if (it->first == name)
return it->second;
349 ex <<
"pat::Electron: the ID " << name <<
" can't be found in this pat::Electron.\n";
350 ex <<
"The available IDs are: ";
352 ex <<
"'" << it->first <<
"' ";
361 if (it->first == name)
return true;
493 throw cms::Exception(
"Unsupported",
"setAssociatedPackedPFCandidates pointing to a collection other than the one from setPackedPFCandidateCollection");
double edB(IpType type=None) const
Uncertainty on the corresponding impact parameter.
edm::Ref< GsfTrackCollection > GsfTrackRef
persistent reference to a GsfTrack
virtual ~Electron()
destructor
bool embeddedTrack_
True if electron's track is stored internally.
std::vector< reco::GsfTrack > gsfTrack_
Place to store electron's gsfTrack internally.
edm::Ref< GsfElectronCoreCollection > GsfElectronCoreRef
void embedTrack()
method to store the electron's Track internally
void embedSeedCluster()
method to store the electron's seedcluster internally
SuperClusterRef parentSuperCluster() const
void embedGsfElectronCore()
method to store the electron's core internally
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
void embedPflowBasicClusters()
method to store the electron's pflow basic clusters
virtual float pt() const
transverse momentum
reco::TrackRef closestCtfTrackRef() const
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 embedPFCandidate()
embed the PFCandidate pointed to by pfCandidateRef_
void push_back(Ptr< T > const &iPtr)
virtual float phi() const
momentum azimuthal angle
void setDB(double dB, double edB, IpType type=None)
Set impact parameter of a certain type and its uncertainty.
reco::SuperClusterRef superCluster() const
override the reco::GsfElectron::superCluster method, to access the internal storage of the superclust...
void setAssociatedPackedPFCandidates(const edm::RefVector< pat::PackedCandidateCollection > &refvector)
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
reco::TrackRef track() const
returns nothing. Use either gsfTrack or closestCtfTrack
std::vector< reco::SuperCluster > superCluster_
Place to store electron's supercluster internally.
reco::GsfTrackRef gsfTrack() const
override the reco::GsfElectron::gsfTrack method, to access the internal storage of the supercluster ...
double dB_
Impact parameter at the primary vertex.
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
void embedPreshowerClusters()
method to store the electron's preshower clusters
std::vector< reco::CaloCluster > pflowBasicClusters_
Place to store electron's pflow basic clusters internally.
TrackRef closestCtfTrackRef() const
reco::CaloClusterPtr seed() const
direct access to the seed cluster
edm::RefProd< pat::PackedCandidateCollection > packedPFCandidates_
void embedBasicClusters()
method to store the electron's basic clusters
std::vector< reco::CaloCluster > basicClusters_
Place to store electron's basic clusters internally.
bool isNonnull() const
Checks for non-null.
virtual double energy() const
energy
std::vector< uint16_t > associatedPackedFCandidateIndices_
std::ostream & operator<<(std::ostream &, BeamSpot beam)
std::vector< reco::CaloCluster > preshowerClusters_
Place to store electron's preshower clusters internally.
ProductID id() const
Accessor for product ID.
bool embeddedRecHits_
True if RecHits stored internally.
void embedRecHits(const EcalRecHitCollection *rechits)
method to store the RecHits internally - can be called from the PATElectronProducer ...
virtual float eta() const
momentum pseudorapidity
virtual SuperClusterRef superCluster() const
reference to a SuperCluster
enum pat::Electron::IPTYPE IpType
Analysis-level lepton class.
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...
virtual reco::GsfElectronCoreRef core() const
override the virtual reco::GsfElectron::core method, so that the embedded core can be used by GsfElec...
std::vector< reco::GsfElectronCore > gsfElectronCore_
Place to store electron's gsfElectronCore internally.
reco::PFCandidateRef pfCandidateRef() const
reference to the source PFCandidates; null if this has been built from a standard electron ...
Electron()
default constructor
void initImpactParameters()
init impact parameter defaults (for use in a constructor)
edm::Ref< PFCandidateCollection > PFCandidateRef
persistent reference to a PFCandidate
void embedGsfTrack()
method to store the electron's GsfTrack internally
EcalRecHitCollection recHits_
Place to store electron's RecHits internally (5x5 around seed+ all RecHits)
void setPackedPFCandidateCollection(const edm::RefProd< pat::PackedCandidateCollection > &refprod)
References to PFCandidates (e.g. to recompute isolation)
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
double edB_
Impact paramater uncertainty at the primary vertex.
float electronID(const std::string &name) const
Returns a specific electron ID associated to the pat::Electron given its name.
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
void embedPflowSuperCluster()
method to store the electron's PflowSuperCluster internally
Analysis-level electron class.
std::vector< IdPair > electronIDs_
Electron IDs.
math::XYZTLorentzVector LorentzVector
Lorentz vector.
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
bool embeddedSuperCluster_
True if electron's supercluster is stored internally.
bool isElectronIDAvailable(const std::string &name) const
Returns true if a specific ID is available in this pat::Electron.
std::vector< reco::CaloCluster > pflowPreshowerClusters_
Place to store electron's pflow preshower clusters internally.
bool isNonnull() const
Checks for non-null.
ProductID id() const
Accessor for product ID.
reco::SuperClusterRef parentSuperCluster() const
override the reco::GsfElectron::pflowSuperCluster method, to access the internal storage of the pflow...
edm::RefVector< pat::PackedCandidateCollection > associatedPackedPFCandidates() const
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
float sigmaIetaIphi() const
bool cachedDB_
True if impact parameter has been cached.
std::vector< double > ip_
Impact parameter at the primary vertex,.
volatile std::atomic< bool > shutdown_flag false
std::vector< bool > cachedIP_
True if the IP (former dB) has been cached.
bool embeddedPFCandidate_
true if the IsolatedPFCandidate is embedded
void setMvaVariables(double sigmaIetaIphi, double ip3d)
set missing mva input variables
reco::CandidatePtr sourceCandidatePtr(size_type i) const
get the source candidate pointer with index i
double dB(IpType type=None) const
Impact parameter wrt primary vertex or beamspot.
void embedPflowPreshowerClusters()
method to store the electron's pflow preshower clusters
std::vector< double > eip_
Impact parameter uncertainty as recommended by the tracking group.
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.