]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TRD/AliHLTTRDTracklet.cxx
restoring backward compatibility after changes in AliTRDseedV1 r39693
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDTracklet.cxx
CommitLineData
d679dd6c 1#include "AliHLTTRDTracklet.h"
0fae33c8 2
d679dd6c 3/**
4 * Default Constructor
5 */
6//============================================================================
7AliHLTTRDTracklet::AliHLTTRDTracklet():
93ce7d1b 8 fN(0),
93ce7d1b 9 fdX(-1),
10 fS2Y(-1),
e44c0591 11 fPt(-1),
d679dd6c 12 fX0(-1),
d679dd6c 13 fChi2(-1),
0fae33c8 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),
9630a0b8 24 fDet(-1),
0fae33c8 25 fBits(0),
9630a0b8 26 fCount(0),
93ce7d1b 27#if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
d55e8c51 28 fSize(sizeof(AliHLTTRDTracklet)-sizeof(AliHLTTRDCluster)),
93ce7d1b 29#else
9630a0b8 30 fSize(sizeof(AliHLTTRDTracklet))
93ce7d1b 31#endif
d679dd6c 32{
33 InitArrays();
d679dd6c 34}
35
36/**
93ce7d1b 37 * Main Constructor
d679dd6c 38 */
39//============================================================================
93ce7d1b 40AliHLTTRDTracklet::AliHLTTRDTracklet(const AliTRDseedV1* const inTracklet):
41 fN(inTracklet->fN),
93ce7d1b 42 fdX(inTracklet->fdX),
43 fS2Y(inTracklet->fS2Y),
44 fPt(inTracklet->fPt),
93ce7d1b 45 fX0(inTracklet->fX0),
93ce7d1b 46 fChi2(inTracklet->fChi2),
0fae33c8 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),
9630a0b8 57 fDet(inTracklet->fDet),
0fae33c8 58 fBits(0),
9630a0b8 59 fCount(0),
93ce7d1b 60#if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
d55e8c51 61 fSize(sizeof(AliHLTTRDTracklet)-sizeof(AliHLTTRDCluster)),
93ce7d1b 62#else
9630a0b8 63 fSize(sizeof(AliHLTTRDTracklet))
93ce7d1b 64#endif
d679dd6c 65{
93ce7d1b 66 CopyDataMembers(inTracklet);
d679dd6c 67}
68
69/**
70 * Copy simple (non-pointer) data members from TRDTracklet to HLTTRDTracklet
71 */
72//============================================================================
93ce7d1b 73void AliHLTTRDTracklet::CopyDataMembers(const AliTRDseedV1* const inTracklet)
d679dd6c 74{
75 for (Int_t i=0; i < 2; i++){
93ce7d1b 76 fYref[i] = inTracklet->fYref[i];
77 fZref[i] = inTracklet->fZref[i];
78 fYfit[i] = inTracklet->fYfit[i];
79 fZfit[i] = inTracklet->fZfit[i];
d679dd6c 80 }
8c5cf34e 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
9630a0b8 85 for (Int_t i=0; i < 3; i++){
86 fPad[i] = inTracklet->fPad[i];
0fae33c8 87 // fCov[i] = inTracklet->fCov[i];
9630a0b8 88 }
0fae33c8 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 // }
d679dd6c 97
93ce7d1b 98 for (Int_t i=0; i < AliPID::kSPECIES; i++){
99 fProb[i] = inTracklet->fProb[i];
d679dd6c 100 }
101
0fae33c8 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);
93ce7d1b 111 }
0fae33c8 112 }
113 //if((void*)&fClusters[fCount]!=(void*)GetEndPointer()){printf("ERRR");return;}
d679dd6c 114}
115
116/**
117 * Copy data to the output TRDseedV1
118 */
119//============================================================================
93ce7d1b 120void AliHLTTRDTracklet::ExportTRDTracklet(AliTRDseedV1* const outTracklet) const
d679dd6c 121{
93ce7d1b 122 //outTracklet->Reset(); we always use a fresh trdtracklet as input, so this is useless
d8731936 123 outTracklet->SetBit(AliTRDseedV1::kOwner);
93ce7d1b 124
125 outTracklet->fN = fN;
93ce7d1b 126 outTracklet->fdX = fdX;
127 outTracklet->fX0 = fX0;
128 outTracklet->fS2Y = fS2Y;
129 outTracklet->fPt = fPt;
8c5cf34e 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
93ce7d1b 134 outTracklet->fChi2 = fChi2;
0fae33c8 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;
93ce7d1b 146
d679dd6c 147 for (Int_t i=0; i < 2; i++){
93ce7d1b 148 outTracklet->fYref[i] = fYref[i];
149 outTracklet->fZref[i] = fZref[i];
150 outTracklet->fYfit[i] = fYfit[i];
151 outTracklet->fZfit[i] = fZfit[i];
d679dd6c 152 }
d679dd6c 153
9630a0b8 154 for (Int_t i=0; i < 3; i++){
155 outTracklet->fPad[i] = fPad[i];
0fae33c8 156 // outTracklet->fCov[i] = fCov[i];
9630a0b8 157 }
158
0fae33c8 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
93ce7d1b 167 for (Int_t i=0; i < AliPID::kSPECIES; i++){
168 outTracklet->fProb[i] = fProb[i];
d679dd6c 169 }
e3cf3d02 170
0fae33c8 171 outTracklet->SetBit(UInt_t(fBits)<<14);
172
173 for(Int_t iCluster=0; iCluster < fCount; iCluster++){
93ce7d1b 174 AliTRDcluster *trdCluster = new AliTRDcluster();
d55e8c51 175 fClusters[iCluster].ExportTRDCluster(trdCluster);
0fae33c8 176 outTracklet->fClusters[fPos[iCluster]] = trdCluster;
177 outTracklet->fIndexes[fPos[iCluster]] = iCluster;
d679dd6c 178 }
d679dd6c 179}
180
181
182/**
183 * Init arrays
184 */
185//============================================================================
186void AliHLTTRDTracklet::InitArrays()
187{
d679dd6c 188 for (Int_t i=0; i < 2; i++){
189 fYref[i] = -1;
190 fZref[i] = -1;
d679dd6c 191 fYfit[i] = -1;
192 fZfit[i] = -1;
d679dd6c 193 }
68f9b6bd 194 fC[0] = 0.; fC[1] = 0.;
93ce7d1b 195 for (Int_t i=0; i < AliPID::kSPECIES; i++)
196 fProb[i]=0;
d679dd6c 197}
198
199/**
200 * Prints main info about tracklet
201 */
202//============================================================================
93ce7d1b 203void AliHLTTRDTracklet::Print(Bool_t printClusters) const
d679dd6c 204{
205 //printf("--hltTracklet-- addr 0x%p(%i); fSize %i\n", this, (int)this, fSize);
93ce7d1b 206 printf(" fDet %i; fPt %f; fdX %f fN %i\n", fDet, fPt, fdX, fN);
d679dd6c 207
e3cf3d02 208 if(!printClusters) return;
d55e8c51 209 for (UInt_t iCluster = 0; iCluster < fCount; iCluster++){
210 printf(" [%i] ",iCluster);
211 fClusters[iCluster].Print();
d679dd6c 212 }
d679dd6c 213}
214
215/**
216 * Read clusters to TRDtracklet from the memory
217 */
218//============================================================================
93ce7d1b 219// void AliHLTTRDTracklet::ReadClustersFromMemory(void *input)
220// {
221// AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input;
222// AliHLTTRDCluster* hltCluster = NULL;
d679dd6c 223
93ce7d1b 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// }
d679dd6c 233
93ce7d1b 234// }
235// }
d8731936 236