1 #include "AliHLTTRDTrack.h"
2 #include "AliHLTTRDTracklet.h"
8 //============================================================================
9 AliHLTTRDTrack::AliHLTTRDTrack():
14 fIntegratedLength(-1),
17 fSize(sizeof(AliHLTTRDTrack))
25 * Creates hltTrack from TRDtrackV1
27 //============================================================================
28 AliHLTTRDTrack::AliHLTTRDTrack(const AliTRDtrackV1* const inTrack):
30 fFakeRatio(inTrack->fFakeRatio),
31 fChi2(inTrack->fChi2),
33 fIntegratedLength(inTrack->GetIntegratedLength()),
35 fAlpha(inTrack->GetAlpha()),
36 fSize(sizeof(AliHLTTRDTrack))
38 CopyDataMembers(inTrack);
43 * In principle should not be empty, but... we do not use it
45 //============================================================================
46 AliHLTTRDTrack::~AliHLTTRDTrack()
52 * Copy data members (except tracklets) from TRDtrackV1 to HLTTRDTrack.
54 //============================================================================
55 void AliHLTTRDTrack::CopyDataMembers(const AliTRDtrackV1* const inTrack)
57 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
59 fPID[i] = inTrack->fPID[i];
62 for (Int_t i = 0; i < 3; i++)
64 fBudget[i] = inTrack->GetBudget(i);
67 const Double_t* const Ptemp = inTrack->GetParameter();
68 for (Int_t i = 0; i < 5; i++)
72 const Double_t* const Ctemp = inTrack->GetCovariance();
73 for (Int_t i = 0; i < 15; i++)
78 for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++)
80 AliTRDseedV1* trdTracklet = inTrack->GetTracklet(iTracklet);
82 AliHLTTRDTracklet* hltTracklet = new (GetEndPointer()) AliHLTTRDTracklet(trdTracklet);
83 fSize += hltTracklet->GetSize();
84 fTrackletAtPlane[iTracklet] = kTRUE;
86 else fTrackletAtPlane[iTracklet] = kFALSE;
91 * Copy data to the output TRDtrackV1
93 //============================================================================
94 void AliHLTTRDTrack::ExportTRDTrack(AliTRDtrackV1* const outTrack) const
96 //outTrack->Reset(); we always use a new fresh trdtrack as input, so this is useless
97 outTrack->SetBit(AliTRDtrackV1::kOwner);
100 outTrack->fFakeRatio=fFakeRatio;
101 outTrack->fChi2=fChi2;
103 outTrack->SetIntegratedLength(fIntegratedLength);
104 outTrack->Set(fX, fAlpha, fP, fC);
106 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
108 outTrack->fPID[i] = fPID[i];
110 for (Int_t i = 0; i < 3; i++)
112 outTrack->SetBudget(i, fBudget[i]);
115 AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*)this+sizeof(*this);
116 AliHLTTRDTracklet* hltTracklet;
118 for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++){
119 if (fTrackletAtPlane[iTracklet]){
120 AliTRDseedV1* trdTracklet = new AliTRDseedV1();
121 hltTracklet = (AliHLTTRDTracklet*) iterPtr;
122 hltTracklet->ExportTRDTracklet(trdTracklet);
123 outTrack->SetTracklet(trdTracklet,iTracklet);
124 iterPtr += hltTracklet->GetSize();
134 //============================================================================
135 void AliHLTTRDTrack::InitArrays()
137 for(Int_t i = 0; i < AliTRDtrackV1::kNplane; i++){
138 fTrackletAtPlane[i]=kFALSE;
141 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
146 for (Int_t i = 0; i < 3; i++)
150 for (Int_t i = 0; i < 5; i++)
154 for (Int_t i = 0; i < 15; i++)
161 * Print main values for HLTTrack
163 //============================================================================
164 void AliHLTTRDTrack::Print(Bool_t printTracklets) const
166 printf("--hltTrack-- addr %p; fSize %i\n", this, fSize);
167 printf(" fX = %f; fAlpha = %f\n", fX, fAlpha);
170 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
172 printf("fPID[%i] = %f; ",i, fPID[i]);
176 for (Int_t i = 0; i < 3; i++)
178 printf("fBudget[%i] = %f; ",i, fBudget[i]);
184 AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*)this+sizeof(*this);
185 AliHLTTRDTracklet* hltTracklet;
187 for (Int_t i = 0; i < AliTRDtrackV1::kNplane; i++){
188 if (fTrackletAtPlane[i]){
190 hltTracklet = (AliHLTTRDTracklet*) iterPtr;
191 hltTracklet->Print();
192 iterPtr += hltTracklet->GetSize();
203 * Read tracklets from the memory.
204 * Number of tracklets should be already known
206 //============================================================================
207 // void AliHLTTRDTrack::ReadTrackletsFromMemory(void* input)
209 // AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input;
210 // AliHLTTRDTracklet* hltTracklet = NULL;
212 // for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++){
213 // if (fTracklet[iTracklet]){
214 // hltTracklet = (AliHLTTRDTracklet*) iterPtr;
215 // //hltTracklet->ReadClustersFromMemory(iterPtr+sizeof(AliHLTTRDTracklet));
216 // fTracklet[iTracklet] = hltTracklet;
217 // iterPtr += hltTracklet->GetSize();
218 // //hltTracklet->Print(kFALSE);