ROOT logo
AliAnalysisFilter *AddESDFilter()
{
  // Cuts on primary tracks
  AliESDtrackCuts* esdTrackCutsL = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();

  // ITS stand-alone tracks
  AliESDtrackCuts* esdTrackCutsITSsa = new AliESDtrackCuts("ITS stand-alone Track Cuts", "ESD Track Cuts");
  esdTrackCutsITSsa->SetRequireITSStandAlone(kTRUE);

  // Pixel OR necessary for the electrons
  AliESDtrackCuts *itsStrong = new AliESDtrackCuts("ITSorSPD", "pixel requirement for ITS");
  itsStrong->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);


  // PID for the electrons
  AliESDpidCuts *electronID = new AliESDpidCuts("Electrons", "Electron PID cuts");
  electronID->SetTPCnSigmaCut(AliPID::kElectron, 3.);

  // standard cuts with very loose DCA
  AliESDtrackCuts* esdTrackCutsH = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kFALSE); 
  esdTrackCutsH->SetMaxDCAToVertexXY(2.4);
  esdTrackCutsH->SetMaxDCAToVertexZ(3.2);
  esdTrackCutsH->SetDCAToVertex2D(kTRUE);

  // standard cuts with tight DCA cut
  AliESDtrackCuts* esdTrackCutsH2 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010();

  // standard cuts with tight DCA but with requiring the first SDD cluster instead of an SPD cluster
  // tracks selected by this cut are exclusive to those selected by the previous cut
  AliESDtrackCuts* esdTrackCutsH3 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(); 
  esdTrackCutsH3->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kNone);
  esdTrackCutsH3->SetClusterRequirementITS(AliESDtrackCuts::kSDD, AliESDtrackCuts::kFirst);

  // TPC only tracks: Optionally enable the writing of TPConly information
  // constrained to SPD vertex in the filter below
  AliESDtrackCuts* esdTrackCutsTPCOnly = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
  esdTrackCutsTPCOnly->SetMinNClustersTPC(70);

  // R_AA cut with recent change in AliESDtrackCuts in trunk aliroot (111026)
  AliESDtrackCuts* esdTrackCutsRaa = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,1); // 1,2,3,4,5,6,7
  esdTrackCutsRaa->SetMinNCrossedRowsTPC(120); // 3 (70 set in above cut)
  esdTrackCutsRaa->SetMaxChi2PerClusterITS(36.); // 8
  esdTrackCutsRaa->SetMaxChi2TPCConstrainedGlobal(36.); // 9
  esdTrackCutsRaa->SetMaxFractionSharedTPCClusters(0.4); // 10

  // Compose the filter
  AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
  // 1
  trackFilter->AddCuts(esdTrackCutsL);
  // 2
  trackFilter->AddCuts(esdTrackCutsITSsa);
  // 4
  trackFilter->AddCuts(itsStrong);
  itsStrong->SetFilterMask(1);        // AND with Standard track cuts 
  // 8
  trackFilter->AddCuts(electronID);
  electronID->SetFilterMask(4);       // AND with Pixel Cuts
  // 16
  trackFilter->AddCuts(esdTrackCutsH);
  // 32
  trackFilter->AddCuts(esdTrackCutsH2);
  // 64
  trackFilter->AddCuts(esdTrackCutsH3);
  // 128 , 1 << 7
  trackFilter->AddCuts(esdTrackCutsTPCOnly);

  //========================================
  //
  //        Add Additional Cuts here
  //
  //========================================

  trackFilter->AddCuts(esdTrackCutsRaa);

  return trackFilter;
}

 AddESDFilter.C:1
 AddESDFilter.C:2
 AddESDFilter.C:3
 AddESDFilter.C:4
 AddESDFilter.C:5
 AddESDFilter.C:6
 AddESDFilter.C:7
 AddESDFilter.C:8
 AddESDFilter.C:9
 AddESDFilter.C:10
 AddESDFilter.C:11
 AddESDFilter.C:12
 AddESDFilter.C:13
 AddESDFilter.C:14
 AddESDFilter.C:15
 AddESDFilter.C:16
 AddESDFilter.C:17
 AddESDFilter.C:18
 AddESDFilter.C:19
 AddESDFilter.C:20
 AddESDFilter.C:21
 AddESDFilter.C:22
 AddESDFilter.C:23
 AddESDFilter.C:24
 AddESDFilter.C:25
 AddESDFilter.C:26
 AddESDFilter.C:27
 AddESDFilter.C:28
 AddESDFilter.C:29
 AddESDFilter.C:30
 AddESDFilter.C:31
 AddESDFilter.C:32
 AddESDFilter.C:33
 AddESDFilter.C:34
 AddESDFilter.C:35
 AddESDFilter.C:36
 AddESDFilter.C:37
 AddESDFilter.C:38
 AddESDFilter.C:39
 AddESDFilter.C:40
 AddESDFilter.C:41
 AddESDFilter.C:42
 AddESDFilter.C:43
 AddESDFilter.C:44
 AddESDFilter.C:45
 AddESDFilter.C:46
 AddESDFilter.C:47
 AddESDFilter.C:48
 AddESDFilter.C:49
 AddESDFilter.C:50
 AddESDFilter.C:51
 AddESDFilter.C:52
 AddESDFilter.C:53
 AddESDFilter.C:54
 AddESDFilter.C:55
 AddESDFilter.C:56
 AddESDFilter.C:57
 AddESDFilter.C:58
 AddESDFilter.C:59
 AddESDFilter.C:60
 AddESDFilter.C:61
 AddESDFilter.C:62
 AddESDFilter.C:63
 AddESDFilter.C:64
 AddESDFilter.C:65
 AddESDFilter.C:66
 AddESDFilter.C:67
 AddESDFilter.C:68
 AddESDFilter.C:69
 AddESDFilter.C:70
 AddESDFilter.C:71
 AddESDFilter.C:72
 AddESDFilter.C:73
 AddESDFilter.C:74
 AddESDFilter.C:75
 AddESDFilter.C:76
 AddESDFilter.C:77
 AddESDFilter.C:78