BmnRoot
Loading...
Searching...
No Matches
BmnDigiContainer.h
Go to the documentation of this file.
1#include <BmnCSCDigit.h>
2#include <BmnDchDigit.h>
3#include <BmnEventHeader.h>
4#include <BmnGemStripDigit.h>
5#include <BmnMwpcDigit.h>
6#include <BmnSiliconDigit.h>
7#include <BmnTof1Digit.h>
8#include <BmnTrigDigit.h>
9#include <BmnTrigWaveDigit.h>
10#include <BmnZDCDigit.h>
11#include <TClonesArray.h>
12#include <TNamed.h>
13#include <iostream>
14#include <map>
15// #include <BmnTof2Digit.h>
16#include <BmnECALDigit.h>
17
18#ifndef BMNDIGICONTAINER_H
19#define BMNDIGICONTAINER_H 1
20
21using namespace std;
22
23class BmnDigiContainer : public TNamed
24{
25 public:
28
30 virtual ~BmnDigiContainer() {};
31
32 // Setters
33
34 void SetDigi(TString detName,
35 UInt_t evId,
36 vector<BmnTrigDigit> _bc1,
37 vector<BmnTrigDigit> _bc2,
38 vector<BmnTrigDigit> _bc3,
39 vector<BmnTrigDigit> _bc4,
40 vector<BmnTrigDigit> _vc,
41 vector<BmnTrigDigit> _si,
42 vector<BmnTrigDigit> _bd,
43 vector<BmnTrigDigit> _t0,
44 vector<BmnTrigDigit> _fd,
45 vector<BmnTrigDigit> _x1l,
46 vector<BmnTrigDigit> _x2l,
47 vector<BmnTrigDigit> _y1l,
48 vector<BmnTrigDigit> _y2l,
49 vector<BmnTrigDigit> _x1r,
50 vector<BmnTrigDigit> _x2r,
51 vector<BmnTrigDigit> _y1r,
52 vector<BmnTrigDigit> _y2r,
53 vector<BmnTrigWaveDigit> _tqdc_bc1,
54 vector<BmnTrigWaveDigit> _tqdc_bc2,
55 vector<BmnTrigWaveDigit> _tqdc_bc3,
56 vector<BmnTrigWaveDigit> _tqdc_bc4,
57 vector<BmnTrigWaveDigit> _tqdc_vc,
58 vector<BmnTrigWaveDigit> _tqdc_x1l,
59 vector<BmnTrigWaveDigit> _tqdc_x2l,
60 vector<BmnTrigWaveDigit> _tqdc_y1l,
61 vector<BmnTrigWaveDigit> _tqdc_y2l,
62 vector<BmnTrigWaveDigit> _tqdc_x1r,
63 vector<BmnTrigWaveDigit> _tqdc_x2r,
64 vector<BmnTrigWaveDigit> _tqdc_y1r,
65 vector<BmnTrigWaveDigit> _tqdc_y2r,
66 vector<BmnZDCDigit> _zdc,
67 vector<BmnGemStripDigit> _gem,
68 vector<BmnCSCDigit> _csc,
69 vector<BmnSiliconDigit> _silicon,
70 vector<BmnMwpcDigit> _mwpc,
71 vector<BmnDchDigit> _dch,
72 vector<BmnTof1Digit> _tof400,
73 vector<BmnTof1Digit> _tof700,
74 vector<BmnECALDigit> _ecal)
75 {
76 if (detName.Contains("GEM"))
77 gem[evId] = _gem;
78 else if (detName.Contains("CSC"))
79 csc[evId] = _csc;
80 else if (detName.Contains("SILICON"))
81 silicon[evId] = _silicon;
82 else if (detName.Contains("MWPC"))
83 mwpc[evId] = _mwpc;
84 else if (detName.Contains("DCH"))
85 dch[evId] = _dch;
86 else if (detName.Contains("TOF400"))
87 tof400[evId] = _tof400;
88 else if (detName.Contains("TOF700"))
89 tof700[evId] = _tof700;
90 else if (detName.Contains("ECAL"))
91 ecal[evId] = _ecal;
92 else if (detName.Contains("BC1") && !detName.Contains("TQDC"))
93 bc1[evId] = _bc1;
94 else if (detName.Contains("BC2") && !detName.Contains("TQDC"))
95 bc2[evId] = _bc2;
96 else if (detName.Contains("BC3") && !detName.Contains("TQDC"))
97 bc3[evId] = _bc3;
98 else if (detName.Contains("BC4") && !detName.Contains("TQDC"))
99 bc4[evId] = _bc4;
100 else if ((detName.Contains("VC") || detName.Contains("VETO")) && !detName.Contains("TQDC"))
101 veto[evId] = _vc;
102 else if (detName.Contains("TQDC_VETO"))
103 tqdc_veto[evId] = _tqdc_vc;
104 else if (detName.Contains("Si") || detName.Contains("SI"))
105 si[evId] = _si;
106 else if (detName.Contains("BD"))
107 bd[evId] = _bd;
108 else if (detName.Contains("ZDC"))
109 zdc[evId] = _zdc;
110 else if (detName.Contains("T0"))
111 t0[evId] = _t0;
112 else if (detName.Contains("FD"))
113 fd[evId] = _fd;
114 else if (detName.Contains("X1L") && !detName.Contains("TQDC"))
115 x1l[evId] = _x1l;
116 else if (detName.Contains("X2L") && !detName.Contains("TQDC"))
117 x2l[evId] = _x2l;
118 else if (detName.Contains("Y1L") && !detName.Contains("TQDC"))
119 y1l[evId] = _y1l;
120 else if (detName.Contains("Y2L") && !detName.Contains("TQDC"))
121 y2l[evId] = _y2l;
122 else if (detName.Contains("X1R") && !detName.Contains("TQDC"))
123 x1r[evId] = _x1r;
124 else if (detName.Contains("X2R") && !detName.Contains("TQDC"))
125 x2r[evId] = _x2r;
126 else if (detName.Contains("Y1R") && !detName.Contains("TQDC"))
127 y1r[evId] = _y1r;
128 else if (detName.Contains("Y2R") && !detName.Contains("TQDC"))
129 y2r[evId] = _y2r;
130 else if (detName.Contains("TQDC_X1L"))
131 tqdc_x1l[evId] = _tqdc_x1l;
132 else if (detName.Contains("TQDC_X2L"))
133 tqdc_x2l[evId] = _tqdc_x2l;
134 else if (detName.Contains("TQDC_Y1L"))
135 tqdc_y1l[evId] = _tqdc_y1l;
136 else if (detName.Contains("TQDC_Y2L"))
137 tqdc_y2l[evId] = _tqdc_y2l;
138 else if (detName.Contains("TQDC_X1R"))
139 tqdc_x1r[evId] = _tqdc_x1r;
140 else if (detName.Contains("TQDC_X2R"))
141 tqdc_x2r[evId] = _tqdc_x2r;
142 else if (detName.Contains("TQDC_Y1R"))
143 tqdc_y1r[evId] = _tqdc_y1r;
144 else if (detName.Contains("TQDC_Y2R"))
145 tqdc_y2r[evId] = _tqdc_y2r;
146 else if (detName.Contains("TQDC_BC1"))
147 tqdc_bc1[evId] = _tqdc_bc1;
148 else if (detName.Contains("TQDC_BC2"))
149 tqdc_bc2[evId] = _tqdc_bc2;
150 else if (detName.Contains("TQDC_BC3"))
151 tqdc_bc3[evId] = _tqdc_bc3;
152 else if (detName.Contains("TQDC_BC4"))
153 tqdc_bc4[evId] = _tqdc_bc4;
154 else {
155 cout << "::SetDigi()" << endl;
156 throw;
157 }
158 }
159
160 void SetEventHeadersPerEachDetector(TString detName, UInt_t evId, BmnEventHeader header)
161 {
162 headerMap[pair<UInt_t, TString>(evId, detName)] = header;
163 }
164
165 // Getters
166
167 // Det. digis
168
169 map<UInt_t, vector<BmnGemStripDigit>> GetGemDigi() { return gem; }
170
171 map<UInt_t, vector<BmnCSCDigit>> GetCscDigi() { return csc; }
172
173 map<UInt_t, vector<BmnSiliconDigit>> GetSiliconDigi() { return silicon; }
174
175 map<UInt_t, vector<BmnZDCDigit>> GetZdcDigi() { return zdc; }
176
177 map<UInt_t, vector<BmnMwpcDigit>> GetMwpcDigi() { return mwpc; }
178
179 map<UInt_t, vector<BmnDchDigit>> GetDchDigi() { return dch; }
180
181 map<UInt_t, vector<BmnTof1Digit>> GetTof400Digi() { return tof400; }
182
183 map<UInt_t, vector<BmnTof1Digit>> GetTof700Digi() { return tof700; }
184
185 map<UInt_t, vector<BmnECALDigit>> GetEcalDigi() { return ecal; }
186
187 // Trig. digis
188
189 map<UInt_t, vector<BmnTrigDigit>> GetTrigDigi(TString det = "")
190 {
191 if (det.IsNull()) {
192 cout << "Trigger not found!" << endl;
193 throw;
194 } else if (det.Contains("BC1"))
195 return bc1;
196 else if (det.Contains("BC2"))
197 return bc2;
198 else if (det.Contains("BC3"))
199 return bc3;
200 else if (det.Contains("BC4"))
201 return bc4;
202 else if (det.Contains("BC4"))
203 return bc4;
204 else if (det.Contains("VETO"))
205 return veto;
206 else if (det.Contains("BD"))
207 return bd;
208 else if (det.Contains("SI"))
209 return si;
210 else if (det.Contains("T0"))
211 return t0;
212 else if (det.Contains("FD"))
213 return fd;
214 else if (det.Contains("X1L"))
215 return x1l;
216 else if (det.Contains("X2L"))
217 return x2l;
218 else if (det.Contains("Y1L"))
219 return y1l;
220 else if (det.Contains("Y2L"))
221 return y2l;
222 else if (det.Contains("X1R"))
223 return x1r;
224 else if (det.Contains("X2R"))
225 return x2r;
226 else if (det.Contains("Y1R"))
227 return y1r;
228 else if (det.Contains("Y2R"))
229 return y2r;
230 else {
231 cout << "Trigger not defined in a proper way!" << endl;
232 throw;
233 }
234 }
235
236 map<UInt_t, vector<BmnTrigWaveDigit>> GetTqdcTrigDigi(TString det = "")
237 {
238 if (det.IsNull()) {
239 cout << "TQDC Trigger not found!" << endl;
240 throw;
241 } else if (det.Contains("BC1"))
242 return tqdc_bc1;
243 else if (det.Contains("BC2"))
244 return tqdc_bc2;
245 else if (det.Contains("BC3"))
246 return tqdc_bc3;
247 else if (det.Contains("BC4"))
248 return tqdc_bc4;
249 else if (det.Contains("X1L"))
250 return tqdc_x1l;
251 else if (det.Contains("X2L"))
252 return tqdc_x2l;
253 else if (det.Contains("Y1L"))
254 return tqdc_y1l;
255 else if (det.Contains("Y2L"))
256 return tqdc_y2l;
257 else if (det.Contains("X1R"))
258 return tqdc_x1r;
259 else if (det.Contains("X2R"))
260 return tqdc_x2r;
261 else if (det.Contains("Y1R"))
262 return tqdc_y1r;
263 else if (det.Contains("Y2R"))
264 return tqdc_y2r;
265 else if (det.Contains("VETO"))
266 return tqdc_veto;
267 else {
268 cout << "TQDC Trigger not defined in a proper way!" << endl;
269 throw;
270 }
271 }
272
273 map<pair<UInt_t, TString>, BmnEventHeader> GetEventHeaderMap() { return headerMap; }
274
275 private:
276 // eventId --> detector digis
277 map<UInt_t, vector<BmnGemStripDigit>> gem;
278 map<UInt_t, vector<BmnCSCDigit>> csc;
279 map<UInt_t, vector<BmnSiliconDigit>> silicon;
280 map<UInt_t, vector<BmnZDCDigit>> zdc;
281 map<UInt_t, vector<BmnTrigDigit>> t0;
282 map<UInt_t, vector<BmnTrigDigit>> bc1;
283 map<UInt_t, vector<BmnTrigDigit>> bc2;
284 map<UInt_t, vector<BmnTrigDigit>> bc3;
285 map<UInt_t, vector<BmnTrigDigit>> bc4;
286 map<UInt_t, vector<BmnTrigDigit>> veto;
287
288 map<UInt_t, vector<BmnTrigDigit>> fd;
289 map<UInt_t, vector<BmnTrigDigit>> bd;
290 map<UInt_t, vector<BmnTrigDigit>> si;
291 map<UInt_t, vector<BmnMwpcDigit>> mwpc;
292 map<UInt_t, vector<BmnDchDigit>> dch;
293 map<UInt_t, vector<BmnTof1Digit>> tof400;
294 map<UInt_t, vector<BmnTof1Digit>> tof700;
295 map<UInt_t, vector<BmnECALDigit>> ecal;
296
297 map<UInt_t, vector<BmnTrigDigit>> x1l;
298 map<UInt_t, vector<BmnTrigDigit>> x2l;
299 map<UInt_t, vector<BmnTrigDigit>> y1l;
300 map<UInt_t, vector<BmnTrigDigit>> y2l;
301 map<UInt_t, vector<BmnTrigDigit>> x1r;
302 map<UInt_t, vector<BmnTrigDigit>> x2r;
303 map<UInt_t, vector<BmnTrigDigit>> y1r;
304 map<UInt_t, vector<BmnTrigDigit>> y2r;
305
306 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_veto;
307 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_bc1;
308 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_bc2;
309 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_bc3;
310 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_bc4;
311
312 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_x1l;
313 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_x2l;
314 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_y1l;
315 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_y2l;
316 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_x1r;
317 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_x2r;
318 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_y1r;
319 map<UInt_t, vector<BmnTrigWaveDigit>> tqdc_y2r;
320
321 map<pair<UInt_t, TString>, BmnEventHeader> headerMap;
322
323 ClassDef(BmnDigiContainer, 1);
324};
325
326#endif
map< UInt_t, vector< BmnGemStripDigit > > GetGemDigi()
map< UInt_t, vector< BmnTof1Digit > > GetTof400Digi()
void SetDigi(TString detName, UInt_t evId, vector< BmnTrigDigit > _bc1, vector< BmnTrigDigit > _bc2, vector< BmnTrigDigit > _bc3, vector< BmnTrigDigit > _bc4, vector< BmnTrigDigit > _vc, vector< BmnTrigDigit > _si, vector< BmnTrigDigit > _bd, vector< BmnTrigDigit > _t0, vector< BmnTrigDigit > _fd, vector< BmnTrigDigit > _x1l, vector< BmnTrigDigit > _x2l, vector< BmnTrigDigit > _y1l, vector< BmnTrigDigit > _y2l, vector< BmnTrigDigit > _x1r, vector< BmnTrigDigit > _x2r, vector< BmnTrigDigit > _y1r, vector< BmnTrigDigit > _y2r, vector< BmnTrigWaveDigit > _tqdc_bc1, vector< BmnTrigWaveDigit > _tqdc_bc2, vector< BmnTrigWaveDigit > _tqdc_bc3, vector< BmnTrigWaveDigit > _tqdc_bc4, vector< BmnTrigWaveDigit > _tqdc_vc, vector< BmnTrigWaveDigit > _tqdc_x1l, vector< BmnTrigWaveDigit > _tqdc_x2l, vector< BmnTrigWaveDigit > _tqdc_y1l, vector< BmnTrigWaveDigit > _tqdc_y2l, vector< BmnTrigWaveDigit > _tqdc_x1r, vector< BmnTrigWaveDigit > _tqdc_x2r, vector< BmnTrigWaveDigit > _tqdc_y1r, vector< BmnTrigWaveDigit > _tqdc_y2r, vector< BmnZDCDigit > _zdc, vector< BmnGemStripDigit > _gem, vector< BmnCSCDigit > _csc, vector< BmnSiliconDigit > _silicon, vector< BmnMwpcDigit > _mwpc, vector< BmnDchDigit > _dch, vector< BmnTof1Digit > _tof400, vector< BmnTof1Digit > _tof700, vector< BmnECALDigit > _ecal)
virtual ~BmnDigiContainer()
map< pair< UInt_t, TString >, BmnEventHeader > GetEventHeaderMap()
map< UInt_t, vector< BmnZDCDigit > > GetZdcDigi()
map< UInt_t, vector< BmnTrigDigit > > GetTrigDigi(TString det="")
map< UInt_t, vector< BmnSiliconDigit > > GetSiliconDigi()
map< UInt_t, vector< BmnECALDigit > > GetEcalDigi()
map< UInt_t, vector< BmnTrigWaveDigit > > GetTqdcTrigDigi(TString det="")
void SetEventHeadersPerEachDetector(TString detName, UInt_t evId, BmnEventHeader header)
map< UInt_t, vector< BmnMwpcDigit > > GetMwpcDigi()
map< UInt_t, vector< BmnCSCDigit > > GetCscDigi()
map< UInt_t, vector< BmnTof1Digit > > GetTof700Digi()
map< UInt_t, vector< BmnDchDigit > > GetDchDigi()
STL namespace.