1 #include "AliHLTTRDTracklet.h"
6 //============================================================================
7 AliHLTTRDTracklet::AliHLTTRDTracklet():
27 #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
28 fSize(sizeof(AliHLTTRDTracklet)-sizeof(AliHLTTRDCluster)),
30 fSize(sizeof(AliHLTTRDTracklet))
39 //============================================================================
40 AliHLTTRDTracklet::AliHLTTRDTracklet(const AliTRDseedV1* const inTracklet):
43 fS2Y(inTracklet->fS2Y),
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),
60 #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
61 fSize(sizeof(AliHLTTRDTracklet)-sizeof(AliHLTTRDCluster)),
63 fSize(sizeof(AliHLTTRDTracklet))
66 CopyDataMembers(inTracklet);
70 * Copy simple (non-pointer) data members from TRDTracklet to HLTTRDTracklet
72 //============================================================================
73 void AliHLTTRDTracklet::CopyDataMembers(const AliTRDseedV1* const inTracklet)
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];
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];
90 // for (Int_t i=0; i < 7; i++){
91 // fRefCov[i] = inTracklet->fRefCov[i];
94 // for (Int_t i=0; i < AliTRDseedV1::kNslices; i++){
95 // fdEdx[i] = inTracklet->fdEdx[i];
98 for (Int_t i=0; i < AliPID::kSPECIES; i++){
99 fProb[i] = inTracklet->fProb[i];
102 fBits = UInt_t(inTracklet->TestBits(-1)) >> 14;
104 for (Int_t iTimeBin = 0; iTimeBin < AliTRDseedV1::kNclusters; iTimeBin++){
105 AliTRDcluster* trdCluster = inTracklet->GetClusters(iTimeBin);
107 fPos[fCount] = iTimeBin;
108 new (&fClusters[fCount]) AliHLTTRDCluster(trdCluster);
110 fSize += sizeof(AliHLTTRDCluster);
113 //if((void*)&fClusters[fCount]!=(void*)GetEndPointer()){printf("ERRR");return;}
117 * Copy data to the output TRDseedV1
119 //============================================================================
120 void AliHLTTRDTracklet::ExportTRDTracklet(AliTRDseedV1* const outTracklet) const
122 //outTracklet->Reset(); we always use a fresh trdtracklet as input, so this is useless
123 outTracklet->SetBit(AliTRDseedV1::kOwner);
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;
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];
154 for (Int_t i=0; i < 3; i++){
155 outTracklet->fPad[i] = fPad[i];
156 // outTracklet->fCov[i] = fCov[i];
159 // for (Int_t i=0; i < 7; i++){
160 // outTracklet->fRefCov[i] = fRefCov[i];
163 // for (Int_t i=0; i < AliTRDseedV1::kNslices; i++){
164 // outTracklet->fdEdx[i] = fdEdx[i];
167 for (Int_t i=0; i < AliPID::kSPECIES; i++){
168 outTracklet->fProb[i] = fProb[i];
171 outTracklet->SetBit(UInt_t(fBits)<<14);
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;
185 //============================================================================
186 void AliHLTTRDTracklet::InitArrays()
188 for (Int_t i=0; i < 2; i++){
194 fC[0] = 0.; fC[1] = 0.;
195 for (Int_t i=0; i < AliPID::kSPECIES; i++)
200 * Prints main info about tracklet
202 //============================================================================
203 void AliHLTTRDTracklet::Print(Bool_t printClusters) const
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);
208 if(!printClusters) return;
209 for (UInt_t iCluster = 0; iCluster < fCount; iCluster++){
210 printf(" [%i] ",iCluster);
211 fClusters[iCluster].Print();
216 * Read clusters to TRDtracklet from the memory
218 //============================================================================
219 // void AliHLTTRDTracklet::ReadClustersFromMemory(void *input)
221 // AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input;
222 // AliHLTTRDCluster* hltCluster = NULL;
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();