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