fSeed1(-1),
fSeed2(-1),
fMAngular(0),
- fCircular(0)
+ fCircular(0),
+ fPoolID(-1)
{
//
for (Int_t i=0;i<160;i++) SetClusterIndex2(i,-3);
fDEDX[i] = 0.;
fSDEDX[i] = 1e10;
fNCDEDX[i] = 0;
+ fNCDEDXInclThres[i] = 0;
}
+ fDEDX[4] = 0;
for (Int_t i=0;i<12;i++) fOverlapLabels[i] = -1;
}
fSeed1(-1),
fSeed2(-1),
fMAngular(0),
- fCircular(0)
+ fCircular(0),
+ fPoolID(-1)
{
//---------------------
// dummy copy constructor
fDEDX[i] = s.fDEDX[i];
fSDEDX[i] = s.fSDEDX[i];
fNCDEDX[i] = s.fNCDEDX[i];
+ fNCDEDXInclThres[i] = s.fNCDEDXInclThres[i];
}
+ fDEDX[4] = s.fDEDX[4];
for (Int_t i=0;i<12;i++) fOverlapLabels[i] = s.fOverlapLabels[i];
}
fSeed1(-1),
fSeed2(-1),
fMAngular(0),
- fCircular(0)
+ fCircular(0),
+ fPoolID(-1)
{
//
// Constructor from AliTPCtrack
fDEDX[i] = 0.;
fSDEDX[i] = 1e10;
fNCDEDX[i] = 0;
+ fNCDEDXInclThres[i] = 0;
}
+ fDEDX[4] = 0;
for (Int_t i=0;i<12;i++) fOverlapLabels[i] = -1;
}
fSeed1(-1),
fSeed2(-1),
fMAngular(0),
- fCircular(0)
+ fCircular(0),
+ fPoolID(-1)
{
//
// Constructor
fDEDX[i] = 0.;
fSDEDX[i] = 1e10;
fNCDEDX[i] = 0;
+ fNCDEDXInclThres[i] = 0;
}
+ fDEDX[4] = 0;
for (Int_t i=0;i<12;i++) fOverlapLabels[i] = -1;
}
{
//
// assignment operator
+ // don't touch pool ID
//
if(this!=¶m){
AliTPCtrack::operator=(param);
fEsd =param.fEsd;
- for(Int_t i = 0;i<160;++i)fClusterPointer[i] = param.fClusterPointer[i]; // this is not allocated by AliTPCSeed
fClusterOwner = param.fClusterOwner;
+ if (!fClusterOwner) for(Int_t i = 0;i<160;++i)fClusterPointer[i] = param.fClusterPointer[i];
+ else for(Int_t i = 0;i<160;++i) {
+ delete fClusterPointer[i];
+ fClusterPointer[i] = new AliTPCclusterMI(*(param.fClusterPointer[i]));
+ }
// leave out fPoint, they are also not copied in the copy ctor...
// but deleted in the dtor... strange...
fRow = param.fRow;
fDEDX[i] = param.fDEDX[i];
fSDEDX[i] = param.fSDEDX[i];
fNCDEDX[i] = param.fNCDEDX[i];
+ fNCDEDXInclThres[i] = param.fNCDEDXInclThres[i];
}
+ fDEDX[4] = param.fDEDX[4];
for(Int_t i = 0;i<AliPID::kSPECIES;++i)fTPCr[i] = param.fTPCr[i];
fSeedType = param.fSeedType;
*/
if (all){
- for (Int_t i=0;i<200;i++) SetClusterIndex2(i,-3);
- for (Int_t i=0;i<160;i++) fClusterPointer[i]=0;
+ for (Int_t i=200;i--;) SetClusterIndex2(i,-3);
+ if (!fClusterOwner) for (Int_t i=160;i--;) fClusterPointer[i]=0;
+ else for (Int_t i=160;i--;) {delete fClusterPointer[i]; fClusterPointer[i]=0;}
}
}
return ncl+nclBelowThr;
return 0;
}
+
+//_______________________________________________________________________
+void AliTPCseed::Clear(Option_t*)
+{
+ // formally seed may allocate memory for clusters (althought this should not happen for
+ // the seeds in the pool). Hence we need this method for fwd. compatibility
+ if (fClusterOwner) for (int i=160;i--;) {delete fClusterPointer[i]; fClusterPointer[i] = 0;}
+}