*/
//============================================================================
AliHLTTRDTrack::AliHLTTRDTrack():
- fSize(sizeof(AliHLTTRDTrack)),
- fTRDtrack(NULL),
- fPIDquality(0),
fDE(-1),
fFakeRatio(-1),
fChi2(-1),
- fMass(-1),
- fLab(-1),
fN(-1),
fIntegratedLength(-1),
fX(-1),
- fAlpha(-1)
+ fAlpha(-1),
+ fSize(sizeof(AliHLTTRDTrack))
{
InitArrays();
// not to be used
* Creates hltTrack from TRDtrackV1
*/
//============================================================================
-AliHLTTRDTrack::AliHLTTRDTrack(AliTRDtrackV1 * inTrack):
- fSize(sizeof(AliHLTTRDTrack)),
- fTRDtrack(NULL),
- fPIDquality(0),
- fDE(-1),
- fFakeRatio(-1),
- fChi2(-1),
- fMass(-1),
- fLab(-1),
- fN(-1),
- fIntegratedLength(-1),
- fX(-1),
- fAlpha(-1)
+AliHLTTRDTrack::AliHLTTRDTrack(const AliTRDtrackV1* const inTrack):
+ fDE(inTrack->fDE),
+ fFakeRatio(inTrack->fFakeRatio),
+ fChi2(inTrack->fChi2),
+ fN(inTrack->fN),
+ fIntegratedLength(inTrack->GetIntegratedLength()),
+ fX(inTrack->GetX()),
+ fAlpha(inTrack->GetAlpha()),
+ fSize(sizeof(AliHLTTRDTrack))
{
- InitArrays();
-
- fTRDtrack = inTrack;
-
- CopyDataMembers();
-
- AddTracklets();
-
+ CopyDataMembers(inTrack);
}
/**
}
-/**
- * Copy tracklets to the HLTTRDTrack
- */
-//============================================================================
-void AliHLTTRDTrack::AddTracklets()
-{
- for (Int_t iTracklet = 0; iTracklet < kNplane; iTracklet++)
- {
- // if (fTracklet[iTracklet])
- // HLTWarning("Trying to rewrite tracklets in the Track. Not good.");
- AliTRDseedV1 * trdTracklet = fTRDtrack->GetTracklet(iTracklet);
- if (trdTracklet){
- AliHLTTRDTracklet * hltTracklet = new (GetEndPointer()) AliHLTTRDTracklet(trdTracklet);
- fSize += hltTracklet->GetSize();
- //HLTDebug("tracklet %i; adr 0x%x; endPointer 0x%x; fSize %i", iTracklet, hltTracklet, hltTracklet->GetEndPointer(), fSize);
- fTracklet[iTracklet] = hltTracklet;
- }
- else
- fTracklet[iTracklet] = NULL;
- }
-}
-
-
/**
* Copy data members (except tracklets) from TRDtrackV1 to HLTTRDTrack.
*/
//============================================================================
-void AliHLTTRDTrack::CopyDataMembers()
+void AliHLTTRDTrack::CopyDataMembers(const AliTRDtrackV1* const inTrack)
{
-
- fPIDquality = fTRDtrack->GetNumberOfTrackletsPID();
-
for(Int_t i = 0; i < AliPID::kSPECIES; i++)
{
- fPID[i] = fTRDtrack->GetPID(i);
+ fPID[i] = inTrack->fPID[i];
}
for (Int_t i = 0; i < 3; i++)
{
- fBudget[i] = fTRDtrack->GetBudget(i);
+ fBudget[i] = inTrack->GetBudget(i);
}
- fDE = fTRDtrack->GetEdep();
- fFakeRatio = fTRDtrack->GetFakeRatio();
- fChi2 = fTRDtrack->GetChi2();
- fMass = fTRDtrack->GetMass();
- fLab = fTRDtrack->GetLabel();
- fN = fTRDtrack->GetNumberOfClusters();
- fIntegratedLength = fTRDtrack->GetIntegratedLength();
- fX = fTRDtrack->GetX();
- fAlpha = fTRDtrack->GetAlpha();
- const Double_t *Ptemp = fTRDtrack->GetParameter();
+ const Double_t* const Ptemp = inTrack->GetParameter();
for (Int_t i = 0; i < 5; i++)
{
fP[i] = Ptemp[i];
}
- const Double_t *Ctemp = fTRDtrack->GetCovariance();
+ const Double_t* const Ctemp = inTrack->GetCovariance();
for (Int_t i = 0; i < 15; i++)
{
fC[i] = Ctemp[i];
}
-
+
+ for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++)
+ {
+ AliTRDseedV1* trdTracklet = inTrack->GetTracklet(iTracklet);
+ if (trdTracklet){
+ AliHLTTRDTracklet* hltTracklet = new (GetEndPointer()) AliHLTTRDTracklet(trdTracklet);
+ fSize += hltTracklet->GetSize();
+ fTrackletAtPlane[iTracklet] = kTRUE;
+ }
+ else fTrackletAtPlane[iTracklet] = kFALSE;
+ }
}
/**
* Copy data to the output TRDtrackV1
*/
//============================================================================
-void AliHLTTRDTrack::ExportTRDTrack(AliTRDtrackV1 *outTrack)
+void AliHLTTRDTrack::ExportTRDTrack(AliTRDtrackV1* const outTrack) const
{
- outTrack->Reset();
+ //outTrack->Reset(); we always use a new fresh trdtrack as input, so this is useless
- //Set members from AliTRDtrackV1
- outTrack->SetPIDquality(fPIDquality);
- outTrack->SetEdep(fDE);
+ outTrack->fDE=fDE;
+ outTrack->fFakeRatio=fFakeRatio;
+ outTrack->fChi2=fChi2;
+ outTrack->fN=fN;
+ outTrack->SetIntegratedLength(fIntegratedLength);
+ outTrack->Set(fX, fAlpha, fP, fC);
+
for(Int_t i = 0; i < AliPID::kSPECIES; i++)
{
- outTrack->SetPID(i,fPID[i]);
+ outTrack->fPID[i] = fPID[i];
}
for (Int_t i = 0; i < 3; i++)
{
outTrack->SetBudget(i, fBudget[i]);
}
- for (Int_t iTracklet = 0; iTracklet < kNplane; iTracklet++){
- if (fTracklet[iTracklet]){
+
+ AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*)this+sizeof(*this);
+ AliHLTTRDTracklet* hltTracklet;
+
+ for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++){
+ if (fTrackletAtPlane[iTracklet]){
AliTRDseedV1* trdTracklet = new AliTRDseedV1();
- fTracklet[iTracklet]->ExportTRDTracklet(trdTracklet);
+ hltTracklet = (AliHLTTRDTracklet*) iterPtr;
+ hltTracklet->ExportTRDTracklet(trdTracklet);
outTrack->SetTracklet(trdTracklet,iTracklet);
+ iterPtr += hltTracklet->GetSize();
}
}
- //Set members from AliKalmanTrack
- outTrack->SetFakeRatio(fFakeRatio);
- //outTrack->SetChi2(fChi2);
- outTrack->SetMass(fMass);
- outTrack->SetLabel(fLab);
- (dynamic_cast<AliKalmanTrack*>(outTrack))->SetNumberOfClusters(fN);
- outTrack->SetIntegratedLength(fIntegratedLength);
-
- //Set members from AliExternalTrackParam
- outTrack->Set(fX, fAlpha, fP, fC);
}
//============================================================================
void AliHLTTRDTrack::InitArrays()
{
- for(Int_t i = 0; i < kNplane; i++){
- fTracklet[i]=NULL;
+ for(Int_t i = 0; i < AliTRDtrackV1::kNplane; i++){
+ fTrackletAtPlane[i]=kFALSE;
}
for(Int_t i = 0; i < AliPID::kSPECIES; i++)
* Print main values for HLTTrack
*/
//============================================================================
-void AliHLTTRDTrack::Print(Bool_t printTracklets)
+void AliHLTTRDTrack::Print(Bool_t printTracklets) const
{
- //printf("--hltTrack-- addr 0x%p(%i); fSize %i\n", this, (int)this, fSize);
- //printf(" fPIDquality = %s; fX = %f; fAlpha = %f\n", fPIDquality, fX, fAlpha);
+ printf("--hltTrack-- addr %p; fSize %i\n", this, fSize);
+ printf(" fX = %f; fAlpha = %f\n", fX, fAlpha);
printf(" ");
for(Int_t i = 0; i < AliPID::kSPECIES; i++)
if (printTracklets)
{
- for (Int_t i = 0; i < kNplane; i++){
- if (fTracklet[i]){
+ AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*)this+sizeof(*this);
+ AliHLTTRDTracklet* hltTracklet;
+
+ for (Int_t i = 0; i < AliTRDtrackV1::kNplane; i++){
+ if (fTrackletAtPlane[i]){
printf("[%i]",i);
- fTracklet[i]->Print();
+ hltTracklet = (AliHLTTRDTracklet*) iterPtr;
+ hltTracklet->Print();
+ iterPtr += hltTracklet->GetSize();
}
else
printf(" NULL ");
* Number of tracklets should be already known
*/
//============================================================================
-void AliHLTTRDTrack::ReadTrackletsFromMemory(void* input)
-{
- AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input;
- AliHLTTRDTracklet* hltTracklet = NULL;
+// void AliHLTTRDTrack::ReadTrackletsFromMemory(void* input)
+// {
+// AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input;
+// AliHLTTRDTracklet* hltTracklet = NULL;
- for (Int_t iTracklet = 0; iTracklet < kNplane; iTracklet++){
- if (fTracklet[iTracklet]){
- hltTracklet = (AliHLTTRDTracklet*) iterPtr;
- hltTracklet->ReadClustersFromMemory(iterPtr+sizeof(AliHLTTRDTracklet));
- fTracklet[iTracklet] = hltTracklet;
- iterPtr += hltTracklet->GetSize();
- //hltTracklet->Print(kFALSE);
- }
- }
-}
+// for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++){
+// if (fTracklet[iTracklet]){
+// hltTracklet = (AliHLTTRDTracklet*) iterPtr;
+// //hltTracklet->ReadClustersFromMemory(iterPtr+sizeof(AliHLTTRDTracklet));
+// fTracklet[iTracklet] = hltTracklet;
+// iterPtr += hltTracklet->GetSize();
+// //hltTracklet->Print(kFALSE);
+// }
+// }
+// }