ATLAS Offline Software
TauConstituent.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef PANTAUALGS_TAUCONSTITUENT_H
6 #define PANTAUALGS_TAUCONSTITUENT_H
7 
8 #include <string>
9 #include <vector>
10 
11 #include "xAODBase/IParticle.h"
12 #include "xAODPFlow/PFO.h"
13 #include <TLorentzVector.h>
14 
15 
16 namespace PanTau {
17 
26 
27  public:
28 
42  enum Type {
43  t_NoType = 0,
44  t_Charged = 1,
45  t_Neutral = 2,
46  t_Pi0Neut = 3,
47  t_OutChrg = 4,
48  t_OutNeut = 5,
51  t_nTypes = 8
52  };
53 
54  static double DefaultBDTValue() {return -4711.1337;}
55  static double DefaultCharge() {return -47111337;}
56  static std::string AllConstituentsName() {return "All";}
57 
58  static std::string getTypeName(PanTau::TauConstituent::Type aType);
59  static bool isNeutralType(int tauConstituentType);
60  static bool isCoreType(int tauConstituentType);
61 
62 
65 
71  TauConstituent(const TLorentzVector& itsMomentum,
72  int itsCharge,
73  const std::vector<int>& itsType,
74  double itsBDTValue,
75  const xAOD::PFO* itsPFO);
76 
77 
79  virtual ~TauConstituent();
80 
81 
83  TauConstituent(const TauConstituent& tauConst);
84 
86  TauConstituent& operator=(const TauConstituent& tauConst);
87 
91 
93  virtual double pt() const;
94 
96  virtual double eta() const;
97 
99  virtual double phi() const;
100 
102  virtual double m() const;
103 
105  virtual double e() const;
106 
108  virtual double rapidity() const;
109 
112 
114  virtual FourMom_t p4() const;
115 
117  virtual xAOD::Type::ObjectType type() const;
118 
119 
121  void setP4(float pt, float eta, float phi, float m);
122 
124  void setPt(float pt);
125 
127  void setEta(float eta);
128 
130  void setPhi(float phi);
131 
133  void setM(float m);
134 
135 
136  //no setter functions needed as all properties are set in constructor
138 
139  //Getter functions
140  std::vector<std::string> getTypeName() const;
141  std::string getTypeNameString() const;
142  std::vector<int> getTypeFlags() const;
143  bool isOfType(TauConstituent::Type aType) const;
144  double getBDTValue() const;
145  int getCharge() const;
146  const xAOD::PFO* getPFO() const;
147 
148  void addShot(TauConstituent* shot);
149  std::vector<TauConstituent*> getShots() const;
150  unsigned int getNShots() const;
151 
152  void setNPhotonsInShot(int nPhotons);
153  int getNPhotonsInShot() const;
154 
155  private:
156 
159 
160 
161  protected:
162 
163  std::vector<int> m_TypeFlags;
164  double m_BDTValue;
165  int m_Charge;
166 
167  const xAOD::PFO* m_PFO;
168 
169  // the constituents in there are owned by this! delete them!
170  std::vector<TauConstituent*> m_Shots;
172 
173  };
174 
175 
176 } //end namespace
177 #endif // PANTAUALGS_TAUCONSTITUENT_H
PanTau::TauConstituent::m_p4
FourMom_t m_p4
4-momentum object
Definition: TauConstituent.h:158
PanTau::TauConstituent::t_Neutral
@ t_Neutral
Definition: TauConstituent.h:45
PanTau::TauConstituent::Type
Type
Type enumeration to specify type of this tau constituent.
Definition: TauConstituent.h:42
IParticle.h
PanTau::TauConstituent::t_Charged
@ t_Charged
Definition: TauConstituent.h:44
ObjectType
ObjectType
Definition: BaseObject.h:11
PanTau::TauConstituent::~TauConstituent
virtual ~TauConstituent()
Destructor.
Definition: TauConstituent.cxx:42
PanTau::TauConstituent::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
Definition: TauConstituent.cxx:82
PanTau::TauConstituent::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle as a TLorentzVector.
Definition: TauConstituent.cxx:100
PanTau::TauConstituent::getNPhotonsInShot
int getNPhotonsInShot() const
Definition: TauConstituent.cxx:276
PanTau::TauConstituent::getTypeNameString
std::string getTypeNameString() const
Definition: TauConstituent.cxx:216
PanTau::TauConstituent::setNPhotonsInShot
void setNPhotonsInShot(int nPhotons)
Definition: TauConstituent.cxx:271
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
PanTau::TauConstituent::m_PFO
const xAOD::PFO * m_PFO
Definition: TauConstituent.h:167
jet::JetIsolation::FourMom_t
TLorentzVector FourMom_t
Definition: JetIsolationTool.cxx:19
PanTau::TauConstituent::TauConstituent
TauConstituent()
Default Constructor for POOL.
Definition: TauConstituent.cxx:7
PanTau::TauConstituent::getBDTValue
double getBDTValue() const
Definition: TauConstituent.cxx:227
xAOD::IParticle::FourMom_t
TLorentzVector FourMom_t
Definition of the 4-momentum type.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:68
PanTau::TauConstituent::t_OutNeut
@ t_OutNeut
Definition: TauConstituent.h:48
PanTau::TauConstituent::isNeutralType
static bool isNeutralType(int tauConstituentType)
Definition: TauConstituent.cxx:173
PFO.h
PanTau::TauConstituent::DefaultBDTValue
static double DefaultBDTValue()
Definition: TauConstituent.h:54
PanTau::TauConstituent::AllConstituentsName
static std::string AllConstituentsName()
Definition: TauConstituent.h:56
PanTau::TauConstituent::setEta
void setEta(float eta)
set the eta
Definition: TauConstituent.cxx:124
PanTau::TauConstituent::getTypeName
std::vector< std::string > getTypeName() const
Definition: TauConstituent.cxx:204
PanTau::TauConstituent::m_Charge
int m_Charge
Definition: TauConstituent.h:165
PanTau::TauConstituent::getNShots
unsigned int getNShots() const
Definition: TauConstituent.cxx:266
PanTau::TauConstituent::rapidity
virtual double rapidity() const
The true rapidity (y) of the particle.
Definition: TauConstituent.cxx:96
xAODType
Definition: ObjectType.h:13
PanTau::TauConstituent::FourMom_t
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition: TauConstituent.h:111
PanTau::TauConstituent::addShot
void addShot(TauConstituent *shot)
Definition: TauConstituent.cxx:256
PanTau::TauConstituent::setPhi
void setPhi(float phi)
set the phi
Definition: TauConstituent.cxx:131
xAOD::PFO_v1
Class describing a particle flow object.
Definition: PFO_v1.h:35
PanTau::TauConstituent::m_TypeFlags
std::vector< int > m_TypeFlags
Definition: TauConstituent.h:163
PanTau::TauConstituent::setPt
void setPt(float pt)
set the Pt
Definition: TauConstituent.cxx:117
PanTau::TauConstituent::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
Definition: TauConstituent.cxx:77
PanTau::TauConstituent::m_Shots
std::vector< TauConstituent * > m_Shots
Definition: TauConstituent.h:170
PanTau::TauConstituent::isOfType
bool isOfType(TauConstituent::Type aType) const
Definition: TauConstituent.cxx:237
PanTau::TauConstituent::operator=
TauConstituent & operator=(const TauConstituent &tauConst)
Assignment operator.
Definition: TauConstituent.cxx:52
PanTau::TauConstituent::t_Pi0Neut
@ t_Pi0Neut
Definition: TauConstituent.h:46
PanTau
xAOD EDM
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:18
PanTau::TauConstituent::setM
void setM(float m)
set the Mass
Definition: TauConstituent.cxx:138
PanTau::TauConstituent::TauConstituent
TauConstituent(const TauConstituent &tauConst)
Copy Constructor.
PanTau::TauConstituent::t_NoType
@ t_NoType
Definition: TauConstituent.h:43
PanTau::TauConstituent::t_NeutLowB
@ t_NeutLowB
Definition: TauConstituent.h:50
PanTau::TauConstituent::setP4
void setP4(float pt, float eta, float phi, float m)
set the 4-vec
Definition: TauConstituent.cxx:104
PanTau::TauConstituent::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
Definition: TauConstituent.cxx:72
PanTau::TauConstituent::t_NeutLowA
@ t_NeutLowA
Definition: TauConstituent.h:49
PanTau::TauConstituent::t_nTypes
@ t_nTypes
Definition: TauConstituent.h:51
PanTau::TauConstituent::m_nPhotonsInShot
int m_nPhotonsInShot
Definition: TauConstituent.h:171
PanTau::TauConstituent::m
virtual double m() const
The invariant mass of the particle.
Definition: TauConstituent.cxx:87
PanTau::TauConstituent
Definition: TauConstituent.h:25
PanTau::TauConstituent::isCoreType
static bool isCoreType(int tauConstituentType)
Definition: TauConstituent.cxx:187
PanTau::TauConstituent::t_OutChrg
@ t_OutChrg
Definition: TauConstituent.h:47
PanTau::TauConstituent::DefaultCharge
static double DefaultCharge()
Definition: TauConstituent.h:55
PanTau::TauConstituent::m_BDTValue
double m_BDTValue
Definition: TauConstituent.h:164
PanTau::TauConstituent::getCharge
int getCharge() const
Definition: TauConstituent.cxx:246
PanTau::TauConstituent::getTypeFlags
std::vector< int > getTypeFlags() const
Definition: TauConstituent.cxx:232
PanTau::TauConstituent::getShots
std::vector< TauConstituent * > getShots() const
Definition: TauConstituent.cxx:261
PanTau::TauConstituent::type
virtual xAOD::Type::ObjectType type() const
The type of the object as a simple enumeration, remains pure virtual in e/gamma.
Definition: TauConstituent.cxx:146
PanTau::TauConstituent::removeTypeFlag
void removeTypeFlag(TauConstituent::Type aType)
Definition: TauConstituent.cxx:151
PanTau::TauConstituent::getPFO
const xAOD::PFO * getPFO() const
Definition: TauConstituent.cxx:251
PanTau::TauConstituent::e
virtual double e() const
The total energy of the particle.
Definition: TauConstituent.cxx:92