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_()
40 initImpactParameters();
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()),
59 initImpactParameters();
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()),
78 initImpactParameters();
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()),
97 initImpactParameters();
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");
498 associatedPackedFCandidateIndices_.clear();
500 associatedPackedFCandidateIndices_.push_back(ref.key());
void setMvaVariables(double sigmaIetaIphi, double ip3d)
set missing mva input variables
edm::Ref< GsfTrackCollection > GsfTrackRef
persistent reference to a GsfTrack
void setPackedPFCandidateCollection(const edm::RefProd< pat::PackedCandidateCollection > &refprod)
References to PFCandidates (e.g. to recompute isolation)
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.
void setDB(double dB, double edB, IpType type=None)
Set impact parameter of a certain type and its uncertainty.
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)
virtual float pt() const
transverse momentum
void push_back(Ptr< T > const &iPtr)
double edB(IpType type=None) const
Uncertainty on the corresponding impact parameter.
virtual float phi() const
momentum azimuthal angle
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.
double dB_
Impact parameter at the primary vertex.
edm::Ptr< CaloCluster > CaloClusterPtr
std::vector< reco::Track > track_
Place to store electron's track internally.
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...
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.
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 ...
ProductID id() const
Accessor for product ID.
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.
virtual float eta() const
momentum pseudorapidity
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...
double dB(IpType type=None) const
Impact parameter wrt primary vertex or beamspot.
std::vector< reco::GsfElectronCore > gsfElectronCore_
Place to store electron's gsfElectronCore internally.
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
double edB_
Impact paramater uncertainty at the primary vertex.
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
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.
bool isNonnull() const
Checks for non-null.
ProductID id() const
Accessor for product ID.
float sigmaIetaIphi() const
bool cachedDB_
True if impact parameter has been cached.
reco::CaloClusterPtr seed() const
direct access to the seed cluster
std::vector< double > ip_
Impact parameter at the primary vertex,.
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
std::vector< bool > cachedIP_
True if the IP (former dB) has been cached.
Electron()
default constructor
bool embeddedPFCandidate_
true if the IsolatedPFCandidate is embedded
virtual ~Electron()
destructor
void embedTrack()
method to store the electron's Track internally
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< 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.