StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
HLTFormats.h
1 /******************* NOTE ********************************************
2  * This file should never be included directly. It is included from *
3  * /DAQ/include/daqFormats.h after the necessary structs are defined *
4  *********************************************************************/
5 
6 #ifndef _HLT_FORMATS_H
7 #define _HLT_FORMATS_H
8 
9 // #define HLT_GL3_VERSION 0x20100107
10 // #define HLT_GL3_VERSION 0x20110114 // add di-electron selection method bits
11 // #define HLT_GL3_VERSION 0x20130117 // optimazed mamoty layout
12 // #define HLT_GL3_VERSION 0x20140522 // add MTD data structure
13 // #define HLT_GL3_VERSION 0x20160120 // add MTDQuarkonium
14 // #define HLT_GL3_VERSION 0x20160210 // add isTrigger to hlt_MtdHit
15 // #define HLT_GL3_VERSION 0x20180607 // add bField in HLT_EVE
16 // #define HLT_GL3_VERSION 0x20190602 // add bunch_id in HLT_EVE
17 // #define HLT_GL3_VERSION 0x20190603 // add earliest TACs for BBC/VPD/EPD to HLT_EVE
18 // #define HLT_GL3_VERSION 0x20191201 // add ETOF hits
19 #define HLT_GL3_VERSION 0x20200107 // add ETOF time of flight under pion assumption
20 
21 struct hlt_track {
22  int id ; //primary key
23  unsigned short flag ; // Primaries flag = 1, Secondaries flag=0
24  char innerMostRow ;
25  char outerMostRow ;
26  unsigned char nHits ; // Number of points assigned to that track
27  char reserved ;
28  unsigned char ndedx; // nr of clusters contributing to the dedx value
29  char q ; // charge
30  float chi2[2]; // chi squared of the momentum fit
31  float dedx; // dE/dx information
32  float pt ; // pt (transverse momentum) at (r,phi,z)
33  float phi0; // azimuthal angle of the first point
34  float psi ; // azimuthal angle of the momentum at (r,..
35  float r0 ; // r (in cyl. coord.) for the first point
36  float tanl; // tg of the dip angle at (r,phi,z)
37  float z0 ; // z coordinate of the first point
38  float length ;
39  float dpt ;
40  float dpsi;
41  float dz0 ;
42  float dtanl ;
43 }; //16 dwords
44 
45 // Bank which actually has the global tracks in it:
46 // compared to the sector level tracks this merges the pointer and data bank
47 // into one Bank.
48 
49 struct HLT_GT {
50  unsigned int nGlobalTracks;
51  struct hlt_track globalTrack[10000];
52 };
53 
54 struct HLT_PT {
55  unsigned int nPrimaryTracks;
56  struct hlt_track primaryTrack[10000];
57 };
58 
59 struct hlt_TofHit{
60  short trayId;
61  short channel; // = nModule*6+nCell
62  float tdc;
63  float tot;
64  float tof;
65  float triggertime;
66 };
67 
68 struct HLT_TOF {
69  unsigned int nTofHits;
70  struct hlt_TofHit tofHit[10000];
71 };
72 
73 struct hlt_ETofHit{
74  float time;
75 
76  float localX;
77  float localY;
78 
79  float globalX;
80  float globalY;
81  float globalZ;
82 
83  float tot;
84 
85  short sector;
86  short module;
87  short counter;
88  short clustersize;
89 
90  short trackId;
91 };
92 
93 struct HLT_ETOF{
94  unsigned int nETofHits;
95  struct hlt_ETofHit etofHit[10000];
96 };
97 
98 struct hlt_MtdHit {
99  float leadingEdgeTime[2];
100  float trailingEdgeTime[2];
101  char fiberId;
102  char backleg; // 1-30
103  char tray; // 1-5
104  char channel; // 0-12
105  int hlt_trackId;
106  float delta_z;
107  float delta_y;
108  int isTrigger;
109 };
110 
111 struct HLT_MTD {
112  unsigned int nMtdHits;
113  struct hlt_MtdHit mtdHit[10000];
114 };
115 
116 struct HLT_MTDPair {
117  int muonTrackId1; // leading track
118  int muonTrackId2;
119  float pt; // pair py,eta,phi
120  float eta;
121  float phi;
122  float invMass; // pair InvMass
123 };
124 
126  int nMTDQuarkonium;
127  struct HLT_MTDPair MTDQuarkonium[1000];
128 };
129 
130 struct HLT_PVPD {
131  unsigned int nPvpdHits;
132  struct hlt_TofHit pvpdHit[10000];
133 };
134 
135 struct hlt_emcTower {
136  int adc;
137  float energy;
138 
139  float phi;
140  float eta;
141  float z;
142  int softId;
143  int daqId;
144 };
145 
146 struct HLT_EMC {
147  unsigned int nEmcTowers;
148  struct hlt_emcTower emcTower[4800];
149 };
150 
151 struct hlt_node {
152  int globalTrackSN; // serial number in HLT_GT
153  int primaryTrackSN; // serial number in HLT_PT
154  int tofHitSN; // serial number in HLT_TOF
155  int emcTowerSN; // serial number in HLT_EMC
156 
157  double emcMatchPhiDiff; // make this struct must be 8-byte aligned
158  double emcMatchZEdge;
159 
160  int projChannel;
161  float localY;
162  float localZ;
163  float beta;
164  float tof;
165  float pathlength;
166 
167  float etofBeta; // -999: no intercept; -1: intercept, no match; >= 0: match
168  float etofPi; // time of flight measured with ETOF assume pi
169 };
170 
171 struct HLT_NODE {
172  unsigned long long int nNodes; // keep alignment 8 bytes
173  struct hlt_node node[10000];
174 };
175 
176 struct HLT_EVE {
177  unsigned int version ;
178  unsigned int hltDecision; // HLT trigger bits
179  float vertexX;
180  float vertexY;
181  float vertexZ;
182  float lmVertexX;
183  float lmVertexY;
184  float lmVertexZ;
185  float vpdVertexZ;
186  float T0;
187  float innerSectorGain;
188  float outerSectorGain;
189  float beamlineX;
190  float beamlineY;
191  float bField;
192  unsigned short bunch_id;
193  unsigned short bbce; // earliest TACs for BBC/VPD/EPD
194  unsigned short bbcw;
195  unsigned short vpde;
196  unsigned short vpdw;
197  unsigned short epde;
198  unsigned short epdw;
199 };
200 
202  int dau1NodeSN;
203  int dau2NodeSN;
204  float invariantMass;
205  float pt;
206  float psi;
207  float tanl;
208  int dau1SelectionBit;
209  int dau2SelectionBit;
210 };
211 
213  int dau1NodeSN;
214  int dau2NodeSN;
215  float invariantMass;
216  float pt;
217  float psi;
218  float tanl;
219  float deltphi; // phi difference between two dau tracks
220  //int dau1SelectionBit;
221  //int dau2SelectionBit;
222 };
223 
225  float p2;
226  float invMass;
227 };
228 
229 // di-electron pair bank
230 struct HLT_DIEP {
231  unsigned int nEPairs;
232  struct hlt_diElectronPair ePair[1000];
233 };
234 
235 // UPC rho bank (pion pair)
236 struct HLT_RHO {
237  unsigned int nRhos;
238  struct hlt_diPionPair PionPair[1000];
239 };
240 
241 // high pt bank
242 struct HLT_HIPT {
243  unsigned int nHighPt;
244  int highPtNodeSN[1000];
245 };
246 
247 // heavy fragment bank
248 struct HLT_HF {
249  unsigned int nHeavyFragments;
250  int heavyFragmentSN[1000];
251 };
252 
253 // MatchedHT2 bank
254 struct HLT_HT2 {
255  int nPairs;
256  float p0;
257  float EoP0;
258  int towerADC;
259  int towerSoftID;
260  int maxADC;
261  float r;
262  float phi;
263  float z;
264  float eta;
265  float pt;
266  float psi; //azimuthl angle of p at r,phi,z
267  bool triggered;
268  char reserved[3]; // padding
269  struct hlt_MatchedHT2 trackPair[1000];
270 };
271 
272 // Low Multipilicity
273 struct HLT_LM {
274  int nPrimaryTracks;
275 };
276 
277 // V0 bank
278 struct hlt_v0 {
279  unsigned mIndex2Track[2]; // two daughters, 0 for pos, 1 for neg
280  float mMomentum[2][3];
281  float mV0Pos[3]; // v0 position
282  float mDcaDaughters; // dca between two daughters
283  float mDca2Vtx; // dca between V0 and primary vertex
284  float mM; // invariant mass of V0
285 };
286 
287 struct HLT_V0ARRAY {
288  static const unsigned MAXNV0S = 1000;
289  unsigned nV0s;
290  hlt_v0 v0Array[MAXNV0S];
291 };
292 
293 #endif
Definition: tof.h:15