1 #include "AliHLTTRDTracklet.h"
5 //============================================================================
6 AliHLTTRDTracklet::AliHLTTRDTracklet():
16 #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
17 fSize(sizeof(AliHLTTRDTracklet)-sizeof(AliHLTTRDCluster)),
19 fSize(sizeof(AliHLTTRDTracklet))
28 //============================================================================
29 AliHLTTRDTracklet::AliHLTTRDTracklet(const AliTRDseedV1* const inTracklet):
32 fS2Y(inTracklet->fS2Y),
36 fChi2(inTracklet->fChi2),
37 fDet(inTracklet->fDet),
39 #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
40 fSize(sizeof(AliHLTTRDTracklet)-sizeof(AliHLTTRDCluster)),
42 fSize(sizeof(AliHLTTRDTracklet))
45 CopyDataMembers(inTracklet);
49 * Copy simple (non-pointer) data members from TRDTracklet to HLTTRDTracklet
51 //============================================================================
52 void AliHLTTRDTracklet::CopyDataMembers(const AliTRDseedV1* const inTracklet)
54 //fChi2Z = inTracklet->GetChi2Z();
56 for (Int_t i=0; i < 2; i++){
57 fYref[i] = inTracklet->fYref[i];
58 fZref[i] = inTracklet->fZref[i];
59 fYfit[i] = inTracklet->fYfit[i];
60 fZfit[i] = inTracklet->fZfit[i];
63 for (Int_t i=0; i < 3; i++){
64 fPad[i] = inTracklet->fPad[i];
67 for (Int_t i=0; i < AliPID::kSPECIES; i++){
68 fProb[i] = inTracklet->fProb[i];
71 for (Int_t iTimeBin = 0; iTimeBin < AliTRDseedV1::kNclusters; iTimeBin++)
73 AliTRDcluster* trdCluster = inTracklet->GetClusters(iTimeBin);
75 new (&fClusters[fCount]) AliHLTTRDCluster(trdCluster);
77 fSize += sizeof(AliHLTTRDCluster);
81 //if((void*)&fClusters[fCount].Index!=(void*)GetEndPointer()){printf("ERRR");return;}
85 * Copy data to the output TRDseedV1
87 //============================================================================
88 void AliHLTTRDTracklet::ExportTRDTracklet(AliTRDseedV1* const outTracklet) const
90 //outTracklet->Reset(); we always use a fresh trdtracklet as input, so this is useless
91 outTracklet->SetBit(AliTRDseedV1::kOwner);
94 outTracklet->fDet = fDet;
95 outTracklet->fdX = fdX;
96 outTracklet->fX0 = fX0;
97 outTracklet->fS2Y = fS2Y;
98 outTracklet->fPt = fPt;
100 outTracklet->fChi2 = fChi2;
102 for (Int_t i=0; i < 2; i++){
103 outTracklet->fYref[i] = fYref[i];
104 outTracklet->fZref[i] = fZref[i];
105 outTracklet->fYfit[i] = fYfit[i];
106 outTracklet->fZfit[i] = fZfit[i];
109 for (Int_t i=0; i < 3; i++){
110 outTracklet->fPad[i] = fPad[i];
113 for (Int_t i=0; i < AliPID::kSPECIES; i++){
114 outTracklet->fProb[i] = fProb[i];
117 for (UInt_t iCluster=0; iCluster < fCount; iCluster++){
118 AliTRDcluster *trdCluster = new AliTRDcluster();
119 fClusters[iCluster].ExportTRDCluster(trdCluster);
120 outTracklet->fClusters[iCluster] = trdCluster;
121 outTracklet->fIndexes[iCluster] = iCluster;
129 //============================================================================
130 void AliHLTTRDTracklet::InitArrays()
132 for (Int_t i=0; i < 2; i++){
138 for (Int_t i=0; i < AliPID::kSPECIES; i++)
143 * Prints main info about tracklet
145 //============================================================================
146 void AliHLTTRDTracklet::Print(Bool_t printClusters) const
148 //printf("--hltTracklet-- addr 0x%p(%i); fSize %i\n", this, (int)this, fSize);
149 printf(" fDet %i; fPt %f; fdX %f fN %i\n", fDet, fPt, fdX, fN);
151 if(!printClusters) return;
152 for (UInt_t iCluster = 0; iCluster < fCount; iCluster++){
153 printf(" [%i] ",iCluster);
154 fClusters[iCluster].Print();
159 * Read clusters to TRDtracklet from the memory
161 //============================================================================
162 // void AliHLTTRDTracklet::ReadClustersFromMemory(void *input)
164 // AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input;
165 // AliHLTTRDCluster* hltCluster = NULL;
167 // for (Int_t iCluster = 0; iCluster < AliTRDseedV1::kNclusters; iCluster++){
168 // // if we had something in the fClusters[iCluster] before copying,
169 // // then this entry in the array should not be empty. Fill it.
170 // if (fClusters[iCluster]){
171 // hltCluster = (AliHLTTRDCluster*) iterPtr;
172 // fClusters[iCluster] = hltCluster;
173 // iterPtr += hltCluster->GetSize();
174 // //hltCluster->Print();