fVertexer = vertexer;
}
-
+/*
//____________________________________________________________________________
AliITStrackerSA::AliITStrackerSA(const AliITStrackerSA& tracker):AliITStrackerMI(),
fPhiEstimate(tracker.fPhiEstimate),
return *this;
}
-
+*/
//____________________________________________________________________________
AliITStrackerSA::~AliITStrackerSA(){
// destructor
&trs,primaryVertex[2],pflag);
Int_t nextLay=theLay+seedStep;
Bool_t goon=kTRUE;
+ if(nextLay<0 || nextLay == 6) goon = kFALSE;
while(goon){
kk++;
nClusLay[kk] = SearchClusters(nextLay,fPhiWin[nloop],fLambdaWin[nloop],
Double_t sdedx[4]={0.,0.,0.,0.};
for(Int_t i=0; i<4; i++) sdedx[i]=t->GetSampledEdx(i);
outtrack.SetITSdEdxSamples(sdedx);
+
+
+ if(AliITSReconstructor::GetRecoParam()->GetSAUsedEdxInfo()){
+ Double_t mom=t->P();
+ Double_t ppid[AliPID::kSPECIES];
+ for(Int_t isp=0;isp<AliPID::kSPECIES;isp++) ppid[isp]=0.;
+ ppid[AliPID::kPion]=1.;
+ if(mom<0.7){
+ Double_t truncmean=t->GetdEdx();
+ Int_t ide=fITSPid->GetParticleIdFromdEdxVsP(mom,truncmean,kTRUE);
+ if(ide==AliPID::kProton){
+ ppid[AliPID::kProton]=1.;
+ ppid[AliPID::kPion]=0.;
+ }
+ else if(ide==AliPID::kKaon){
+ ppid[AliPID::kKaon]=1.;
+ ppid[AliPID::kPion]=0.;
+ }
+ }
+ outtrack.SetITSpid(ppid);
+ outtrack.SetESDpid(ppid);
+ }
event->AddTrack(&outtrack);
return;
}
+ Double_t phiExpect=fPhiEstimate;
+ Double_t lamExpect=fLambdac;
+
Int_t ncl = fCluLayer[layer]->GetEntriesFast();
for (Int_t index=0; index<ncl; index++) {
AliITSRecPoint *c = (AliITSRecPoint*)fCluLayer[layer]->UncheckedAt(index);
if (!c) continue;
- if (c->GetQ()<=0) continue;
- if(layer>1 && c->GetQ()<=fMinQ) continue;
AliITSclusterTable* arr = (AliITSclusterTable*)GetClusterCoord(layer,index);
- Double_t phi = arr->GetPhi();
- if (TMath::Abs(phi-fPhiEstimate)>phiwindow) continue;
-
+
Double_t lambda = arr->GetLambda();
- if (TMath::Abs(lambda-fLambdac)>lambdawindow) continue;
+ if (TMath::Abs(lambda-lamExpect)>lambdawindow) continue;
+
+ Double_t phi = arr->GetPhi();
+ Double_t deltaPhi = phi-phiExpect;
+ if(deltaPhi>TMath::Pi()) deltaPhi-=2*TMath::Pi();
+ else if(deltaPhi<-TMath::Pi()) deltaPhi+=2*TMath::Pi();
+ if (TMath::Abs(deltaPhi)>phiwindow) continue;
if(trs->GetNumberOfClustersSA()==trs->GetMaxNumberOfClusters()) return 0;
if(trs->GetNumberOfMarked(layer)==trs->GetMaxNMarkedPerLayer()) return 0;