BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/RawDataProviderSvc/include/RawDataProviderSvc/TofData.h
Go to the documentation of this file.
1// Convert Data Format from Online data to TofData
2//
3#ifndef TOFDATA_H
4#define TOFDATA_H
5#include "Identifier/Identifier.h"
6#include <map>
7#include <vector>
8
9class TofValue {
10public:
11 TofValue();
12 virtual ~TofValue();
13
14 // Assignment constructor.
15 TofValue& operator=( const TofValue& source );
16
17 int channel() const { return m_channel; }
18 int times() const { return m_times; }
19 int number() const { return m_number; }
20 int clock() const { return m_clock; }
21 double value() const { return m_value; }
22 bool used() const { return m_used; }
23
24 void timespp();
25 void timesmm();
26 void setNumber( int number ) { m_number = number; }
27 // virtual void setValue( int value ) = 0;
28 void setUsed( bool used ) { m_used = used; }
29
30protected:
33 double m_value;
34
35private:
36 int m_times;
37 int m_number;
38 bool m_used;
39};
40
41class Adc : public TofValue {
42public:
43 Adc();
44
45 void setCorr() { m_corr = true; }
46 void setElec() { m_elec = true; }
47
48 void setValue( Identifier identify, int value );
49
50 double qtc() const { return m_qtc; }
51
52private:
53 double m_qtc;
54 bool m_corr, m_elec, m_mrpc;
55};
56
57class Tdc : public TofValue {
58public:
59 void setValue( int value );
60
61private:
62};
63
64class PmtData {
65public:
66 PmtData();
67 ~PmtData();
68
69 // Assignment constructor.
70 PmtData& operator=( const PmtData& source );
71
72 unsigned int iden() const { return m_iden_value; }
73 unsigned int times() const { return m_times; }
74 int adcChannel();
75 double qtc();
76 double adc();
77 int qclock();
78 int tdcChannel();
79 double tdc();
80 int tclock();
81 unsigned int quality() const { return m_quality; }
82
83 void timespp();
84 void timesmm();
85 int qtimes();
86 void qtimespp();
87 void qtimesmm();
88 int ttimes();
89 void ttimespp();
90 void ttimesmm();
91
92 int qnumber();
93 int tnumber();
94
95 bool qused();
96 bool tused();
97 bool used();
98
99 void setIdentify( unsigned int iden ) { m_iden_value = iden; }
100 void setAdc( Adc* adc );
101 void setTdc( Tdc* tdc );
102 void setUsed();
103
104 void clear();
105
106private:
107 unsigned int m_iden_value;
108 unsigned int m_times;
109 unsigned int m_quality; // 0x 0 0 1 (Q) 1 (T)
110 Adc* m_adc;
111 Tdc* m_tdc;
112};
113
114class TofData {
115public:
116 TofData();
117 ~TofData();
118
119 // Assignment constructor.
120 TofData& operator=( const TofData& source );
121
122 unsigned int identify() const { return m_identify; }
123 bool is_mrpc() const { return m_mrpc; }
124 bool barrel() const { return m_barrel; }
125 int tofId() const { return m_tofId; }
126 int layer() const { return m_layer; }
127 int strip() const { return m_strip; }
128 int tofTrackId() const { return m_tofTrackId; }
129
130 unsigned int times() const { return m_times; }
131
132 void data( double& adcEast, double& tdcEast, double& adcWest, double& tdcWest );
133 void data( double& adc, double& tdc );
134
135 PmtData* forward() const { return m_forward; }
136 PmtData* backward() const { return m_backward; }
137
138 double adc1();
139 double tdc1();
140 double adc2();
141 double tdc2();
142 double adc();
143 double tdc();
144
145 double qtc1();
146 double qtc2();
147 double qtc();
148
149 int adcChannelEast();
150 int tdcChannelEast();
151 int adcChannelWest();
152 int tdcChannelWest();
153 int adcChannel();
154 int tdcChannel();
155
156 int qclock1();
157 int tclock1();
158 int qclock2();
159 int tclock2();
160 int qclock();
161 int tclock();
162
163 unsigned int quality() const { return m_quality; }
164 bool tmatched() const { return m_tmatched; }
165
166 int qtimes1();
167 int ttimes1();
168 int qtimes2();
169 int ttimes2();
170 unsigned int eastTimes();
171 unsigned int westTimes();
172
173 int qnumber1();
174 int tnumber1();
175 int qnumber2();
176 int tnumber2();
177
178 bool qused1();
179 bool tused1();
180 bool qused2();
181 bool tused2();
182 bool used1();
183 bool used2();
184 bool used();
185
186 double ztdc() const { return m_ztdc; }
187 double zadc() const { return m_zadc; }
188
189 double zpos() const { return m_zpos; }
190 double energy() const { return m_energy; }
191
192public:
194 void setMisLable() { m_misLable = true; }
195 void setTofTrackId( int tofTrackId ) { m_tofTrackId = tofTrackId; }
196 void setTimes( unsigned int times ) { m_times = times; }
197 void setForward( PmtData* pmt );
198 void setBackward( PmtData* pmt );
199 void setQuality( unsigned int quality ) { m_quality = quality; }
200 void setTMatched( bool tmatched ) { m_tmatched = tmatched; }
201 void setUsed();
202 void setZTdc( double ztdc ) { m_ztdc = ztdc; }
203 void setZAdc( double zadc ) { m_zadc = zadc; }
204 void setZpos( double zpos ) { m_zpos = zpos; }
205 void setEnergy( double energy ) { m_energy = energy; }
206
207 void clear();
208
209private:
210 unsigned int m_identify;
211 bool m_mrpc;
212 bool m_barrel;
213 int m_tofId;
214 int m_layer;
215 int m_strip;
216 int m_tofTrackId;
217
218 bool m_misLable;
219
220 double m_ztdc;
221 double m_zadc;
222
223 double m_zpos; // z-position after calibration
224 double m_energy; // energy deposit after calibration
225
226 unsigned int m_times;
227 unsigned int m_quality;
228 // 0x 0...0 1 (East Q) 1 (East T) 1 (West Q) 1 (West T)
229 // Forward == East ; Backward = West
230 bool m_tmatched;
231 // true, will used for Estime and TOF, false, will used only for EMC
232
233 PmtData* m_forward;
234 PmtData* m_backward;
235};
236
237typedef std::multimap<unsigned int, TofData*> TofDataMap;
238typedef std::multimap<unsigned int, TofData*>::iterator IterTofDataMap;
239
240typedef std::vector<TofData*> TofDataVector;
241typedef std::vector<TofData*>::iterator IterTofDataVector;
242
243#endif
TTree * data
std::multimap< unsigned int, TofData * > TofDataMap
std::vector< TofData * >::iterator IterTofDataVector
std::multimap< unsignedint, TofData * >::iterator IterTofDataMap
NTuple::Array< double > m_adc
NTuple::Array< double > m_tdc
NTuple::Array< double > m_layer
Adc()
Definition TofData.cxx:66
void setValue(Identifier identify, int value)
Definition TofData.cxx:73
void qtimespp()
Definition TofData.cxx:332
int qtimes()
Definition TofData.cxx:352
bool tused()
Definition TofData.cxx:382
int tdcChannel()
Definition TofData.cxx:304
void setAdc(Adc *adc)
Definition TofData.cxx:395
double tdc()
Definition TofData.cxx:310
bool qused()
Definition TofData.cxx:376
int ttimes()
Definition TofData.cxx:358
void qtimesmm()
Definition TofData.cxx:337
double adc()
Definition TofData.cxx:268
int tnumber()
Definition TofData.cxx:370
void setTdc(Tdc *tdc)
Definition TofData.cxx:405
void timespp()
Definition TofData.cxx:322
void ttimesmm()
Definition TofData.cxx:347
void timesmm()
Definition TofData.cxx:327
int adcChannel()
Definition TofData.cxx:252
void ttimespp()
Definition TofData.cxx:342
int qnumber()
Definition TofData.cxx:364
double qtc()
Definition TofData.cxx:258
void clear()
Definition TofData.cxx:421
int tclock()
Definition TofData.cxx:316
PmtData & operator=(const PmtData &source)
Definition TofData.cxx:243
bool used()
Definition TofData.cxx:388
void setUsed()
Definition TofData.cxx:415
int qclock()
Definition TofData.cxx:298
void setValue(int value)
Definition TofData.cxx:44
int tdcChannel()
Definition TofData.cxx:639
double qtc2()
Definition TofData.cxx:597
int qnumber2()
Definition TofData.cxx:729
int qtimes2()
Definition TofData.cxx:693
void setUsed()
Definition TofData.cxx:812
bool tused2()
Definition TofData.cxx:759
unsigned int westTimes()
Definition TofData.cxx:711
int ttimes1()
Definition TofData.cxx:687
bool qused1()
Definition TofData.cxx:741
bool tused1()
Definition TofData.cxx:747
double adc2()
Definition TofData.cxx:567
int tclock1()
Definition TofData.cxx:651
void setForward(PmtData *pmt)
Definition TofData.cxx:784
int qclock1()
Definition TofData.cxx:645
int tclock()
Definition TofData.cxx:675
double adc()
Definition TofData.cxx:579
double tdc2()
Definition TofData.cxx:573
double qtc1()
Definition TofData.cxx:591
TofData & operator=(const TofData &source)
Definition TofData.cxx:462
int tdcChannelWest()
Definition TofData.cxx:627
int adcChannel()
Definition TofData.cxx:633
void clear()
Definition TofData.cxx:818
bool used2()
Definition TofData.cxx:771
int qtimes1()
Definition TofData.cxx:681
int tnumber1()
Definition TofData.cxx:723
int adcChannelWest()
Definition TofData.cxx:621
bool qused2()
Definition TofData.cxx:753
double tdc1()
Definition TofData.cxx:561
void setBackward(PmtData *pmt)
Definition TofData.cxx:798
int qnumber1()
Definition TofData.cxx:717
int adcChannelEast()
Definition TofData.cxx:609
int qclock()
Definition TofData.cxx:669
int ttimes2()
Definition TofData.cxx:699
double adc1()
Definition TofData.cxx:555
int qclock2()
Definition TofData.cxx:657
unsigned int eastTimes()
Definition TofData.cxx:705
int tnumber2()
Definition TofData.cxx:735
bool used1()
Definition TofData.cxx:765
double tdc()
Definition TofData.cxx:585
void setIdentify(Identifier identify)
Definition TofData.cxx:494
int tclock2()
Definition TofData.cxx:663
int tdcChannelEast()
Definition TofData.cxx:615
double qtc()
Definition TofData.cxx:603
bool used()
Definition TofData.cxx:777
void timespp()
Definition TofData.cxx:34
TofValue & operator=(const TofValue &source)
Definition TofData.cxx:24
void timesmm()
Definition TofData.cxx:39
virtual ~TofValue()
Definition TofData.cxx:22