CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFCandidateEGammaExtra.h
Go to the documentation of this file.
1 #ifndef ParticleFlowCandidate_PFCandidateEGammaExtra_h
2 #define ParticleFlowCandidate_PFCandidateEGammaExtra_h
3 
9 
10 #include <iosfwd>
11 
12 namespace reco {
19  public:
20  enum StatusFlag {
21  X=0, // undefined
22  Selected, // selected
23  ECALDrivenPreselected, // ECAL-driven electron pre-selected
24  MVASelected, // Passed the internal particle-flow selection (mva selection)
25  Rejected // Rejected
26  };
27 
28  // if you had a variable update NMvaVariables
29  enum MvaVariable {
48  };
49 
50 
51  public:
58 
60  void setGsfTrackRef(const reco::GsfTrackRef& ref);
61 
63  void setKfTrackRef(const reco::TrackRef & ref);
64 
67 
69  reco::TrackRef kfTrackRef() const { return kfTrackRef_; }
70 
73 
76 
79 
82 
84  void addSingleLegConvTrackRef(const reco::TrackRef& trackref);
85 
87  const std::vector<reco::TrackRef>& singleLegConvTrackRef() const {return assoSingleLegRefTrack_;}
88 
90  void addSingleLegConvMva(float& mvasingleleg);
91 
93  const std::vector<float>& singleLegConvMva() const {return assoSingleLegMva_;}
94 
96  void addConversionRef(const reco::ConversionRef& convref);
97 
100 
102  void setLateBrem(float val);
104  void setEarlyBrem(float val);
105 
107  void setGsfTrackPout(const math::XYZTLorentzVector& pout);
108 
110  void setClusterEnergies(const std::vector<float>& energies);
111 
113  void setSigmaEtaEta(float val);
114 
116  void setDeltaEta(float val);
117 
119  void setHadEnergy(float val);
120 
122  void setMVA(float val);
123 
125  void setStatus(StatusFlag type,bool status=true);
126 
128  bool electronStatus(StatusFlag) const ;
129 
131  int electronStatus() const {return status_;}
132 
134  bool mvaStatus(MvaVariable flag) const;
135 
137  const std::vector<float> & mvaVariables() const {return mvaVariables_;}
138 
140  float mvaVariable(MvaVariable var) const;
141 
143  float hadEnergy() const {return hadEnergy_;}
144  float sigmaEtaEta() const {return sigmaEtaEta_;}
145 
146 
147  private:
148  void setVariable(MvaVariable type,float var);
149 
150  private:
155 
158 
161 
163  std::vector<reco::TrackRef> assoSingleLegRefTrack_;
164 
166  std::vector<float> assoSingleLegMva_;
167 
170 
172  std::vector<float> clusterEnergies_;
173 
175  std::vector<float> mvaVariables_;
176 
179 
181  int status_;
182 
185  float earlyBrem_;
186  float lateBrem_;
188  float hadEnergy_;
189  float deltaEta_;
190  };
191 
193  std::ostream& operator<<( std::ostream& out, const PFCandidateEGammaExtra& c );
194 
195 }
196 #endif
type
Definition: HCALResponse.h:21
long int flag
Definition: mlp_lapack.h:47
std::vector< float > clusterEnergies_
energy of individual clusters (corrected). The first cluster is the seed
void setSuperClusterRef(reco::SuperClusterRef sc)
set reference to the corresponding supercluster
reco::TrackRef kfTrackRef_
Ref to the KF track.
void addSingleLegConvTrackRef(const reco::TrackRef &trackref)
add Single Leg Conversion TrackRef
void setStatus(StatusFlag type, bool status=true)
set status
int status_
Status of the electron.
void setHadEnergy(float val)
set the had energy. The cluster energies should be entered before
reco::TrackRef kfTrackRef() const
return a reference to the corresponding KF track
int mvaStatus_
status of mva variables
reco::SuperClusterRef superClusterRef() const
return a reference to the corresponding supercluster
void setGsfTrackRef(const reco::GsfTrackRef &ref)
set gsftrack reference
float hadEnergy() const
access to specific variables
reco::SuperClusterRef superClusterBoxRef() const
return a reference to the corresponding box supercluster
reco::ConversionRefVector assoConversionsRef_
vector of ConversionRef from PF
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
void setSigmaEtaEta(float val)
set the sigmaetaeta
const std::vector< reco::TrackRef > & singleLegConvTrackRef() const
return vector of Single Leg Conversion TrackRef from
std::vector< float > mvaVariables_
mva variables - transient !
std::ostream & operator<<(std::ostream &, BeamSpot beam)
Definition: BeamSpot.cc:72
void setEarlyBrem(float val)
set EarlyBrem
void setVariable(MvaVariable type, float var)
void setGsfTrackPout(const math::XYZTLorentzVector &pout)
set the pout (not trivial to get from the GSF track)
reco::GsfTrackRef gsfTrackRef_
Ref to the GSF track.
void setSuperClusterBoxRef(reco::SuperClusterRef sc)
set reference to the corresponding supercluster
int electronStatus() const
access to the status
const std::vector< float > & singleLegConvMva() const
return Single Leg Conversion mva
tuple out
Definition: dbtoconf.py:99
void setClusterEnergies(const std::vector< float > &energies)
set the cluster energies. the Pout should be saved first
reco::GsfTrackRef gsfTrackRef() const
return a reference to the corresponding GSF track
reco::SuperClusterRef scRef_
Ref to (refined) supercluster.
math::XYZTLorentzVector pout_
Variables entering the MVA that should be saved.
void setDeltaEta(float val)
set the delta eta
void addSingleLegConvMva(float &mvasingleleg)
add Single Leg Conversion mva
bool mvaStatus(MvaVariable flag) const
access to mva variable status
void addConversionRef(const reco::ConversionRef &convref)
add Conversions from PF
void setKfTrackRef(const reco::TrackRef &ref)
set kf track reference
void setMVA(float val)
set the result (mostly for debugging)
reco::SuperClusterRef scBoxRef_
Ref to box supercluster.
reco::ConversionRefVector conversionRef() const
return Conversions from PF
void setLateBrem(float val)
set LateBrem
tuple status
Definition: ntuplemaker.py:245
float mvaVariable(MvaVariable var) const
access to any variable
std::vector< reco::TrackRef > assoSingleLegRefTrack_
vector of TrackRef from Single Leg conversions
const std::vector< float > & mvaVariables() const
access to the mva variables
std::vector< float > assoSingleLegMva_
vector of Mvas from Single Leg conversions