Berkeley Nuclear Data Software
DetectorDataStructures.h
Go to the documentation of this file.
1 #ifndef _DETECTOR_DATA_STRUCTURES_H_
2 #define _DETECTOR_DATA_STRUCTURES_H_
3 #include <vector>
4 #include <cstdint>
5 using std::vector;
6 
7 #include "MDPP16DataStructures.h"
8 #include "ConfigClasses.h"
9 
10 
12 {
13 public:
14  MDPPDetBase();
17  virtual void defineClass(MDPP16Event& a_ev,
18  int a_detID,
19  unsigned int a_ADC,
20  unsigned int a_TDC,
21  int a_trigInd = 0,
22  int a_rfInd = 1
23  );
24  //this constructor works similarly to the
25  //one above but uses a specified rf array potentiall from another board
28  virtual void defineClass(MDPP16Event& a_ev,
29  int a_detID,
30  unsigned int a_ADC,
31  unsigned int a_TDC,
32  vector<uint16_t>& a_trigArray,
33  int a_trigInd = 0
34  );
35 
36  //getters for internal class member data
37  uint16_t getADC() const;
38  uint16_t getTDC() const;
39  uint32_t getendEventWord() const;
40  uint16_t getextTime() const;
41  uint8_t getdetNumber() const;
42  uint8_t getmodID() const;
43  uint16_t getRF() const;
44  vector<uint16_t> gettdcTriggers() const;
45  //setters for interanl class member data
46  void setADC(uint16_t a_ADC);
47  void setTDC(uint16_t a_TDC);
48  void setendEventWord(uint32_t a_endEventWord);
49  void setextTime(uint16_t a_extTime);
50  void setdetNumber(uint8_t a_detNumber);
51  void setmodID(uint8_t a_modID);
52  void settdcTrigger(vector<uint16_t> a_tdcTrigger);
53 
54  double getGlobalTriggerTime();
55  double getGlobalHitTime();
56 
57  uint16_t m_ADC;
58  uint16_t m_TDC;
59  uint32_t m_endEventWord;
60  uint16_t m_extTime;
61  uint16_t m_detNumber;
62  uint8_t m_modID;
63  uint16_t m_nearestRF;
64  vector<uint16_t> m_tdcTrigger;
65 
67  std::ostream& print( std::ostream& a_stream );
68 };
69 
70 
74 {
75 public:
77 
82  MDPPCloverEvent(const std::vector<MDPP16Event>& a_daqEvs,
83  const CloverInfo& a_config,
84  int a_trigInd = 0,
85  int a_rfInd = 1
86  );
89  MDPPCloverEvent( MDPP16Event* a_daqEvs,
90  int a_num,
91  const CloverInfo& a_config,
92  vector<uint16_t>& a_trigArray,
93  int a_trigInd = 0
94  );
97  void defineClass( MDPP16Event* a_daqEvs,
98  int a_num,
99  const CloverInfo& a_config,
100  vector<uint16_t>& a_trigArray,
101  int a_trigInd = 0
102  );
103  //basic getters for internal data members
104  unsigned int getcloverID() const;
105  vector<uint16_t> getADC() const;
106  vector<uint16_t> getTDC() const;
107  vector<uint16_t> gettdcBGO() const;
108  vector<uint16_t> getadcBGO() const;
109  vector<uint8_t> getleafNumber() const;
110  vector<uint8_t> getbgoNumber() const;
111  vector<uint16_t> gettdcTriggers() const;
112  vector<uint16_t> getRFs() const;
113  uint32_t getendEventWord() const;
114  uint16_t getextTime() const;
115  //basic setters for internal class member data, constructors should be
116  //preferred
117  //basic getters for internal data members
118  void setcloverID(uint8_t a_cloverID);
119  void setADC(vector<uint16_t> a_ADC);
120  void setTDC(vector<uint16_t> a_TDC);
121  void settdcBGO(vector<uint16_t> a_tdcBGO);
122  void setadcBGO(vector<uint16_t> a_adcBGO);
123  void setleafNumber(vector<uint8_t> a_leafNumber);
124  void setbgoNumber(vector<uint8_t> a_bgoNumber);
125  void settdcTrigger(vector<uint16_t> a_tdcTrigger);
126  void setendEventWord(uint32_t a_endEventWord);
127  void setextTime(uint16_t a_extTime);
128 
129 
130  //not sure why this class is entirely transparent to access at this point
131  uint8_t m_cloverID;
132  vector<uint16_t> m_ADC;
133  vector<uint16_t> m_TDC;
134  vector<uint16_t> m_tdcBGO;
135  vector<uint16_t> m_adcBGO;
136  vector<uint8_t> m_leafNumber;
137  vector<uint8_t> m_bgoNumber;
138  vector<uint16_t> m_nearestRF;
139  vector<uint16_t> m_tdcTrigger;
140  uint32_t m_endEventWord;
141  uint16_t m_extTime;
142 
143 
144  //more complex getters
145  double getGlobalTriggerTime();
146  double getGlobalHitTime(int a_hitNum);
147  int getFirstHitLeaf(const CloverInfo& a_config) const;
149  double getEnergy(int a_hitNum,const CloverInfo& a_config) const;
152  double getTotalED(const CloverInfo& a_config,int& a_multiplicity) const;
156  double getTotalED(const CloverInfo& a_config,
157  int& a_multiplicity,
158  int& a_minTimeHit,
159  std::vector<int>& a_rejHits
160  ) const;
161 
162  //tests if a bgo is in coincidence, returns true if it is
163  bool rejectBGO(const CloverInfo& a_config) const;
165  vector<uint16_t> getTDC(int a_leafNumber) const;
168  int getMinTDCValue(int& a_leafID);
169 
170  //this function returns the average time for the leafs minus the average time
171  //for the bgo's and is generically usefull for generating a calibration
172  //routine for them. It returns an abnormally large negative value if there is
173  //no bgo present
174  double getBGODtTDC();
175 
176  bool constructed();
177  bool hasGamma();
178  //this function returns true if tdc information for the bgo is present
179  //in the event
180  bool hasBGO();
182  std::ostream& print( std::ostream& a_stream = std::cout);
183 };
184 
189 {
190 public:
191  MDPPScintEvent();
192  void defineClass(MDPP16Event& a_ev,
193  int a_detID,
194  unsigned int a_ADC,
195  unsigned int a_pkADC,
196  unsigned int a_TDC
197  );
198  void defineClass(MDPP16Event& a_ev,
199  int a_detID,
200  unsigned int a_ADC,
201  unsigned int a_pkADC,
202  unsigned int a_TDC,
203  std::vector<uint16_t> a_rfVector
204  );
205 
206  // MDPPScintEvent(const MDPP16Event& a_daqEv,
207  // const ScintConfig& a_config,
208  // int a_eventNumber);
210  double getTTPSD() const;
212  void setTTPSD(unsigned int a_ADC, unsigned int a_peakADC);
213 
214  float m_TTPSD;
215 };
216 
217 
222 {
223 public:
224  MDPPHPGeEvent();
225 
226 };
227 
232 {
233 public:
235 };
236 
240 {
241 public:
247  static std::vector<double> getDeltaT(const MDPPCloverEvent& a_clovEvent,
248  const MDPPScintEvent& a_scintEvent,
249  int a_leafNumber
250  );
253  static double getDeltaT(const MDPPHPGeEvent& a_hpgeEvent,
254  const MDPPScintEvent& a_scintEvent
255  );
258  static double getDeltaT(const MDPPInorgScintEvent& a_inorgEvent,
259  const MDPPScintEvent& a_scintEvent
260  );
263  static double getDeltaT(const MDPPScintEvent& a_scintEvent1,
264  const MDPPScintEvent& a_scintEvent2
265  );
269  static double getNTOF(const MDPPCloverEvent& a_clovEvent,
270  const MDPPScintEvent& a_scintEvent,
271  const CloverInfo& a_clovInfo,
272  const OrgScintInfo& a_scintInfo
273  );
280 
281  static std::vector<double> getRFDeltaT(const MDPPCloverEvent& a_clovEvent,
282  const std::vector<uint16_t>&,
283  const CloverInfo& a_clovInfo
284  );
285 };
286 #endif
this class is inteded to represent of full set of information
Definition: ConfigClasses.h:341
Definition: DetectorDataStructures.h:240
static std::vector< double > getDeltaT(const MDPPCloverEvent &a_clovEvent, const MDPPScintEvent &a_scintEvent, int a_leafNumber)
Definition: DetectorDataStructures.cpp:798
static std::vector< double > getRFDeltaT(const MDPPCloverEvent &a_clovEvent, const std::vector< uint16_t > &, const CloverInfo &a_clovInfo)
Definition: DetectorDataStructures.cpp:974
static double getNTOF(const MDPPCloverEvent &a_clovEvent, const MDPPScintEvent &a_scintEvent, const CloverInfo &a_clovInfo, const OrgScintInfo &a_scintInfo)
Definition: DetectorDataStructures.cpp:958
Definition: MDPP16DataStructures.h:32
Definition: DetectorDataStructures.h:74
int getMinTDCValue(int &a_leafID)
Definition: DetectorDataStructures.cpp:674
vector< uint8_t > getleafNumber() const
Definition: DetectorDataStructures.cpp:403
void settdcTrigger(vector< uint16_t > a_tdcTrigger)
Definition: DetectorDataStructures.cpp:456
vector< uint16_t > gettdcBGO() const
Definition: DetectorDataStructures.cpp:395
int getFirstHitLeaf(const CloverInfo &a_config) const
Definition: DetectorDataStructures.cpp:482
vector< uint16_t > m_adcBGO
Definition: DetectorDataStructures.h:135
double getGlobalTriggerTime()
Definition: DetectorDataStructures.cpp:471
double getEnergy(int a_hitNum, const CloverInfo &a_config) const
get the energy associated with a single hit in the event
Definition: DetectorDataStructures.cpp:508
vector< uint16_t > m_tdcBGO
Definition: DetectorDataStructures.h:134
void setbgoNumber(vector< uint8_t > a_bgoNumber)
Definition: DetectorDataStructures.cpp:452
void setextTime(uint16_t a_extTime)
Definition: DetectorDataStructures.cpp:464
MDPPCloverEvent()
Definition: DetectorDataStructures.cpp:184
double getBGODtTDC()
Definition: DetectorDataStructures.cpp:682
std::ostream & print(std::ostream &a_stream=std::cout)
prints info about the internal state of the class
Definition: DetectorDataStructures.cpp:727
vector< uint16_t > getRFs() const
Definition: DetectorDataStructures.cpp:415
uint32_t getendEventWord() const
Definition: DetectorDataStructures.cpp:419
bool hasGamma()
Definition: DetectorDataStructures.cpp:706
vector< uint8_t > m_bgoNumber
Definition: DetectorDataStructures.h:137
uint16_t m_extTime
Definition: DetectorDataStructures.h:141
bool constructed()
Definition: DetectorDataStructures.cpp:695
vector< uint16_t > getADC() const
Definition: DetectorDataStructures.cpp:386
vector< uint16_t > getTDC() const
Definition: DetectorDataStructures.cpp:391
vector< uint8_t > getbgoNumber() const
Definition: DetectorDataStructures.cpp:407
unsigned int getcloverID() const
Definition: DetectorDataStructures.cpp:382
void setadcBGO(vector< uint16_t > a_adcBGO)
Definition: DetectorDataStructures.cpp:444
vector< uint16_t > m_nearestRF
Definition: DetectorDataStructures.h:138
uint16_t getextTime() const
Definition: DetectorDataStructures.cpp:423
vector< uint16_t > m_TDC
Definition: DetectorDataStructures.h:133
vector< uint16_t > getadcBGO() const
Definition: DetectorDataStructures.cpp:399
double getTotalED(const CloverInfo &a_config, int &a_multiplicity) const
Definition: DetectorDataStructures.cpp:517
void setendEventWord(uint32_t a_endEventWord)
Definition: DetectorDataStructures.cpp:460
bool hasBGO()
Definition: DetectorDataStructures.cpp:715
void setcloverID(uint8_t a_cloverID)
Definition: DetectorDataStructures.cpp:428
void setleafNumber(vector< uint8_t > a_leafNumber)
Definition: DetectorDataStructures.cpp:448
vector< uint8_t > m_leafNumber
Definition: DetectorDataStructures.h:136
uint8_t m_cloverID
Definition: DetectorDataStructures.h:131
vector< uint16_t > gettdcTriggers() const
Definition: DetectorDataStructures.cpp:411
void settdcBGO(vector< uint16_t > a_tdcBGO)
Definition: DetectorDataStructures.cpp:440
void setTDC(vector< uint16_t > a_TDC)
Definition: DetectorDataStructures.cpp:436
void defineClass(MDPP16Event *a_daqEvs, int a_num, const CloverInfo &a_config, vector< uint16_t > &a_trigArray, int a_trigInd=0)
Definition: DetectorDataStructures.cpp:240
vector< uint16_t > m_ADC
Definition: DetectorDataStructures.h:132
double getGlobalHitTime(int a_hitNum)
Definition: DetectorDataStructures.cpp:475
uint32_t m_endEventWord
Definition: DetectorDataStructures.h:140
bool rejectBGO(const CloverInfo &a_config) const
Definition: DetectorDataStructures.cpp:626
vector< uint16_t > m_tdcTrigger
Definition: DetectorDataStructures.h:139
void setADC(vector< uint16_t > a_ADC)
Definition: DetectorDataStructures.cpp:432
Definition: DetectorDataStructures.h:12
vector< uint16_t > m_tdcTrigger
Definition: DetectorDataStructures.h:64
void setextTime(uint16_t a_extTime)
Definition: DetectorDataStructures.cpp:144
void settdcTrigger(vector< uint16_t > a_tdcTrigger)
Definition: DetectorDataStructures.cpp:156
uint16_t getADC() const
Definition: DetectorDataStructures.cpp:99
vector< uint16_t > gettdcTriggers() const
Definition: DetectorDataStructures.cpp:127
uint8_t getmodID() const
Definition: DetectorDataStructures.cpp:119
double getGlobalTriggerTime()
Definition: DetectorDataStructures.cpp:161
uint32_t m_endEventWord
Definition: DetectorDataStructures.h:59
double getGlobalHitTime()
Definition: DetectorDataStructures.cpp:165
uint16_t m_ADC
Definition: DetectorDataStructures.h:57
uint16_t getRF() const
Definition: DetectorDataStructures.cpp:123
uint8_t getdetNumber() const
Definition: DetectorDataStructures.cpp:115
uint32_t getendEventWord() const
Definition: DetectorDataStructures.cpp:107
uint8_t m_modID
Definition: DetectorDataStructures.h:62
void setTDC(uint16_t a_TDC)
Definition: DetectorDataStructures.cpp:136
uint16_t m_extTime
Definition: DetectorDataStructures.h:60
void setendEventWord(uint32_t a_endEventWord)
Definition: DetectorDataStructures.cpp:140
void setADC(uint16_t a_ADC)
Definition: DetectorDataStructures.cpp:132
uint16_t getextTime() const
Definition: DetectorDataStructures.cpp:111
void setmodID(uint8_t a_modID)
Definition: DetectorDataStructures.cpp:152
uint16_t m_TDC
Definition: DetectorDataStructures.h:58
std::ostream & print(std::ostream &a_stream)
prints info about the internal state of the class
Definition: DetectorDataStructures.cpp:172
uint16_t getTDC() const
Definition: DetectorDataStructures.cpp:103
virtual void defineClass(MDPP16Event &a_ev, int a_detID, unsigned int a_ADC, unsigned int a_TDC, int a_trigInd=0, int a_rfInd=1)
Definition: DetectorDataStructures.cpp:26
void setdetNumber(uint8_t a_detNumber)
Definition: DetectorDataStructures.cpp:148
MDPPDetBase()
Definition: DetectorDataStructures.cpp:15
uint16_t m_nearestRF
Definition: DetectorDataStructures.h:63
uint16_t m_detNumber
Definition: DetectorDataStructures.h:61
Definition: DetectorDataStructures.h:222
MDPPHPGeEvent()
Definition: DetectorDataStructures.cpp:785
Definition: DetectorDataStructures.h:232
MDPPInorgScintEvent()
Definition: DetectorDataStructures.cpp:791
Definition: DetectorDataStructures.h:189
void setTTPSD(unsigned int a_ADC, unsigned int a_peakADC)
setters
Definition: DetectorDataStructures.cpp:780
float m_TTPSD
Definition: DetectorDataStructures.h:214
void defineClass(MDPP16Event &a_ev, int a_detID, unsigned int a_ADC, unsigned int a_pkADC, unsigned int a_TDC)
Definition: DetectorDataStructures.cpp:755
MDPPScintEvent()
Definition: DetectorDataStructures.cpp:748
double getTTPSD() const
getters
Definition: DetectorDataStructures.cpp:776
Definition: ConfigClasses.h:197