fCheckOnlyFilterBit(kTRUE),
fUseCustomQualityCuts(kFALSE),
fIsUse2011stdQualityCuts(kFALSE),
- fIsUse2011stdQualityCutsHighPt(kFALSE)
+ fIsUse2011stdQualityCutsHighPt(kFALSE)
{
//
// Default constructor
}
//__________________________________________________________________________________________________
-AliRsnCutSetDaughterParticle::AliRsnCutSetDaughterParticle(const char *name, AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutSetID, AliPID::EParticleType pid, Float_t nSigmaFast = -1.0, Int_t AODfilterBit = 0) :
+AliRsnCutSetDaughterParticle::AliRsnCutSetDaughterParticle(const char *name, AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutSetID, AliPID::EParticleType pid, Float_t nSigmaFast = -1.0, Int_t AODfilterBit = 0, Bool_t useTPCCrossedRows=kTRUE) :
AliRsnCutSet(name, AliRsnTarget::kDaughter),
fPID(pid),
fAppliedCutSetID(cutSetID),
fCheckOnlyFilterBit(kTRUE),
fUseCustomQualityCuts(kFALSE),
fIsUse2011stdQualityCuts(kFALSE),
- fIsUse2011stdQualityCutsHighPt(kFALSE)
+ fIsUse2011stdQualityCutsHighPt(kFALSE)
{
- //
- // Constructor
- //
+ //
+ // Constructor
+ //
//set here pt and eta range
SetPtRange(0.15, 20.0);
SetEtaRange(-0.8, 0.8);
fNsigmaTPC=1e20;
fNsigmaTOF=1e20;
AliWarning("Requested fast n-sigma PID with negative value for n. --> Setting n = 1E20");
- }
-
+ }
+
//initialize quality std and PID cuts
- InitStdQualityCuts();
+ InitStdQualityCuts(useTPCCrossedRows);
Init();
}
fCheckOnlyFilterBit(kFALSE),
fUseCustomQualityCuts(kFALSE),
fIsUse2011stdQualityCuts(kFALSE),
- fIsUse2011stdQualityCutsHighPt(kFALSE)
+ fIsUse2011stdQualityCutsHighPt(kFALSE)
{
//
// Constructor: uses externally-defined track-quality cut object
//
if (!rsnTrackQualityCut) {
//if external track quality cut object not defined,
- //sets default track quality to be initialised +
+ //sets default track quality to be initialised (with cut on TPC crossed rows) +
//sets here pt and eta cuts
- InitStdQualityCuts();
+ InitStdQualityCuts(kTRUE);
SetPtRange(0.15, 20.0);
SetEtaRange(-0.8, 0.8);
} else {
fCheckOnlyFilterBit(copy.fCheckOnlyFilterBit),
fUseCustomQualityCuts(copy.fUseCustomQualityCuts),
fIsUse2011stdQualityCuts(copy.fIsUse2011stdQualityCuts),
- fIsUse2011stdQualityCutsHighPt(copy.fIsUse2011stdQualityCutsHighPt)
+ fIsUse2011stdQualityCutsHighPt(copy.fIsUse2011stdQualityCutsHighPt)
{
//
// copy constructor
SetCutScheme( Form("%s&((%s&(!%s))|(%s&%s))",fCutQuality->GetName(), iCutTPCNSigma->GetName(), iCutTOFMatch->GetName(),iCutTOFNSigma->GetName(), iCutTPCNSigma->GetName()) ) ;
break;
+ case AliRsnCutSetDaughterParticle::kTPCTOFpidLstar :
+ if (fPID==AliPID::kProton) {
+ iCutTPCNSigma->AddPIDRange(fNsigmaTPC, 0.0, 1.1);
+ }
+ if (fPID==AliPID::kKaon) {
+ iCutTPCNSigma->AddPIDRange(fNsigmaTPC, 0.0, 0.6);
+ }
+
+ AddCut(fCutQuality);
+ AddCut(iCutTOFMatch);
+ AddCut(iCutTPCNSigma);
+
+ /* set TPC+TOF PID*/
+ iCutTPCTOFNSigma->SinglePIDRange(5.0);
+ iCutTOFNSigma->AddPIDRange(fNsigmaTOF, 0.0, 10);
+
+ AddCut(iCutTPCTOFNSigma);
+ AddCut(iCutTOFNSigma);
+
+ // scheme:
+ // quality & [ (TOF & TPCTOF) || (!TOFmatch & TPConly) ]
+ SetCutScheme( Form("%s&((%s&%s)|((!%s)&%s))",fCutQuality->GetName(), iCutTPCTOFNSigma->GetName(), iCutTOFNSigma->GetName(), iCutTOFMatch->GetName(), iCutTPCNSigma->GetName()) ) ;
+ break;
+
default :
break;
}
}
//-----------------------------------------------
-void AliRsnCutSetDaughterParticle::InitStdQualityCuts()
+void AliRsnCutSetDaughterParticle::InitStdQualityCuts(Bool_t useTPCCrossedRows)
{
// initialize quality std (if not externally defined) and PID cuts
// init cut sets by setting variable params
if (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kQualityStd2011) {
fIsUse2011stdQualityCuts = kTRUE;
fIsUse2011stdQualityCutsHighPt = kFALSE;
- }
+ }
if (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kQualityStd2011HighPt) {
fIsUse2011stdQualityCuts = kFALSE;
fIsUse2011stdQualityCutsHighPt = kTRUE;
}
-
+
if (fIsUse2011stdQualityCuts) {
- fCutQuality->SetDefaults2011();//uses filter bit 5 as default
+ AliInfo(Form("Using 2011 std quality cuts with cut on TPC %s",(useTPCCrossedRows?"crossed rows":"N clusters")));
+ fCutQuality->SetDefaults2011(useTPCCrossedRows, kFALSE);//uses filter bit 5 as default
} else {
if (fIsUse2011stdQualityCutsHighPt) {
- fCutQuality->SetDefaultsHighPt2011();//uses filter bit 5 as default
+ AliInfo(Form("Using 2011 std quality cuts with cut on TPC %s for high-pT", (useTPCCrossedRows?"crossed rows":"N clusters")));
+ fCutQuality->SetDefaultsHighPt2011(useTPCCrossedRows, kFALSE);//uses filter bit 10 as default
} else {
- fCutQuality->SetDefaults2010();
- fCutQuality->SetDCARPtFormula("0.0182+0.0350/pt^1.01");
- fCutQuality->SetDCAZmax(2.0);
- fCutQuality->SetSPDminNClusters(1);
- fCutQuality->SetITSminNClusters(0);
- fCutQuality->SetITSmaxChi2(36);
- fCutQuality->SetTPCminNClusters(70);
- fCutQuality->SetTPCmaxChi2(4.0);
- fCutQuality->SetRejectKinkDaughters();
- //fCutQuality->SetITSmaxChi2(36);
- //fCutQuality->SetMaxChi2TPCConstrainedGlobal(36);
+ AliInfo(Form("Using 2010 std quality cuts with cut on TPC %s", (useTPCCrossedRows?"crossed rows":"N clusters")));
+ fCutQuality->SetDefaults2010(useTPCCrossedRows, kFALSE);
}
}
fCutQuality->SetAODTestFilterBit(fAODTrkCutFilterBit); //changes default filter bit to the chosen filter bit
-
+ AliInfo(Form("Applying cut on AOD filter bit %i", fAODTrkCutFilterBit));
//apply pt and eta cuts
fCutQuality->SetPtRange(fPtRange[0], fPtRange[1]);
fCutQuality->SetEtaRange(fEtaRange[0], fEtaRange[1]);
- AliInfo("Standard quality cuts applied");
- fCutQuality->Print();
+ AliInfo(Form("Pt range [%3.2f,%3.2f], Eta range [%3.2f, %3.2f]", fPtRange[0], fPtRange[1], fEtaRange[0], fEtaRange[1]));
return;
}