fMaxDCA3DFlag(kFALSE), fMaxDCA3DTPCFlag(kFALSE),
fMaxConstrainChi2Flag(kFALSE),
fITSRefitFlag(kFALSE), fTPCRefitFlag(kFALSE),
- fESDpidFlag(kFALSE), fTPCpidFlag(kFALSE),
+ fESDpidFlag(kFALSE), fTPCpidFlag(kFALSE), fTOFpidFlag(kFALSE),
fPointOnITSLayer1Flag(0), fPointOnITSLayer2Flag(0),
fPointOnITSLayer3Flag(0), fPointOnITSLayer4Flag(0),
fPointOnITSLayer5Flag(0), fPointOnITSLayer6Flag(0),
fDebugMode(kFALSE) {
//Default constructor
for(Int_t i = 0; i < 5; i++) fPartFrac[i] = 0.0;
- for(Int_t i = 0; i < 5; i++) {
+ for(Int_t i = 0; i < 24; i++) {
fdEdxMean[i] = 0.0;
fdEdxSigma[i] = 0.0;
}
Double_t gPt = 0.0, gPx = 0.0, gPy = 0.0, gPz = 0.0;
Double_t eta = 0.0;
- if(kTPC) {
+ if((fProtonAnalysisMode == kTPC) || (fProtonAnalysisMode == kHybrid)) {
AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
if(!tpcTrack) {
gPt = 0.0; gPx = 0.0; gPy = 0.0; gPz = 0.0; eta = -10.0;
gPz = tpcTrack->Pz();
eta = tpcTrack->Eta();
}
- }
+ }//standalone TPC or Hybrid TPC approaches
else {
gPt = track->Pt();
gPx = track->Px();
Double_t dca[2] = {0.0,0.0}, cov[3] = {0.0,0.0,0.0}; //The impact parameters and their covariance.
Double_t dca3D = 0.0;
- if((kTPC)&&(!kHybrid)) {
+ if((fProtonAnalysisMode == kTPC)||(fProtonAnalysisMode == kHybrid)) {
AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
if(!tpcTrack) {
gPt = 0.0; gPx = 0.0; gPy = 0.0; gPz = 0.0;
esd->GetMagneticField(),
100.,dca,cov);
}
- }
- else if(kHybrid) {
- AliExternalTrackParam *tpcTrack = (AliExternalTrackParam *)track->GetTPCInnerParam();
- if(!tpcTrack) {
- gPt = 0.0; gPx = 0.0; gPy = 0.0; gPz = 0.0;
- dca[0] = -100.; dca[1] = -100.;
- cov[0] = -100.; cov[1] = -100.; cov[2] = -100.;
- }
- else {
- gPt = tpcTrack->Pt();
- gPx = tpcTrack->Px();
- gPy = tpcTrack->Py();
- gPz = tpcTrack->Pz();
- tpcTrack->PropagateToDCA(vertex,
- esd->GetMagneticField(),
- 100.,dca,cov);
- }
- }
- else{
+ }//standalone TPC or hybrid TPC approaches
+ else {
gPt = track->Pt();
gPx = track->Px();
gPy = track->Py();
return kFALSE;
}
}
+ if(fTOFpidFlag) {
+ if ((track->GetStatus() & AliESDtrack::kTOFpid) == 0) {
+ if(fDebugMode)
+ Printf("IsAccepted: Track rejected because it has no TOF pid flag");
+ return kFALSE;
+ }
+ }
return kTRUE;
}
Float_t b[2];
Float_t bRes[2];
Float_t bCov[3];
- if((kTPC)&&(!kHybrid))
+ if((fProtonAnalysisMode == kTPC)&&(fProtonAnalysisMode != kHybrid))
esdTrack->GetImpactParametersTPC(b,bCov);
else
esdTrack->GetImpactParameters(b,bCov);
if(fMaxChi2PerTPCClusterFlag) listOfCuts += fMaxChi2PerTPCCluster;
else listOfCuts += "Not used";
l.DrawLatex(0.1,0.5,listOfCuts.Data());
+ listOfCuts = "Minimum number of TPC points for the dE/dx: ";
+ if(fMinTPCdEdxPointsFlag) listOfCuts += fMinTPCdEdxPoints;
+ else listOfCuts += "Not used";
+ l.DrawLatex(0.1,0.3,listOfCuts.Data());
c->cd(4)->SetFillColor(4);
l.DrawLatex(0.3,0.9,"Tracking related cuts");
Double_t dEdxMean = fdEdxMean[nbinP];
Double_t dEdxSigma = fdEdxSigma[nbinP];
if((tpcSignal <= dEdxMean + fNSigma*dEdxSigma)&&
- (tpcSignal <= dEdxMean + fNSigma*dEdxSigma))
+ (tpcSignal >= dEdxMean - fNSigma*dEdxSigma))
return kTRUE;
}//kSigma1 PID method
//Another definition of an N-sigma area around the dE/dx vs P band