fNsigmaTOF(1E20),
fCutQuality(0x0),
fAODTrkCutFilterBit(0),
- fCheckOnlyFilterBit(kTRUE)
+ fCheckOnlyFilterBit(kTRUE),
+ fUseCustomQualityCuts(kFALSE)
{
//
// Default constructor
+ SetPtRange(0.0, 1E20);
+ SetEtaRange(1E20, 1E20);
}
//__________________________________________________________________________________________________
fNsigmaTOF(nSigmaFast),
fCutQuality(new AliRsnCutTrackQuality("CutQuality")),
fAODTrkCutFilterBit(AODfilterBit),
- fCheckOnlyFilterBit(kTRUE)
+ fCheckOnlyFilterBit(kTRUE),
+ fUseCustomQualityCuts(kFALSE)
{
//
// Constructor
//
+ //set here pt and eta range
+ SetPtRange(0.15, 20.0);
+ SetEtaRange(-0.8, 0.8);
+
+ //if nsigma not specified, sets "no-PID" cuts
if (nSigmaFast<=0){
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();
Init();
}
+//__________________________________________________________________________________________________
+AliRsnCutSetDaughterParticle::AliRsnCutSetDaughterParticle(const char *name, AliRsnCutTrackQuality *rsnTrackQualityCut, AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutSetID, AliPID::EParticleType pid, Float_t nSigmaFast = -1.0) :
+ AliRsnCutSet(name, AliRsnTarget::kDaughter),
+ fPID(pid),
+ fAppliedCutSetID(cutSetID),
+ fNsigmaTPC(nSigmaFast),
+ fNsigmaTOF(nSigmaFast),
+ fCutQuality(rsnTrackQualityCut),
+ fAODTrkCutFilterBit(0),
+ fCheckOnlyFilterBit(kFALSE),
+ fUseCustomQualityCuts(kTRUE)
+{
+ //
+ // 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 here pt and eta cuts
+ InitStdQualityCuts();
+ SetPtRange(0.15, 20.0);
+ SetEtaRange(-0.8, 0.8);
+ } else {
+ //checks validity of passed quality-cut object
+ //if Ok, inherits all cuts including Pt and Eta cut
+ fCheckOnlyFilterBit=kFALSE;
+ fUseCustomQualityCuts = kTRUE;
+ SetPtRange(rsnTrackQualityCut->GetPtRange(0), rsnTrackQualityCut->GetPtRange(1));
+ SetEtaRange(rsnTrackQualityCut->GetEtaRange(0),rsnTrackQualityCut->GetEtaRange(1));
+ AliInfo("Custom quality cuts applied");
+ rsnTrackQualityCut->Print();
+ }
+
+ //if nsigma not specified, sets "no-PID" cuts
+ if (nSigmaFast<=0){
+ fNsigmaTPC=1e20;
+ fNsigmaTOF=1e20;
+ AliWarning("Requested fast n-sigma PID with negative value for n. --> Setting n = 1E20");
+ }
+
+ //initialize PID cuts
+ Init();
+}
+
+
//__________________________________________________________________________________________________
AliRsnCutSetDaughterParticle::AliRsnCutSetDaughterParticle(const AliRsnCutSetDaughterParticle ©) :
- AliRsnCutSet(copy),
- fPID(copy.fPID),
- fAppliedCutSetID(copy.fAppliedCutSetID),
- fNsigmaTPC(copy.fNsigmaTPC),
- fNsigmaTOF(copy.fNsigmaTOF),
- fCutQuality(copy.fCutQuality),
- fAODTrkCutFilterBit(copy.fAODTrkCutFilterBit),
- fCheckOnlyFilterBit(copy.fCheckOnlyFilterBit)
+ AliRsnCutSet(copy),
+ fPID(copy.fPID),
+ fAppliedCutSetID(copy.fAppliedCutSetID),
+ fNsigmaTPC(copy.fNsigmaTPC),
+ fNsigmaTOF(copy.fNsigmaTOF),
+ fCutQuality(copy.fCutQuality),
+ fAODTrkCutFilterBit(copy.fAODTrkCutFilterBit),
+ fCheckOnlyFilterBit(copy.fCheckOnlyFilterBit),
+ fUseCustomQualityCuts(copy.fUseCustomQualityCuts)
{
- //
- // copy constructor
+ //
+ // copy constructor
+ SetPtRange(copy.fPtRange[0], copy.fPtRange[1]);
+ SetEtaRange(copy.fEtaRange[0], copy.fEtaRange[1]);
}
//__________________________________________________________________________________________________
fNsigmaTOF=copy.fNsigmaTOF;
fAODTrkCutFilterBit=copy.fAODTrkCutFilterBit;
fCheckOnlyFilterBit=copy.fCheckOnlyFilterBit;
+ fUseCustomQualityCuts=copy.fUseCustomQualityCuts;
fCutQuality=copy.fCutQuality;
return (*this);
}
if (fCutQuality)
delete fCutQuality;
}
+
//----------------------------------------------------------------------------
void AliRsnCutSetDaughterParticle::Init()
{
- //
- // init cut sets by setting variable params
- //
- if ( (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kQualityStd2011) ||
- (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTOFMatchPPB2011) || //pA analysis
- (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTPCpidKstarPPB2011) ||
- (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTOFpidKstarPPB2011) ||
- (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTPCTOFpidKstarPPB2011) ||
- (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTPCpidTOFvetoKStarPPB2011) ||
- (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTPCpidMatchPPB2011) )
- {
- fCutQuality->SetDefaults2011();
- fCutQuality->SetAODTestFilterBit(fAODTrkCutFilterBit);
- } 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->SetAODTestFilterBit(fAODTrkCutFilterBit);
- //fCutQuality->SetITSmaxChi2(36);
- //fCutQuality->SetMaxChi2TPCConstrainedGlobal(36);
- }
- fCutQuality->SetCheckOnlyFilterBit(fCheckOnlyFilterBit);
- fCutQuality->SetPtRange(0.15, 20.0);
- fCutQuality->SetEtaRange(-0.8, 0.8);
+ //define TOF match cut
AliRsnCutTOFMatch *iCutTOFMatch = new AliRsnCutTOFMatch("CutTOFMatch");
- AliRsnCutPIDNSigma *iCutTPCNSigma = new AliRsnCutPIDNSigma("CutTPCNSigma", fPID, AliRsnCutPIDNSigma::kTPC);//, AliRsnCutPIDNSigma::kTPCinnerP );
- AliRsnCutPIDNSigma *iCutTPCTOFNSigma = new AliRsnCutPIDNSigma("CutTPCTOFNSigma", fPID, AliRsnCutPIDNSigma::kTPC);//, AliRsnCutPIDNSigma::kTPCinnerP );
- AliRsnCutPIDNSigma *iCutTOFNSigma = new AliRsnCutPIDNSigma("CutTOFNSigma", fPID, AliRsnCutPIDNSigma::kTOF);//, AliRsnCutPIDNSigma::kP );
- AliRsnCutPhi *iCutPhiTRD2010 = new AliRsnCutPhi("CutPhiTRD2010","InTRD CheckTOF");
- AliRsnCutPhi *iCutPhiNoTRD2010 = new AliRsnCutPhi("CutPhiNoTRD2010","OutTRD CheckTOF");
-
- switch (fAppliedCutSetID)
- {
+ //define PID cuts
+ AliRsnCutPIDNSigma *iCutTPCNSigma = new AliRsnCutPIDNSigma("CutTPCNSigma", fPID, AliRsnCutPIDNSigma::kTPC);//, AliRsnCutPIDNSigma::kTPCinnerP );
+ AliRsnCutPIDNSigma *iCutTPCTOFNSigma = new AliRsnCutPIDNSigma("CutTPCTOFNSigma", fPID, AliRsnCutPIDNSigma::kTPC);//, AliRsnCutPIDNSigma::kTPCinnerP );
+ AliRsnCutPIDNSigma *iCutTOFNSigma = new AliRsnCutPIDNSigma("CutTOFNSigma", fPID, AliRsnCutPIDNSigma::kTOF);//, AliRsnCutPIDNSigma::kP );
+ //define phi (azimuthal angle) cuts for TRD presence
+ AliRsnCutPhi *iCutPhiTRD2010 = new AliRsnCutPhi("CutPhiTRD2010","InTRD CheckTOF");
+ AliRsnCutPhi *iCutPhiNoTRD2010 = new AliRsnCutPhi("CutPhiNoTRD2010","OutTRD CheckTOF");
+
+ //
+ //defines cut schemes by combining quality cuts and PID cuts
+ //
+ switch (fAppliedCutSetID)
+ {
case AliRsnCutSetDaughterParticle::kNoCuts :
AliInfo("No cuts applied to daughter particle");
break;
}
+//-----------------------------------------------
+void AliRsnCutSetDaughterParticle::PrintTrackQualityCuts()
+{
+ //Prints track quality cuts
+ fCutQuality->Print();
+ return;
+}
+//-----------------------------------------------
+void AliRsnCutSetDaughterParticle::InitStdQualityCuts()
+{
+ // initialize quality std (if not externally defined) and PID cuts
+ // init cut sets by setting variable params
+ //
+ Bool_t isUse2011stdQualityCuts = ((fAppliedCutSetID==AliRsnCutSetDaughterParticle::kQualityStd2011) ||
+ (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTOFMatchPPB2011) || //pA analysis
+ (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTPCpidKstarPPB2011) ||
+ (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTOFpidKstarPPB2011) ||
+ (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTPCTOFpidKstarPPB2011) ||
+ (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTPCpidTOFvetoKStarPPB2011) ||
+ (fAppliedCutSetID==AliRsnCutSetDaughterParticle::kTPCpidMatchPPB2011));
+ if (isUse2011stdQualityCuts) {
+ fCutQuality->SetDefaults2011();//uses filter bit 10 as default
+ fCutQuality->SetAODTestFilterBit(fAODTrkCutFilterBit); //changes default filter bit 10 to the chosen filter bit
+ } 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->SetAODTestFilterBit(fAODTrkCutFilterBit);
+ //fCutQuality->SetITSmaxChi2(36);
+ //fCutQuality->SetMaxChi2TPCConstrainedGlobal(36);
+ }
+
+ //apply pt and eta cuts
+ fCutQuality->SetPtRange(fPtRange[0], fPtRange[1]);
+ fCutQuality->SetEtaRange(fEtaRange[0], fEtaRange[1]);
+ AliInfo("Standard quality cuts applied");
+ fCutQuality->Print();
+ return;
+}