AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts;
// TPC
- esdTrackCuts->SetRequireTPCStandAlone(kTRUE); // to get chi2 and ncls of kTPCin
esdTrackCuts->SetMinNClustersTPC(70);
esdTrackCuts->SetMaxChi2PerClusterTPC(4);
esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
esdTrackCuts->SetMaxDCAToVertexZ(2);
esdTrackCuts->SetDCAToVertex2D(kFALSE);
esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
- //esdTrackCuts->SetEtaRange(-0.8,+0.8);
return esdTrackCuts;
}
return esdTrackCuts;
}
+//____________________________________________________________________
+AliESDtrackCuts* AliESDtrackCuts::GetStandardITSPureSATrackCuts2010(Bool_t selPrimaries, Bool_t useForPid)
+{
+ // creates an AliESDtrackCuts object and fills it with standard values for ITS pure SA tracks - pp 2010
+
+ AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts;
+ esdTrackCuts->SetRequireITSPureStandAlone(kTRUE);
+ esdTrackCuts->SetRequireITSRefit(kTRUE);
+ esdTrackCuts->SetMinNClustersITS(4);
+ esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
+ AliESDtrackCuts::kAny);
+ esdTrackCuts->SetMaxChi2PerClusterITS(2.5);
+
+ if(selPrimaries) {
+ // 7*(0.0033+0.0045/pt^1.3)
+ esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0231+0.0315/pt^1.3");
+ }
+ if(useForPid){
+ esdTrackCuts->SetRequireITSPid(kTRUE);
+ }
+ return esdTrackCuts;
+}
+
//____________________________________________________________________
AliESDtrackCuts* AliESDtrackCuts::GetStandardITSSATrackCuts2009(Bool_t selPrimaries, Bool_t useForPid)
{
return esdTrackCuts;
}
+//____________________________________________________________________
+AliESDtrackCuts* AliESDtrackCuts::GetStandardITSSATrackCuts2010(Bool_t selPrimaries, Bool_t useForPid)
+{
+ // creates an AliESDtrackCuts object and fills it with standard values for ITS pure SA tracks --pp 2010
+
+ AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts;
+ esdTrackCuts->SetRequireITSStandAlone(kTRUE);
+ esdTrackCuts->SetRequireITSPureStandAlone(kFALSE);
+ esdTrackCuts->SetRequireITSRefit(kTRUE);
+ esdTrackCuts->SetMinNClustersITS(4);
+ esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
+ AliESDtrackCuts::kAny);
+ esdTrackCuts->SetMaxChi2PerClusterITS(2.5);
+
+ if(selPrimaries) {
+ // 7*(0.0033+0.0045/pt^1.3)
+ esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0231+0.0315/pt^1.3");
+ }
+ if(useForPid){
+ esdTrackCuts->SetRequireITSPid(kTRUE);
+ }
+ return esdTrackCuts;
+}
//____________________________________________________________________
Int_t AliESDtrackCuts::GetReferenceMultiplicity(AliESDEvent* esd, Bool_t tpcOnly)
return -1;
}
- AliESDtrackCuts* esdTrackCuts = GetStandardTPCOnlyTrackCuts();
- esdTrackCuts->SetEtaRange(-0.8, 0.8);
- esdTrackCuts->SetPtRange(0.15);
+ static AliESDtrackCuts* esdTrackCuts = 0;
+ if (!esdTrackCuts)
+ {
+ esdTrackCuts = GetStandardTPCOnlyTrackCuts();
+ esdTrackCuts->SetEtaRange(-0.8, 0.8);
+ esdTrackCuts->SetPtRange(0.15);
+ }
Int_t nTracks = esdTrackCuts->CountAcceptedTracks(esd);
- delete esdTrackCuts;
- esdTrackCuts = 0;
-
return nTracks;
}
}
void AliESDtrackCuts::SetMaxDCAToVertexXYPtDep(const char *dist){
- if(!CheckPtDepDCA(dist,kTRUE)) return;
- if(f1CutMaxDCAToVertexXYPtDep)delete f1CutMaxDCAToVertexXYPtDep;
+
+ if(f1CutMaxDCAToVertexXYPtDep){
+ delete f1CutMaxDCAToVertexXYPtDep;
+ // resetiing both
+ f1CutMaxDCAToVertexXYPtDep = 0;
+ fCutMaxDCAToVertexXYPtDep = "";
+ }
+ if(!CheckPtDepDCA(dist,kTRUE)){
+ return;
+ }
fCutMaxDCAToVertexXYPtDep = dist;
TString tmp(dist);
tmp.ReplaceAll("pt","x");
}
void AliESDtrackCuts::SetMaxDCAToVertexZPtDep(const char *dist){
- if(!CheckPtDepDCA(dist,kTRUE)) return;
- if(f1CutMaxDCAToVertexZPtDep)delete f1CutMaxDCAToVertexZPtDep;
+
+
+ if(f1CutMaxDCAToVertexZPtDep){
+ delete f1CutMaxDCAToVertexZPtDep;
+ // resetiing both
+ f1CutMaxDCAToVertexZPtDep = 0;
+ fCutMaxDCAToVertexZPtDep = "";
+ }
+ if(!CheckPtDepDCA(dist,kTRUE))return;
+
fCutMaxDCAToVertexZPtDep = dist;
TString tmp(dist);
tmp.ReplaceAll("pt","x");
void AliESDtrackCuts::SetMinDCAToVertexXYPtDep(const char *dist){
- if(!CheckPtDepDCA(dist,kTRUE)) return;
- if(f1CutMinDCAToVertexXYPtDep)delete f1CutMinDCAToVertexXYPtDep;
+
+
+ if(f1CutMinDCAToVertexXYPtDep){
+ delete f1CutMinDCAToVertexXYPtDep;
+ // resetiing both
+ f1CutMinDCAToVertexXYPtDep = 0;
+ fCutMinDCAToVertexXYPtDep = "";
+ }
+ if(!CheckPtDepDCA(dist,kTRUE))return;
+
fCutMinDCAToVertexXYPtDep = dist;
TString tmp(dist);
tmp.ReplaceAll("pt","x");
void AliESDtrackCuts::SetMinDCAToVertexZPtDep(const char *dist){
- if(!CheckPtDepDCA(dist,kTRUE)) return;
- if(f1CutMinDCAToVertexZPtDep)delete f1CutMinDCAToVertexZPtDep;
+
+
+
+ if(f1CutMinDCAToVertexZPtDep){
+ delete f1CutMinDCAToVertexZPtDep;
+ // resetiing both
+ f1CutMinDCAToVertexZPtDep = 0;
+ fCutMinDCAToVertexZPtDep = "";
+ }
+ if(!CheckPtDepDCA(dist,kTRUE))return;
fCutMinDCAToVertexZPtDep = dist;
TString tmp(dist);
tmp.ReplaceAll("pt","x");