ATLAS Offline Software
Loading...
Searching...
No Matches
Egamma_v1.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef XAODEGAMMA_VERSIONS_EGAMMA_V1_H
8#define XAODEGAMMA_VERSIONS_EGAMMA_V1_H
9
10// Core include(s):
11#include "AthLinks/ElementLink.h"
12
13// xAOD include(s):
14#include "xAODBase/IParticle.h"
15
16//Egamma includes
19
20//CaloCluster include
23
24//xAOD Primitives
28
29//Eigen/Amg includes , prefer to do it via EventPrimitives for now
31
32//std Include
33#include <stdint.h>
34
35// ROOT include(s):
36#include "Math/Vector4D.h"
37
38//Already include the DataVector specialization for this type
40
41
42namespace xAOD {
43
56 class Egamma_v1 :public IParticle {
57
58 protected:
63
65
67 Egamma_v1();
68
70 Egamma_v1(const Egamma_v1& eg );
72
73 public:
74
77
79 Egamma_v1& operator=(const Egamma_v1& eg);
80
82
83
87
89 virtual double pt() const override final;
90
92 virtual double eta() const override final;
93
95 virtual double phi() const override final;
96
98 virtual double e() const override;
99
101 virtual double rapidity() const override;
102
105
107 virtual FourMom_t p4() const override final;
108
110 virtual Type::ObjectType type() const override =0 ;
111
113
114
117
119 typedef ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiM4D<double> > GenVecFourMom_t;
120
123
125 void setPtEtaPhi(float pt, float eta, float phi);
126
128 void setPt(float pt);
129
131 void setEta(float eta);
132
134 void setPhi(float phi);
135
137
140
142 typedef Eigen::Matrix<float,4,4> EgammaCovMatrix_t;
143
146
150
153
156 size_t nCaloClusters() const;
157
161
165 caloClusterLink( size_t index = 0 ) const;
166
169
174
176
177
180
182 uint16_t author(uint16_t bitmask=EgammaParameters::AuthorALL) const;
183
185 void addAuthor( uint16_t );
186
188 void setAuthor( uint16_t );
190
194
198
199
205
207 bool showerShapeValue(float& value,const EgammaParameters::ShowerShapeType information) const;
208
211 float showerShapeValue(const EgammaParameters::ShowerShapeType information) const;
212
214 bool setShowerShapeValue(float value, const EgammaParameters::ShowerShapeType information) ;
215
217
218
221
223 bool isGoodOQ(uint32_t mask ) const;
224
226 uint32_t OQ( ) const;
227
229 void setOQ(uint32_t newOQ);
230
232
238
240 bool isolation(float& value, const Iso::IsolationType information) const;
241
244 float isolation(const Iso::IsolationType information) const;
245
247 bool setIsolation(float value, const Iso::IsolationType information);
248
249
251 bool isolationValue(float& value, const Iso::IsolationType information) const{
252
253 return isolation(value,information);
254 }
255
257 float isolationValue(const Iso::IsolationType information) const{
258
259 return isolation(information);
260 }
261
262 bool setIsolationValue(float value, const Iso::IsolationType information){
263 return setIsolation(value,information);
264 }
265
267
273
275 bool isolationCaloCorrection(float& value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr,
276 const Iso::IsolationCorrectionParameter param) const;
277
281 const Iso::IsolationCorrectionParameter param) const;
282
284 bool setIsolationCaloCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr,
286
289
293
296
298 bool isolationTrackCorrection(float& value, const Iso::IsolationFlavour flavour , const Iso::IsolationTrackCorrection corr ) const;
299
303
305 bool setIsolationTrackCorrection(float value, const Iso::IsolationFlavour flavour , const Iso::IsolationTrackCorrection corr);
306
307
309 bool isolationCorrectionBitset(std::bitset<32>& value, const Iso::IsolationFlavour flavour ) const;
310
313 std::bitset<32> isolationCorrectionBitset(const Iso::IsolationFlavour flavour ) const;
314
317
319
320
321
322
325
331 bool passSelection(bool& value, const std::string& menu ) const;
332
336 bool passSelection( const std::string& menu ) const;
337
339 void setPassSelection(bool value, const std::string& menu);
340
346 bool selectionisEM(unsigned int& value, const std::string& isEM) const;
347
351 unsigned int selectionisEM(const std::string& isEM) const;
352
354 void setSelectionisEM(unsigned int value, const std::string& isEM);
355
361 bool likelihoodValue(float& value, const std::string& LHValue=std::string("LHValue")) const;
362
366 float likelihoodValue(const std::string& LHValue=std::string("LHValue")) const;
367
369 void setLikelihoodValue(float value, const std::string& LHValue=std::string("LHValue"));
370
372
373
374 }; // class Egamma
375
376
377} // namespace xAOD
378
379//Finish declaration of IParticle as a base class of Egamma
381
382#endif // XAODEGAMMA_VERSIONS_EGAMMA_V1_H
ObjectType
Definition BaseObject.h:11
#define DATAVECTOR_BASE_FIN(T, B)
Used to finish up a forward declaration.
Definition DataVector.h:774
make the sidebar many part of the config
Definition hcg.cxx:552
void setSelectionisEM(unsigned int value, const std::string &isEM)
Set the isEM word for a selection menu (using the name)
void setAuthor(uint16_t)
set author
bool setShowerShapeValue(float value, const EgammaParameters::ShowerShapeType information)
Set method for Shower Shape values.
void setCaloClusterLinks(const CLELVec_t &links)
set Pointer to the xAOD::CaloCluster
const ElementLink< CaloClusterContainer > & caloClusterLink(size_t index=0) const
ElementLink to the xAOD::CaloCluster/s that match the electron candidate.
void setPassSelection(bool value, const std::string &menu)
Set the selection decision for a menu (using the name)
void setLikelihoodValue(float value, const std::string &LHValue=std::string("LHValue"))
Set the LHValue as float.
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal egamma type.
Definition Egamma_v1.cxx:82
EgammaCovMatrix_t covMatrix() const
Returns the 4x4 symmetric covariance matrix .
bool isolation(float &value, const Iso::IsolationType information) const
Accessor for Isolation values.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition Egamma_v1.cxx:66
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition Egamma_v1.h:104
void setCovMatrix(const EgammaCovMatrix_t &cov)
set the 4x4 symmetric covariance matrix .
void setEta(float eta)
set the eta
bool isolationCaloCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr, const Iso::IsolationCorrectionParameter param) const
Accessor for flavour and type depended Isolation Calo correction.
virtual double e() const override
The total energy of the particle.
Definition Egamma_v1.cxx:86
void setPhi(float phi)
set the phi
size_t nCaloClusters() const
Return the number of xAOD::CaloClusters that define the electron candidate.
virtual Type::ObjectType type() const override=0
The type of the object as a simple enumeration, remains pure virtual in e/gamma.
float isolationValue(const Iso::IsolationType information) const
old Accessor to Isolation values , this just returns the value without internaly checking if it exist...
Definition Egamma_v1.h:257
void setOQ(uint32_t newOQ)
Set the object quality.
bool showerShapeValue(float &value, const EgammaParameters::ShowerShapeType information) const
Accessor for ShowerShape values.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for egamma.
Definition Egamma_v1.h:119
std::vector< ElementLink< CaloClusterContainer > > CLELVec_t
Helper type definition.
Definition Egamma_v1.h:168
Egamma_v1(const Egamma_v1 &eg)
Copy constructor (default implementation)
Egamma_v1()
Default constructor.
Definition Egamma_v1.cxx:48
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition Egamma_v1.cxx:71
bool passSelection(const std::string &menu) const
Check if the egamma object pass a selection menu (using the name) If the particular menu decision is ...
bool selectionisEM(unsigned int &value, const std::string &isEM) const
Return the isEM word for a selection menu If the menu isEM is stored in this xAOD::Egamma,...
bool isGoodOQ(uint32_t mask) const
Check object quality. Return True is it is Good Object Quality.
void setPt(float pt)
set the Pt
bool likelihoodValue(float &value, const std::string &LHValue=std::string("LHValue")) const
Return the LH value as float If the LH decision is stored in this xAOD::Egamma, then the function fil...
uint32_t OQ() const
Return the object quality bit word.
bool passSelection(bool &value, const std::string &menu) const
Check if the egamma object pass a selection menu (using the name) If the menu decision is stored in t...
bool isolationValue(float &value, const Iso::IsolationType information) const
old Accessor for Isolation values.
Definition Egamma_v1.h:251
bool setIsolation(float value, const Iso::IsolationType information)
set method for Isolation values.
bool setIsolationValue(float value, const Iso::IsolationType information)
old set method for Isolation values.
Definition Egamma_v1.h:262
bool isolationCorrectionBitset(std::bitset< 32 > &value, const Iso::IsolationFlavour flavour) const
Accessor for Isolation corection Bitset.
float likelihoodValue(const std::string &LHValue=std::string("LHValue")) const
Return the LH value as float If the LH Value is not stored in this xAOD::Egamma, an exception will oc...
bool isolationTrackCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection corr) const
Accessor for Isolation Track correction.
virtual double rapidity() const override
The true rapidity (y) of the particle.
Definition Egamma_v1.cxx:90
void setPtEtaPhi(float pt, float eta, float phi)
set the 4-vec
Egamma_v1 & operator=(const Egamma_v1 &eg)
Assignment Operator. Using the assignment of SG::AuxElement.
Definition Egamma_v1.cxx:54
uint16_t author(uint16_t bitmask=EgammaParameters::AuthorALL) const
Get author.
void addAuthor(uint16_t)
add author
Eigen::Matrix< float, 4, 4 > EgammaCovMatrix_t
4x4 Covariance Matrix in EtEtaPhiM (needs decision)
Definition Egamma_v1.h:142
const Egamma_v1 * ambiguousObject() const
Get ambiguous.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle as a TLoretzVector.
Definition Egamma_v1.cxx:94
bool setIsolationTrackCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection corr)
Set method for Isolation Track Corrections.
bool setIsolationCorrectionBitset(uint32_t value, const Iso::IsolationFlavour flavour)
Set method for Isolation corection Bitset.
const CLELVec_t & caloClusterLinks() const
Get all cluster links.
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
Definition Egamma_v1.cxx:76
const xAOD::CaloCluster * caloCluster(size_t index=0) const
Pointer to the xAOD::CaloCluster/s that define the electron candidate.
bool setIsolationCaloCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr, const Iso::IsolationCorrectionParameter param)
set method for flavour and type depended Isolation Calo Corrections.
Class providing the definition of the 4-vector interface.
IParticle()=default
Selection rules: declare transient members.
Definition DataVector.h:581
Definition index.py:1
STL namespace.
Namespace holding the IsolationType enumeration.
IsolationType
Overall enumeration for isolation types in xAOD files.
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
IsolationCaloCorrection
Enumeration for different ways of correcting isolation in xAOD files.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.
setWord1 uint16_t
setEventNumber uint32_t