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
bool isNonnull() const
Checks for non-null.
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.
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.
const T & max(const T &a, const T &b)
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.