fLabel(0),
fStatus(0),
fPIDMethod(knSigma),
+ fNsigmaTPCTOF(kFALSE),
fminTPCclsF(0),
fminTPCncls(0),
fminITScls(0),
fminTPCclsF=0;
fminITScls=0;
fPIDMethod=knSigma;
+ fNsigmaTPCTOF=kFALSE;
}
//------------------------------
AliFemtoESDTrackCut::~AliFemtoESDTrackCut(){
}
}
- else if (fMostProbable == 4) { // proton nsigma-PID required contour adjusting
- if (IsProtonNSigma(track->P().Mag(), track->NSigmaTPCP(), track->NSigmaTOFP()) // && IsProtonTPCdEdx(track->P().Mag(), track->TPCsignal())
+ else if (fMostProbable == 4) { // proton nsigma-PID required contour adjusting (in LHC10h)
+ if ( IsProtonNSigma(track->P().Mag(), track->NSigmaTPCP(), track->NSigmaTOFP()) && (TMath::Abs(track->NSigmaTPCP()) < TMath::Abs(track->NSigmaTPCPi())) && (TMath::Abs(track->NSigmaTPCP()) < TMath::Abs(track->NSigmaTPCK())) && (TMath::Abs(track->NSigmaTOFP()) < TMath::Abs(track->NSigmaTOFPi())) && (TMath::Abs(track->NSigmaTOFP()) < TMath::Abs(track->NSigmaTOFK()))
+ // && IsProtonTPCdEdx(track->P().Mag(), track->TPCsignal())
)
imost = 4;
}
bool AliFemtoESDTrackCut::IsProtonNSigma(float mom, float nsigmaTPCP, float nsigmaTOFP)
{
+
+ if (fNsigmaTPCTOF) {
if (mom > 0.8) {
if (TMath::Hypot( nsigmaTOFP, nsigmaTPCP )/TMath::Sqrt(2) < 3.0)
return true;
if (TMath::Abs(nsigmaTPCP) < 3.0)
return true;
}
+ }
+ else {
+ if (mom > 0.8 && mom < 2.5) {
+ if ( TMath::Abs(nsigmaTPCP) < 3.0 && TMath::Abs(nsigmaTOFP) < 3.0)
+ return true;
+ }
+ else if (mom > 2.5) {
+ if ( TMath::Abs(nsigmaTPCP) < 3.0 && TMath::Abs(nsigmaTOFP) < 2.0)
+ return true;
+ }
+ else {
+ if (TMath::Abs(nsigmaTPCP) < 3.0)
+ return true;
+ }
+ }
return false;
}
}
+void AliFemtoESDTrackCut::SetNsigmaTPCTOF(Bool_t nsigma)
+{
+ fNsigmaTPCTOF = nsigma;
+}
+
void AliFemtoESDTrackCut::SetClusterRequirementITS(AliESDtrackCuts::Detector det, AliESDtrackCuts::ITSClusterRequirement req)
{
fCutClusterRequirementITS[det] = req;
void SetMostProbableProton();
void SetNoMostProbable();
void SetPIDMethod(ReadPIDMethodType newMethod);
+ void SetNsigmaTPCTOF(Bool_t);
void SetClusterRequirementITS(AliESDtrackCuts::Detector det, AliESDtrackCuts::ITSClusterRequirement req = AliESDtrackCuts::kOff);
void SetMomRangeTOFpidIs(const float& minp, const float& maxp);
bool fLabel; // if true label<0 will not pass throught
long fStatus; // staus flag
ReadPIDMethodType fPIDMethod; // which PID mehod to use. 0 - nsgima, 1 - contour
+ Bool_t fNsigmaTPCTOF; // true if squared nsigma from TPC and TOF, false if separately from TPC and TOF
short fminTPCclsF; // min number of findable clusters in the TPC
short fminTPCncls; // min number of clusters in the TPC
#endif
-