ATLAS Offline Software
FPGATrackSimOfflineTrack.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 TRIGFPGATrackSimOBJECTS_FPGATrackSimOFFLINETRACK_H
6 #define TRIGFPGATrackSimOBJECTS_FPGATrackSimOFFLINETRACK_H
7 
9 #include <cmath>
10 #include <TObject.h>
11 
12 class FPGATrackSimOfflineTrack : public TObject {
13 public:
15 
16  void setQOverPt(double v) { m_qoverpt = v; }
17  void setEta(double v) { m_eta = v; }
18  void setPhi(double v) { m_phi = v; }
19  void setD0(double v) { m_d0 = v; }
20  void setZ0(double v) { m_z0 = v; }
21  void setBarcode(unsigned long v) { m_barcode = v; }
22  void setBarcodeFrac(float v) { m_barcode_frac = v; }
23 
24  double getPt() const { return m_qoverpt != 0 ? std::abs(sin(2 * std::atan(std::exp(-m_eta))) / m_qoverpt) : 99999999.; }
25  double getEta() const { return m_eta; }
26  double getPhi() const { return m_phi; }
27  double getD0() const { return m_d0; }
28  double getZ0() const { return m_z0; }
29  double getQOverPt() const { return m_qoverpt / sin(2 * std::atan(std::exp(-m_eta))); }
30  unsigned long getBarcode() const { return m_barcode; }
31  double getBarcodeFrac() const { return m_barcode_frac; }
32 
33  // handling hits
34  const std::vector<FPGATrackSimOfflineHit>& getOfflineHits() const { return m_hits; }
35  int nHits() const { return m_hits.size(); }
36  void addHit(FPGATrackSimOfflineHit s) { m_hits.push_back(s); }
37 
38 
39 private:
40  // This is actually qoverp instead of qoverpt. (qoverpt = qoverp / sin(theta)),
41  // where theta = 2 * atan(exp(-eta)). We can fix this in the next round.
42  // The current workaround is to change the get functions.
43  double m_qoverpt;
44  double m_eta;
45  double m_phi;
46  double m_d0;
47  double m_z0;
48 
49  unsigned long m_barcode; // matched geant particle barcode
50  double m_barcode_frac; // largest "matching fraction" with any "good"
51  // geant particle, corresponding to the
52  // particle with m_barcode
53 
54  std::vector<FPGATrackSimOfflineHit> m_hits;
55 
56 
57  ClassDef(FPGATrackSimOfflineTrack, 4)
58 };
59 
60 std::ostream& operator<<(std::ostream&, const FPGATrackSimOfflineTrack&);
61 #endif // TRIGFPGATrackSimOBJECTS_FPGATrackSimOFFLINETRACK_H
FPGATrackSimOfflineTrack::addHit
void addHit(FPGATrackSimOfflineHit s)
Definition: FPGATrackSimOfflineTrack.h:36
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
FPGATrackSimOfflineTrack::getPt
double getPt() const
Definition: FPGATrackSimOfflineTrack.h:24
FPGATrackSimOfflineTrack::getZ0
double getZ0() const
Definition: FPGATrackSimOfflineTrack.h:28
FPGATrackSimOfflineTrack::getEta
double getEta() const
Definition: FPGATrackSimOfflineTrack.h:25
FPGATrackSimOfflineTrack::getPhi
double getPhi() const
Definition: FPGATrackSimOfflineTrack.h:26
FPGATrackSimOfflineTrack::setZ0
void setZ0(double v)
Definition: FPGATrackSimOfflineTrack.h:20
FPGATrackSimOfflineTrack::m_d0
double m_d0
Definition: FPGATrackSimOfflineTrack.h:46
FPGATrackSimOfflineTrack::FPGATrackSimOfflineTrack
FPGATrackSimOfflineTrack()
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
FPGATrackSimOfflineTrack::m_phi
double m_phi
Definition: FPGATrackSimOfflineTrack.h:45
FPGATrackSimOfflineTrack::m_z0
double m_z0
Definition: FPGATrackSimOfflineTrack.h:47
FPGATrackSimOfflineTrack::getBarcode
unsigned long getBarcode() const
Definition: FPGATrackSimOfflineTrack.h:30
FPGATrackSimOfflineTrack::getQOverPt
double getQOverPt() const
Definition: FPGATrackSimOfflineTrack.h:29
FPGATrackSimOfflineHit.h
FPGATrackSimOfflineTrack::nHits
int nHits() const
Definition: FPGATrackSimOfflineTrack.h:35
FPGATrackSimOfflineTrack
Definition: FPGATrackSimOfflineTrack.h:12
FPGATrackSimOfflineTrack::setD0
void setD0(double v)
Definition: FPGATrackSimOfflineTrack.h:19
FPGATrackSimOfflineTrack::m_eta
double m_eta
Definition: FPGATrackSimOfflineTrack.h:44
FPGATrackSimOfflineTrack::setEta
void setEta(double v)
Definition: FPGATrackSimOfflineTrack.h:17
FPGATrackSimOfflineTrack::setBarcode
void setBarcode(unsigned long v)
Definition: FPGATrackSimOfflineTrack.h:21
FPGATrackSimOfflineTrack::m_hits
std::vector< FPGATrackSimOfflineHit > m_hits
Definition: FPGATrackSimOfflineTrack.h:54
FPGATrackSimOfflineTrack::m_qoverpt
double m_qoverpt
Definition: FPGATrackSimOfflineTrack.h:43
python.PyAthena.v
v
Definition: PyAthena.py:157
FPGATrackSimOfflineTrack::m_barcode_frac
double m_barcode_frac
Definition: FPGATrackSimOfflineTrack.h:50
FPGATrackSimOfflineTrack::getOfflineHits
const std::vector< FPGATrackSimOfflineHit > & getOfflineHits() const
Definition: FPGATrackSimOfflineTrack.h:34
FPGATrackSimOfflineTrack::getD0
double getD0() const
Definition: FPGATrackSimOfflineTrack.h:27
FPGATrackSimOfflineTrack::setQOverPt
void setQOverPt(double v)
Definition: FPGATrackSimOfflineTrack.h:16
FPGATrackSimOfflineTrack::setBarcodeFrac
void setBarcodeFrac(float v)
Definition: FPGATrackSimOfflineTrack.h:22
FPGATrackSimOfflineTrack::getBarcodeFrac
double getBarcodeFrac() const
Definition: FPGATrackSimOfflineTrack.h:31
FPGATrackSimOfflineHit
Definition: FPGATrackSimOfflineHit.h:12
operator<<
std::ostream & operator<<(std::ostream &, const FPGATrackSimOfflineTrack &)
Definition: FPGATrackSimOfflineTrack.cxx:15
FPGATrackSimOfflineTrack::m_barcode
unsigned long m_barcode
Definition: FPGATrackSimOfflineTrack.h:49
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
FPGATrackSimOfflineTrack::setPhi
void setPhi(double v)
Definition: FPGATrackSimOfflineTrack.h:18