Loading [MathJax]/jax/input/TeX/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
TauConstituent.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
8  IParticle(),
9  m_p4(),
10  m_TypeFlags(),
11  m_BDTValue(PanTau::TauConstituent::DefaultBDTValue()),
12  m_Charge(PanTau::TauConstituent::DefaultCharge()),
13  m_PFO(nullptr),
14  m_Shots(),
15  m_nPhotonsInShot(0)
16 {
17 }
18 
19 
20 PanTau::TauConstituent::TauConstituent(const TLorentzVector& itsMomentum,
21  int itsCharge,
22  const std::vector<int>& itsType,
23  double itsBDTValue,
24  const xAOD::PFO* itsPFO) :
25  IParticle(),
26  m_p4(itsMomentum),
27  m_TypeFlags(itsType),
28  m_BDTValue(itsBDTValue),
29  m_Charge(itsCharge),
30  m_PFO(itsPFO),
31  m_Shots(),
32  m_nPhotonsInShot(0)
33 {
34 }
35 
36 
38 
39 = default;
40 
41 
43 {
44  //delete the shot constituents
45  for(unsigned int iShot=0; iShot<m_Shots.size(); iShot++) {
46  PanTau::TauConstituent* curConst = m_Shots[iShot];
47  delete curConst;
48  }
49 }
50 
51 
53 {
54  if (this!=&tauConst){
55 
56  if (!this->container() && !this->hasStore() ) {
57  makePrivateStore();
58  }
59  this->IParticle::operator=( tauConst );
60  this->m_p4 = tauConst.m_p4;
61  m_TypeFlags = tauConst.m_TypeFlags;
62  m_BDTValue = tauConst.m_BDTValue;
63  m_Charge = tauConst.m_Charge;
64  m_PFO = tauConst.m_PFO;
65  m_Shots = tauConst.m_Shots;
66  m_nPhotonsInShot = tauConst.m_nPhotonsInShot;
67  }
68  return *this;
69 }
70 
71 
73  static const Accessor< float > acc( "pt" );
74  return acc( *this );
75 }
76 
78  static const Accessor<float > acc( "eta" );
79  return acc( *this );
80 }
81 
83  static const Accessor< float > acc( "phi" );
84  return acc( *this );
85 }
86 
87 double PanTau::TauConstituent::m() const {
88  static const Accessor< float> acc( "m" );
89  return acc( *this );
90 }
91 
93  return p4().E();
94 }
95 
97  return p4().Rapidity();
98 }
99 
101  return m_p4;
102 }
103 
104 void PanTau::TauConstituent::setP4(float pt, float eta, float phi, float m){
105  static const Accessor< float > acc1( "pt" );
106  acc1( *this ) = pt;
107  static const Accessor< float > acc2( "eta" );
108  acc2( *this ) = eta;
109  static const Accessor< float > acc3( "phi" );
110  acc3( *this ) = phi;
111  static const Accessor< float > acc4( "m" );
112  acc4( *this ) = m;
113  //Need to recalculate m_p4
114  m_p4.SetPtEtaPhiM( pt, eta, phi, m);
115 }
116 
118  static const Accessor< float > acc( "pt" );
119  acc( *this ) = pt;
120  //Need to recalculate m_p4
121  m_p4.SetPtEtaPhiM( pt, eta(), phi(), m());
122 }
123 
125  static const Accessor< float > acc( "eta" );
126  acc( *this ) = eta;
127  //Need to recalculate m_p4
128  m_p4.SetPtEtaPhiM( pt(), eta, phi(), m());
129 }
130 
132  static const Accessor< float > acc( "phi" );
133  acc( *this ) = phi;
134  //Need to recalculate m_p4
135  m_p4.SetPtEtaPhiM( pt(), eta(), phi, m());
136 }
137 
139  static const Accessor< float > acc( "m" );
140  acc( *this ) = m;
141  //Need to recalculate m_p4
142  m_p4.SetPtEtaPhiM( pt(), eta(), phi(), m);
143 }
144 
145 
148 }
149 
150 
152  unsigned int typeIndex = (unsigned int)aType;
153  m_TypeFlags.at(typeIndex) = 0;
154 }
155 
156 
157 //the static getTypeName which does a translation
159  switch(aType) {
160  case PanTau::TauConstituent::t_Charged: return "Charged";
161  case PanTau::TauConstituent::t_Neutral: return "Neutral";
162  case PanTau::TauConstituent::t_Pi0Neut: return "Pi0Neut";
163  case PanTau::TauConstituent::t_OutChrg: return "OuterChrg";
164  case PanTau::TauConstituent::t_OutNeut: return "OuterNeut";
165  case PanTau::TauConstituent::t_NoType: return "All";
166  default: return "UnkownType";
167  }
168 }
169 
170 
171 bool PanTau::TauConstituent::isNeutralType(int tauConstituentType) {
173  switch(type) {
174  case PanTau::TauConstituent::t_Neutral: return true;
175  case PanTau::TauConstituent::t_Pi0Neut: return true;
176  case PanTau::TauConstituent::t_OutNeut: return true;
177  default: return false;
178  }
179  return false;
180 }
181 
182 //the non static getType name, which returns
183 std::vector<std::string> PanTau::TauConstituent::getTypeName() const {
184  std::vector<std::string> res;
185  for(unsigned int iType=0; iType<TauConstituent::t_nTypes; iType++) {
186  if(m_TypeFlags[iType] == 1) {
188  res.push_back( TauConstituent::getTypeName(curType) );
189  }
190  }
191  return res;
192 }
193 
194 
196  std::string res;
197  for(unsigned int iType=0; iType<m_TypeFlags.size(); iType++) {
198  if(m_TypeFlags[iType] == 1) {
200  }
201  }
202  return res;
203 }
204 
205 
207  return m_BDTValue;
208 }
209 
210 
211 const std::vector<int>& PanTau::TauConstituent::getTypeFlags() const {
212  return m_TypeFlags;
213 }
214 
215 
217  if(theType >= static_cast<int>(TauConstituent::t_nTypes)) {
218  return false;
219  }
220  if(m_TypeFlags.at( static_cast<int>(theType)) == 1) return true;
221  return false;
222 }
223 
224 
226  return m_Charge;
227 }
228 
229 
231  return m_PFO;
232 }
233 
234 
236  if(shot != nullptr) m_Shots.push_back(shot);
237 }
238 
239 
240 const std::vector<PanTau::TauConstituent*>& PanTau::TauConstituent::getShots() const {
241  return m_Shots;
242 }
243 
244 
245 unsigned int PanTau::TauConstituent::getNShots() const {
246  return m_Shots.size();
247 }
248 
249 
251  m_nPhotonsInShot = nPhotons;
252 }
253 
254 
256  return m_nPhotonsInShot;
257 }
python.CaloBCIDAvgAlgConfig.acc3
def acc3
Definition: CaloBCIDAvgAlgConfig.py:69
PanTau::TauConstituent::getTypeFlags
const std::vector< int > & getTypeFlags() const
Definition: TauConstituent.cxx:211
PanTau::TauConstituent::m_p4
FourMom_t m_p4
4-momentum object
Definition: TauConstituent.h:157
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
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
PanTau::TauConstituent::t_Charged
@ t_Charged
Definition: TauConstituent.h:44
ObjectType
ObjectType
Definition: BaseObject.h:11
SG::Accessor< float >
columnar::operator=
AccessorTemplate & operator=(AccessorTemplate &&that)
Definition: VectorColumn.h:88
PanTau::TauConstituent::~TauConstituent
virtual ~TauConstituent()
Destructor.
Definition: TauConstituent.cxx:42
test_pyathena.pt
pt
Definition: test_pyathena.py:11
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:255
PanTau::TauConstituent::getTypeNameString
std::string getTypeNameString() const
Definition: TauConstituent.cxx:195
PanTau::TauConstituent::setNPhotonsInShot
void setNPhotonsInShot(int nPhotons)
Definition: TauConstituent.cxx:250
PanTau::TauConstituent::m_PFO
const xAOD::PFO * m_PFO
Definition: TauConstituent.h:166
TauConstituent.h
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
PanTau::TauConstituent::TauConstituent
TauConstituent()
Default Constructor for POOL.
Definition: TauConstituent.cxx:7
PanTau::TauConstituent::getBDTValue
double getBDTValue() const
Definition: TauConstituent.cxx:206
PanTau::TauConstituent::t_OutNeut
@ t_OutNeut
Definition: TauConstituent.h:48
PanTau::TauConstituent::isNeutralType
static bool isNeutralType(int tauConstituentType)
Definition: TauConstituent.cxx:171
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:183
PanTau::TauConstituent::m_Charge
int m_Charge
Definition: TauConstituent.h:164
python.CaloBCIDAvgAlgConfig.acc1
def acc1
Definition: CaloBCIDAvgAlgConfig.py:49
python.LArMinBiasAlgConfig.int
int
Definition: LArMinBiasAlgConfig.py:59
PanTau::TauConstituent::getNShots
unsigned int getNShots() const
Definition: TauConstituent.cxx:245
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:11
python.CaloBCIDAvgAlgConfig.acc2
def acc2
Definition: CaloBCIDAvgAlgConfig.py:59
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
xAODType::ParticleFlow
@ ParticleFlow
The object is a particle-flow object.
Definition: ObjectType.h:41
PanTau::TauConstituent::rapidity
virtual double rapidity() const
The true rapidity (y) of the particle.
Definition: TauConstituent.cxx:96
python.LArRecUtilsConfig.acc4
def acc4
Definition: LArRecUtilsConfig.py:196
PanTau::TauConstituent::FourMom_t
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition: TauConstituent.h:110
PanTau::TauConstituent::addShot
void addShot(TauConstituent *shot)
Definition: TauConstituent.cxx:235
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:162
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:169
PanTau::TauConstituent::isOfType
bool isOfType(TauConstituent::Type aType) const
Definition: TauConstituent.cxx:216
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::t_NoType
@ t_NoType
Definition: TauConstituent.h:43
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_nTypes
@ t_nTypes
Definition: TauConstituent.h:51
PanTau::TauConstituent::m_nPhotonsInShot
int m_nPhotonsInShot
Definition: TauConstituent.h:170
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::t_OutChrg
@ t_OutChrg
Definition: TauConstituent.h:47
PanTau::TauConstituent::m_BDTValue
double m_BDTValue
Definition: TauConstituent.h:163
IParticle
Definition: Event/EventKernel/EventKernel/IParticle.h:43
PanTau::TauConstituent::getCharge
int getCharge() const
Definition: TauConstituent.cxx:225
PanTau::TauConstituent::getShots
const std::vector< TauConstituent * > & getShots() const
Definition: TauConstituent.cxx:240
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:230
PanTau::TauConstituent::e
virtual double e() const
The total energy of the particle.
Definition: TauConstituent.cxx:92