]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - HLT/TRD/AliHLTTRDTracklet.cxx
restoring backward compatibility after changes in AliTRDseedV1 r39693
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDTracklet.cxx
... / ...
CommitLineData
1#include "AliHLTTRDTracklet.h"
2
3/**
4 * Default Constructor
5 */
6//============================================================================
7AliHLTTRDTracklet::AliHLTTRDTracklet():
8 fN(0),
9 fdX(-1),
10 fS2Y(-1),
11 fPt(-1),
12 fX0(-1),
13 fChi2(-1),
14 // fExB(-1),
15 // fVD(-1),
16 // fT0(-1),
17 // fS2PRF(-1),
18 // fDiffL(-1),
19 // fDiffT(-1),
20 // fX(-1),
21 // fY(-1),
22 // fZ(-1),
23 // fS2Z(-1),
24 fDet(-1),
25 fBits(0),
26 fCount(0),
27#if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
28 fSize(sizeof(AliHLTTRDTracklet)-sizeof(AliHLTTRDCluster)),
29#else
30 fSize(sizeof(AliHLTTRDTracklet))
31#endif
32{
33 InitArrays();
34}
35
36/**
37 * Main Constructor
38 */
39//============================================================================
40AliHLTTRDTracklet::AliHLTTRDTracklet(const AliTRDseedV1* const inTracklet):
41 fN(inTracklet->fN),
42 fdX(inTracklet->fdX),
43 fS2Y(inTracklet->fS2Y),
44 fPt(inTracklet->fPt),
45 fX0(inTracklet->fX0),
46 fChi2(inTracklet->fChi2),
47 // fExB(inTracklet->fExB),
48 // fVD(inTracklet->fVD),
49 // fT0(inTracklet->fT0),
50 // fS2PRF(inTracklet->fS2PRF),
51 // fDiffL(inTracklet->fDiffL),
52 // fDiffT(inTracklet->fDiffT),
53 // fX(inTracklet->fX),
54 // fY(inTracklet->fY),
55 // fZ(inTracklet->fZ),
56 // fS2Z(inTracklet->fS2Z),
57 fDet(inTracklet->fDet),
58 fBits(0),
59 fCount(0),
60#if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
61 fSize(sizeof(AliHLTTRDTracklet)-sizeof(AliHLTTRDCluster)),
62#else
63 fSize(sizeof(AliHLTTRDTracklet))
64#endif
65{
66 CopyDataMembers(inTracklet);
67}
68
69/**
70 * Copy simple (non-pointer) data members from TRDTracklet to HLTTRDTracklet
71 */
72//============================================================================
73void AliHLTTRDTracklet::CopyDataMembers(const AliTRDseedV1* const inTracklet)
74{
75 for (Int_t i=0; i < 2; i++){
76 fYref[i] = inTracklet->fYref[i];
77 fZref[i] = inTracklet->fZref[i];
78 fYfit[i] = inTracklet->fYfit[i];
79 fZfit[i] = inTracklet->fZfit[i];
80 }
81 fC[0] = inTracklet->GetC();
82#ifndef HAVE_NOT_ALITRD_SEEDV1_r39693
83 fC[1] = inTracklet->GetC(1);
84#endif //HAVE_NOT_ALITRD_SEEDV1_r39693
85 for (Int_t i=0; i < 3; i++){
86 fPad[i] = inTracklet->fPad[i];
87 // fCov[i] = inTracklet->fCov[i];
88 }
89
90 // for (Int_t i=0; i < 7; i++){
91 // fRefCov[i] = inTracklet->fRefCov[i];
92 // }
93
94 // for (Int_t i=0; i < AliTRDseedV1::kNslices; i++){
95 // fdEdx[i] = inTracklet->fdEdx[i];
96 // }
97
98 for (Int_t i=0; i < AliPID::kSPECIES; i++){
99 fProb[i] = inTracklet->fProb[i];
100 }
101
102 fBits = UInt_t(inTracklet->TestBits(-1)) >> 14;
103
104 for (Int_t iTimeBin = 0; iTimeBin < AliTRDseedV1::kNclusters; iTimeBin++){
105 AliTRDcluster* trdCluster = inTracklet->GetClusters(iTimeBin);
106 if (trdCluster){
107 fPos[fCount] = iTimeBin;
108 new (&fClusters[fCount]) AliHLTTRDCluster(trdCluster);
109 fCount++;
110 fSize += sizeof(AliHLTTRDCluster);
111 }
112 }
113 //if((void*)&fClusters[fCount]!=(void*)GetEndPointer()){printf("ERRR");return;}
114}
115
116/**
117 * Copy data to the output TRDseedV1
118 */
119//============================================================================
120void AliHLTTRDTracklet::ExportTRDTracklet(AliTRDseedV1* const outTracklet) const
121{
122 //outTracklet->Reset(); we always use a fresh trdtracklet as input, so this is useless
123 outTracklet->SetBit(AliTRDseedV1::kOwner);
124
125 outTracklet->fN = fN;
126 outTracklet->fdX = fdX;
127 outTracklet->fX0 = fX0;
128 outTracklet->fS2Y = fS2Y;
129 outTracklet->fPt = fPt;
130 outTracklet->SetC(fC[0]);
131#ifndef HAVE_NOT_ALITRD_SEEDV1_r39693
132 outTracklet->SetC(fC[1], 1);
133#endif //HAVE_NOT_ALITRD_SEEDV1_r39693
134 outTracklet->fChi2 = fChi2;
135 // outTracklet->fExB = fExB;
136 // outTracklet->fVD = fVD;
137 // outTracklet->fT0 = fT0;
138 // outTracklet->fS2PRF = fS2PRF;
139 // outTracklet->fDiffL = fDiffL;
140 // outTracklet->fDiffT = fDiffT;
141 // outTracklet->fX = fX;
142 // outTracklet->fY = fY;
143 // outTracklet->fZ = fZ;
144 // outTracklet->fS2Z = fS2Z;
145 outTracklet->fDet = fDet;
146
147 for (Int_t i=0; i < 2; i++){
148 outTracklet->fYref[i] = fYref[i];
149 outTracklet->fZref[i] = fZref[i];
150 outTracklet->fYfit[i] = fYfit[i];
151 outTracklet->fZfit[i] = fZfit[i];
152 }
153
154 for (Int_t i=0; i < 3; i++){
155 outTracklet->fPad[i] = fPad[i];
156 // outTracklet->fCov[i] = fCov[i];
157 }
158
159 // for (Int_t i=0; i < 7; i++){
160 // outTracklet->fRefCov[i] = fRefCov[i];
161 // }
162
163 // for (Int_t i=0; i < AliTRDseedV1::kNslices; i++){
164 // outTracklet->fdEdx[i] = fdEdx[i];
165 // }
166
167 for (Int_t i=0; i < AliPID::kSPECIES; i++){
168 outTracklet->fProb[i] = fProb[i];
169 }
170
171 outTracklet->SetBit(UInt_t(fBits)<<14);
172
173 for(Int_t iCluster=0; iCluster < fCount; iCluster++){
174 AliTRDcluster *trdCluster = new AliTRDcluster();
175 fClusters[iCluster].ExportTRDCluster(trdCluster);
176 outTracklet->fClusters[fPos[iCluster]] = trdCluster;
177 outTracklet->fIndexes[fPos[iCluster]] = iCluster;
178 }
179}
180
181
182/**
183 * Init arrays
184 */
185//============================================================================
186void AliHLTTRDTracklet::InitArrays()
187{
188 for (Int_t i=0; i < 2; i++){
189 fYref[i] = -1;
190 fZref[i] = -1;
191 fYfit[i] = -1;
192 fZfit[i] = -1;
193 }
194 fC[0] = 0.; fC[1] = 0.;
195 for (Int_t i=0; i < AliPID::kSPECIES; i++)
196 fProb[i]=0;
197}
198
199/**
200 * Prints main info about tracklet
201 */
202//============================================================================
203void AliHLTTRDTracklet::Print(Bool_t printClusters) const
204{
205 //printf("--hltTracklet-- addr 0x%p(%i); fSize %i\n", this, (int)this, fSize);
206 printf(" fDet %i; fPt %f; fdX %f fN %i\n", fDet, fPt, fdX, fN);
207
208 if(!printClusters) return;
209 for (UInt_t iCluster = 0; iCluster < fCount; iCluster++){
210 printf(" [%i] ",iCluster);
211 fClusters[iCluster].Print();
212 }
213}
214
215/**
216 * Read clusters to TRDtracklet from the memory
217 */
218//============================================================================
219// void AliHLTTRDTracklet::ReadClustersFromMemory(void *input)
220// {
221// AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input;
222// AliHLTTRDCluster* hltCluster = NULL;
223
224// for (Int_t iCluster = 0; iCluster < AliTRDseedV1::kNclusters; iCluster++){
225// // if we had something in the fClusters[iCluster] before copying,
226// // then this entry in the array should not be empty. Fill it.
227// if (fClusters[iCluster]){
228// hltCluster = (AliHLTTRDCluster*) iterPtr;
229// fClusters[iCluster] = hltCluster;
230// iterPtr += hltCluster->GetSize();
231// //hltCluster->Print();
232// }
233
234// }
235// }
236