X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=HLT%2FTRD%2FAliHLTTRDTracklet.cxx;h=3552157355374d759be03379dd6e995192584f26;hp=7a2546971eb7b78b732e8aac72a383ee6bcc8af0;hb=d55e8c51d29ee68acbb49c00978e452137718783;hpb=e44c0591a001ad5c30cf3159e602db9aa8755bfc diff --git a/HLT/TRD/AliHLTTRDTracklet.cxx b/HLT/TRD/AliHLTTRDTracklet.cxx index 7a2546971eb..35521573553 100644 --- a/HLT/TRD/AliHLTTRDTracklet.cxx +++ b/HLT/TRD/AliHLTTRDTracklet.cxx @@ -1,185 +1,124 @@ #include "AliHLTTRDTracklet.h" -#include "AliHLTTRDCluster.h" - /** * Default Constructor */ //============================================================================ AliHLTTRDTracklet::AliHLTTRDTracklet(): - fTRDtracklet(NULL), - fSize(sizeof(AliHLTTRDTracklet)), - //fSigmaY(-1), - fSigmaY2(-1), - fTilt(-1), - fPadLength(-1), - fX0(-1), - //fMeanz(-1), - //fZProb(-1), - //fN(-1), - fN2(-1), - fNUsed(-1), - //fFreq(-1), - //fNChange(-1), - //fMPads(-1), - fC(-1), - //fCC(-1), - fChi2(-1), - //fChi2Z(-1), - fDet(-1), + fN(0), + fdX(-1), + fS2Y(-1), fPt(-1), - fdX(-1) -{ - InitArrays(); -} - -/** - * Main Constructor - */ -//============================================================================ -AliHLTTRDTracklet::AliHLTTRDTracklet(AliTRDseedV1 * inTracklet): - fTRDtracklet(NULL), - fSize(sizeof(AliHLTTRDTracklet)), - //fSigmaY(-1), - fSigmaY2(-1), - fTilt(-1), - fPadLength(-1), fX0(-1), - //fMeanz(-1), - //fZProb(-1), - //fN(-1), - fN2(-1), - fNUsed(-1), - //fFreq(-1), - //fNChange(-1), - //fMPads(-1), fC(-1), - //fCC(-1), fChi2(-1), - //fChi2Z(-1), fDet(-1), - fPt(-1), - fdX(-1) + fCount(0), +#if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC) + fSize(sizeof(AliHLTTRDTracklet)-sizeof(AliHLTTRDCluster)), +#else + fSize(sizeof(AliHLTTRDTracklet)) +#endif { InitArrays(); - - fTRDtracklet = inTracklet; - CopyDataMembers(); - // Print(kFALSE); - AddClusters(); } /** - * Add clusters to the HLTTRDTracklet + * Main Constructor */ //============================================================================ -void AliHLTTRDTracklet::AddClusters() +AliHLTTRDTracklet::AliHLTTRDTracklet(const AliTRDseedV1* const inTracklet): + fN(inTracklet->fN), + fdX(inTracklet->fdX), + fS2Y(inTracklet->fS2Y), + fPt(inTracklet->fPt), + fX0(inTracklet->fX0), + fC(inTracklet->fC), + fChi2(inTracklet->fChi2), + fDet(inTracklet->fDet), + fCount(0), +#if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC) + fSize(sizeof(AliHLTTRDTracklet)-sizeof(AliHLTTRDCluster)), +#else + fSize(sizeof(AliHLTTRDTracklet)) +#endif { - for (Int_t iTimeBin = 0; iTimeBin < AliTRDseedV1::kNclusters; iTimeBin++) - { -// if (fClusters[iTimeBin]) -// HLTWarning("Trying to rewrite cluster in tracklet. Not good."); - AliTRDcluster* trdCluster = fTRDtracklet->GetClusters(iTimeBin); - if (trdCluster){ - AliHLTTRDCluster * hltCluster = new (GetEndPointer()) AliHLTTRDCluster(trdCluster); - fSize += hltCluster->GetSize(); - //HLTInfo("cluster %i; adr 0x%x; endPointer 0x%x; fSize %i", iTimeBin, hltCluster, GetEndPointer(), fSize); - fClusters[iTimeBin] = hltCluster; - } - else - fClusters[iTimeBin] = NULL; - - } + CopyDataMembers(inTracklet); } /** * Copy simple (non-pointer) data members from TRDTracklet to HLTTRDTracklet */ //============================================================================ -void AliHLTTRDTracklet::CopyDataMembers() +void AliHLTTRDTracklet::CopyDataMembers(const AliTRDseedV1* const inTracklet) { + //fChi2Z = inTracklet->GetChi2Z(); + for (Int_t i=0; i < 2; i++){ - fYref[i] = fTRDtracklet->GetYref(i); - fZref[i] = fTRDtracklet->GetZref(i); + fYref[i] = inTracklet->fYref[i]; + fZref[i] = inTracklet->fZref[i]; + fYfit[i] = inTracklet->fYfit[i]; + fZfit[i] = inTracklet->fZfit[i]; + } + + for (Int_t i=0; i < 3; i++){ + fPad[i] = inTracklet->fPad[i]; } - //fSigmaY = fTRDtracklet->GetSigmaY(); - fSigmaY2 = fTRDtracklet->GetS2Y(); - fTilt = fTRDtracklet->GetTilt(); - fPadLength = fTRDtracklet->GetPadLength(); - fX0 = fTRDtracklet->GetX0(); - for (Int_t i = 0; i < AliTRDseedV1::kNclusters; i++){ -// fX[i] = fTRDtracklet->GetX(i); -// fY[i] = fTRDtracklet->GetY(i); -// fZ[i] = fTRDtracklet->GetZ(i); - fIndexes[i] = fTRDtracklet->GetIndexes(i); + for (Int_t i=0; i < AliPID::kSPECIES; i++){ + fProb[i] = inTracklet->fProb[i]; } - for (Int_t i=0; i < 2; i++){ - fYfit[i] = fTRDtracklet->GetYfit(i); - fZfit[i] = fTRDtracklet->GetZfit(i); - fLabels[i] = fTRDtracklet->GetLabels(i); - } - fLabels[2] = fTRDtracklet->GetLabels(2); - fN2 = fTRDtracklet->GetN2(); - fNUsed = fTRDtracklet->GetNUsed(); - - fC = fTRDtracklet->GetC(); - fChi2 = fTRDtracklet->GetChi2(); - //fChi2Z = fTRDtracklet->GetChi2Z(); + for (Int_t iTimeBin = 0; iTimeBin < AliTRDseedV1::kNclusters; iTimeBin++) + { + AliTRDcluster* trdCluster = inTracklet->GetClusters(iTimeBin); + if (trdCluster){ + new (&fClusters[fCount]) AliHLTTRDCluster(trdCluster); + fCount++; + fSize += sizeof(AliHLTTRDCluster); + } + } - fDet = fTRDtracklet->GetDetector(); - fPt = fTRDtracklet->GetPt(); - fdX = fTRDtracklet->GetdX(); + //if((void*)&fClusters[fCount].Index!=(void*)GetEndPointer()){printf("ERRR");return;} } /** * Copy data to the output TRDseedV1 */ //============================================================================ -void AliHLTTRDTracklet::ExportTRDTracklet(AliTRDseedV1 *outTracklet) +void AliHLTTRDTracklet::ExportTRDTracklet(AliTRDseedV1* const outTracklet) const { - outTracklet->Reset(); - /* ======= From AliTRDseedV1 ======== */ - outTracklet->SetDetector(fDet); - outTracklet->SetPt(fPt); - outTracklet->SetDX(fdX); - - /* ======= From AliTRDseed ======== */ + //outTracklet->Reset(); we always use a fresh trdtracklet as input, so this is useless + outTracklet->SetBit(AliTRDseedV1::kOwner); + + outTracklet->fN = fN; + outTracklet->fDet = fDet; + outTracklet->fdX = fdX; + outTracklet->fX0 = fX0; + outTracklet->fS2Y = fS2Y; + outTracklet->fPt = fPt; + outTracklet->fC = fC; + outTracklet->fChi2 = fChi2; + for (Int_t i=0; i < 2; i++){ - outTracklet->SetYref(i, fYref[i]); - outTracklet->SetZref(i, fZref[i]); + outTracklet->fYref[i] = fYref[i]; + outTracklet->fZref[i] = fZref[i]; + outTracklet->fYfit[i] = fYfit[i]; + outTracklet->fZfit[i] = fZfit[i]; } - - //outTracklet->SetSigmaY(fSigmaY); - //outTracklet->SetSigmaY2(fSigmaY2); - outTracklet->SetTilt(fTilt); - outTracklet->SetPadLength(fPadLength); - outTracklet->SetX0(fX0); - - for (Int_t i=0; i < AliTRDseedV1::kNclusters; i++){ -// outTracklet->SetX(i,fX[i]); -// outTracklet->SetX(i,fY[i]); -// outTracklet->SetX(i,fZ[i]); - outTracklet->SetIndexes(i, fIndexes[i]); + + for (Int_t i=0; i < 3; i++){ + outTracklet->fPad[i] = fPad[i]; } -// for (Int_t i=0; i < 2; i++){ -// outTracklet->SetYfit(i,fYfit[i]); -// outTracklet->SetZfit(i,fZfit[i]); -// } - outTracklet->SetLabels(fLabels); - - //outTracklet->SetN2(fN2); - //outTracklet->SetNUsed(fNUsed); - outTracklet->SetC(fC); - outTracklet->SetChi2(fChi2); - - for (Int_t iCluster = 0; iCluster < AliTRDseedV1::kNclusters; iCluster++){ - if (fClusters[iCluster]){ - AliTRDcluster *trdCluster = new AliTRDcluster(); - fClusters[iCluster]->ExportTRDCluster(trdCluster); - //outTracklet->SetClusters(iCluster, trdCluster); - } + for (Int_t i=0; i < AliPID::kSPECIES; i++){ + outTracklet->fProb[i] = fProb[i]; + } + + for (UInt_t iCluster=0; iCluster < fCount; iCluster++){ + AliTRDcluster *trdCluster = new AliTRDcluster(); + fClusters[iCluster].ExportTRDCluster(trdCluster); + outTracklet->fClusters[iCluster] = trdCluster; + outTracklet->fIndexes[iCluster] = iCluster; } } @@ -190,45 +129,29 @@ void AliHLTTRDTracklet::ExportTRDTracklet(AliTRDseedV1 *outTracklet) //============================================================================ void AliHLTTRDTracklet::InitArrays() { - for (Int_t i=0; i < AliTRDseedV1::kNclusters; i++){ - fClusters[i] = NULL; - } - for (Int_t i=0; i < 2; i++){ fYref[i] = -1; fZref[i] = -1; - } - for (Int_t i = 0; i < AliTRDseedV1::kNclusters; i++){ -// fX[i] = -1; -// fY[i] = -1; -// fZ[i] = -1; - fIndexes[i] = -1; - } - - for (Int_t i=0; i < 2; i++){ fYfit[i] = -1; fZfit[i] = -1; -// fYfitR[i] = -1; -// fZfitR[i] = -1; - fLabels[i] = -1; } - fLabels[2] = 0; + for (Int_t i=0; i < AliPID::kSPECIES; i++) + fProb[i]=0; } /** * Prints main info about tracklet */ //============================================================================ -void AliHLTTRDTracklet::Print(Bool_t printClusters) +void AliHLTTRDTracklet::Print(Bool_t printClusters) const { //printf("--hltTracklet-- addr 0x%p(%i); fSize %i\n", this, (int)this, fSize); - printf(" fDet %i; fPt %f; fdX %f fN %i\n", fDet, fPt, fdX, fN2); + printf(" fDet %i; fPt %f; fdX %f fN %i\n", fDet, fPt, fdX, fN); if(!printClusters) return; - for (Int_t iCluster = 0; iCluster < AliTRDseedV1::kNclusters; iCluster++){ + for (UInt_t iCluster = 0; iCluster < fCount; iCluster++){ printf(" [%i] ",iCluster); - if (fClusters[iCluster]) fClusters[iCluster]->Print(); - else printf(" NULL\n"); + fClusters[iCluster].Print(); } } @@ -236,20 +159,21 @@ void AliHLTTRDTracklet::Print(Bool_t printClusters) * Read clusters to TRDtracklet from the memory */ //============================================================================ -void AliHLTTRDTracklet::ReadClustersFromMemory(void *input) -{ - AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input; - AliHLTTRDCluster* hltCluster = NULL; +// void AliHLTTRDTracklet::ReadClustersFromMemory(void *input) +// { +// AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input; +// AliHLTTRDCluster* hltCluster = NULL; - for (Int_t iCluster = 0; iCluster < AliTRDseedV1::kNclusters; iCluster++){ - // if we had something in the fClusters[iCluster] before copying, - // then this entry in the array should not be empty. Fill it. - if (fClusters[iCluster]){ - hltCluster = (AliHLTTRDCluster*) iterPtr; - fClusters[iCluster] = hltCluster; - iterPtr += hltCluster->GetSize(); - //hltCluster->Print(); - } +// for (Int_t iCluster = 0; iCluster < AliTRDseedV1::kNclusters; iCluster++){ +// // if we had something in the fClusters[iCluster] before copying, +// // then this entry in the array should not be empty. Fill it. +// if (fClusters[iCluster]){ +// hltCluster = (AliHLTTRDCluster*) iterPtr; +// fClusters[iCluster] = hltCluster; +// iterPtr += hltCluster->GetSize(); +// //hltCluster->Print(); +// } - } -} +// } +// } +