ATLAS Offline Software
TBBPC.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TBEVENT_TBBPC_H
6 #define TBEVENT_TBBPC_H
7 // //
9 // Reconstructed BPC data //
10 // //
12 
13 #include <string>
14 
15 #include "AthenaKernel/CLASS_DEF.h"
16 
17 
18 #include "TBEvent/TBBeamDetector.h"
19 
20 
21 
22 class TBBPC : public TBBeamDetector
23 {
24  public:
25 
26  typedef double signal_type;
27 
29  // Constructors and Destructor //
31 
32  TBBPC();
33 
34  TBBPC(const std::string& thisBPCName);
35 
36  ~TBBPC();
37 
39  // Data Manipulation //
41 
42  // set signals
43  void setXPos(signal_type theSignal);
44  void setYPos(signal_type theSignal);
45  void setXErr(signal_type theSignal);
46  void setYErr(signal_type theSignal);
47 
48  void setXPulse(signal_type theSignal);
49  void setYPulse(signal_type theSignal);
50 
51  void setHitNbr(int hitnbr);
52 
53  // set/reset overflow
54  void setXPosOverflow(bool overflow=true);
55  void setYPosOverflow(bool overflow=true);
56  void setXPulseOverflow(bool overflow=true);
57  void setYPulseOverflow(bool overflow=true);
58 
59  // void resetXPosOverflow();
60  // void resetYPosOverflow();
61  // void resetXPulseOverflow();
62  // void resetYPulseOverflow();
63 
64  // void setXPosOverflow(bool overflow);
65  // void setYPosOverflow(bool overflow);
66  // void setXPulseOverflow(bool overflow);
67  // void setYPulseOverflow(bool overflow);
68 
69  // set global overflow
70  // virtual void setOverflow();
71  // virtual void setOverflow(bool overflow);
72  // virtual void resetOverflow();
73 
74  // access signals
75  inline signal_type getXPos() const
76  { return (signal_type) m_xPos; }
77  inline signal_type getYPos() const
78  { return (signal_type) m_yPos; }
79 
80  inline signal_type getXErr() const
81  { return (signal_type) m_xErr; }
82  inline signal_type getYErr() const
83  { return (signal_type) m_yErr; }
84 
85  inline signal_type getXPulse() const
86  { return m_xPulse; }
87  inline signal_type getYPulse() const
88  { return m_yPulse; }
89  inline int getHitNbr() const
90  {return m_hitnumber;}
91 
92  // access overflow for each variable
93  inline bool isXPosOverflow() const
94  { return m_xPosOverflow; }
95  inline bool isYPosOverflow() const
96  { return m_yPosOverflow; }
97  inline bool isXPulseOverflow() const
98  { return m_xPulseOverflow; }
99  inline bool isYPulseOverflow() const
100  { return m_yPulseOverflow; }
101 
102  // data class reset
103  void reset();
104 
105  private:
106 
108  // Private Data //
110 
111 
112  // reconstructed (x,y)
115 
116  // associated pulse height sums
118 
119  // BPC can distinguish between "0" or "1 or more" particle hits
120  short m_hitnumber;
121 
122  // overflow indicators
125 };
126 
127 CLASS_DEF( TBBPC , 228151918 , 1 )
128 #endif
129 
130 
131 
TBBPC::setHitNbr
void setHitNbr(int hitnbr)
Definition: TBBPC.cxx:79
TBBPC::setXPulse
void setXPulse(signal_type theSignal)
Definition: TBBPC.cxx:69
TBBeamDetector.h
TBBPC::getXPos
signal_type getXPos() const
Definition: TBBPC.h:75
TBBPC::m_yPulseOverflow
bool m_yPulseOverflow
Definition: TBBPC.h:124
TBBPC::m_xPulse
signal_type m_xPulse
Definition: TBBPC.h:117
TBBPC
Definition: TBBPC.h:23
TBBPC::isYPulseOverflow
bool isYPulseOverflow() const
Definition: TBBPC.h:99
TBBPC::reset
void reset()
Definition: TBBPC.cxx:32
TBBPC::~TBBPC
~TBBPC()
Definition: TBBPC.cxx:25
TBBPC::signal_type
double signal_type
Definition: TBBPC.h:26
TBBPC::m_xPos
signal_type m_xPos
Definition: TBBPC.h:113
TBBPC::setYPulse
void setYPulse(signal_type theSignal)
Definition: TBBPC.cxx:74
TBBPC::setXErr
void setXErr(signal_type theSignal)
Definition: TBBPC.cxx:59
TBBPC::isYPosOverflow
bool isYPosOverflow() const
Definition: TBBPC.h:95
TBBPC::m_yPosOverflow
bool m_yPosOverflow
Definition: TBBPC.h:123
TBBPC::setXPulseOverflow
void setXPulseOverflow(bool overflow=true)
Definition: TBBPC.cxx:94
TBBPC::getYPos
signal_type getYPos() const
Definition: TBBPC.h:77
TBBPC::getXPulse
signal_type getXPulse() const
Definition: TBBPC.h:85
TBBPC::m_xPosOverflow
bool m_xPosOverflow
Definition: TBBPC.h:123
TBBPC::setYPosOverflow
void setYPosOverflow(bool overflow=true)
Definition: TBBPC.cxx:89
TBBPC::setYErr
void setYErr(signal_type theSignal)
Definition: TBBPC.cxx:64
TBBPC::isXPulseOverflow
bool isXPulseOverflow() const
Definition: TBBPC.h:97
TBBPC::m_yPulse
signal_type m_yPulse
Definition: TBBPC.h:117
TBBPC::getXErr
signal_type getXErr() const
Definition: TBBPC.h:80
TBBPC::getYPulse
signal_type getYPulse() const
Definition: TBBPC.h:87
TBBPC::isXPosOverflow
bool isXPosOverflow() const
Definition: TBBPC.h:93
TBBPC::m_hitnumber
short m_hitnumber
Definition: TBBPC.h:120
TBBPC::m_xPulseOverflow
bool m_xPulseOverflow
Definition: TBBPC.h:124
TBBPC::setXPos
void setXPos(signal_type theSignal)
Definition: TBBPC.cxx:49
TBBPC::m_xErr
signal_type m_xErr
Definition: TBBPC.h:114
TBBPC::TBBPC
TBBPC()
Definition: TBBPC.cxx:13
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:64
TBBPC::m_yErr
signal_type m_yErr
Definition: TBBPC.h:114
TBBPC::getYErr
signal_type getYErr() const
Definition: TBBPC.h:82
TBBPC::m_yPos
signal_type m_yPos
Definition: TBBPC.h:113
TBBPC::setYPulseOverflow
void setYPulseOverflow(bool overflow=true)
Definition: TBBPC.cxx:99
TBBeamDetector
Definition: TBBeamDetector.h:16
CLASS_DEF.h
macros to associate a CLID to a type
TBBPC::setYPos
void setYPos(signal_type theSignal)
Definition: TBBPC.cxx:54
TBBPC::setXPosOverflow
void setXPosOverflow(bool overflow=true)
Definition: TBBPC.cxx:84
TBBPC::getHitNbr
int getHitNbr() const
Definition: TBBPC.h:89