19 #include "AliAODTrack.h"
20 #include "AliESDtrackCuts.h"
33 namespace EMCalTriggerPtAnalysis {
38 std::vector<AliVCuts *> trackcuts;
39 if(cut.Contains(
"standard")){
40 AliESDtrackCuts *esdcuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(
true, 1);
41 esdcuts->DefineHistograms(kRed);
42 esdcuts->SetName(
"Standard Track cuts");
43 esdcuts->SetMinNCrossedRowsTPC(120);
44 esdcuts->SetMaxDCAToVertexXYPtDep(
"0.0182+0.0350/pt^1.01");
45 trackcuts.push_back(esdcuts);
47 if(cut.Contains(
"hybrid")){
48 AliESDtrackCuts *esdcuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE);
49 esdcuts->SetName(
"Global Hybrid tracks, loose DCA");
50 esdcuts->SetMaxDCAToVertexXY(2.4);
51 esdcuts->SetMaxDCAToVertexZ(3.2);
52 esdcuts->SetDCAToVertex2D(kTRUE);
53 esdcuts->SetMaxChi2TPCConstrainedGlobal(36);
54 esdcuts->SetMaxFractionSharedTPCClusters(0.4);
55 trackcuts.push_back(esdcuts);
57 if(cut.Contains(
"ITSchi2")){
61 int strmin = cut.Index(
"ITSchi2") + 7;
62 int cutvalue =
TString(cut(strmin , strmin+4)).Atoi();
63 float itscut =
static_cast<float>(cutvalue)/10.;
65 std::cout <<
"Using ITS chi2 cut variation: " << itscut << std::endl;
67 AliESDtrackCuts *esdcuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(
false, 1);
68 esdcuts->DefineHistograms(kRed);
69 esdcuts->SetName(
"Standard Track cuts");
70 esdcuts->SetMinNCrossedRowsTPC(120);
71 esdcuts->SetMaxDCAToVertexXY(2.4);
72 esdcuts->SetMaxDCAToVertexZ(3.2);
73 esdcuts->SetDCAToVertex2D(kTRUE);
74 esdcuts->SetMaxChi2PerClusterITS(itscut);
76 esdcuts->SetMaxChi2TPCConstrainedGlobal(100);
78 if(cut.Contains(
"TPCchi2Constrained")){
82 int strmin = cut.Index(
"TPCchi2Constrained") + 18;
83 int cutvalue =
TString(cut(strmin , strmin+4)).Atoi();
84 float tpcconstrainedcut =
static_cast<float>(cutvalue) / 10.;
86 std::cout <<
"Using TOC chi2 constrained cut variation: " << tpcconstrainedcut << std::endl;
88 AliESDtrackCuts *esdcuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(
false, 1);
89 esdcuts->DefineHistograms(kRed);
90 esdcuts->SetName(
"Standard Track cuts");
91 esdcuts->SetMinNCrossedRowsTPC(120);
92 esdcuts->SetMaxDCAToVertexXY(2.4);
93 esdcuts->SetMaxDCAToVertexZ(3.2);
94 esdcuts->SetDCAToVertex2D(kTRUE);
95 esdcuts->SetMaxChi2TPCConstrainedGlobal(tpcconstrainedcut);
97 esdcuts->SetMaxChi2PerClusterITS(100);
99 if(cut.Contains(
"geo")){
102 trackcuts.push_back(geocuts);
105 for(std::vector<AliVCuts *>::iterator it = trackcuts.begin(); it != trackcuts.end(); ++it)
110 std::vector<AliVCuts *> trackcuts;
113 std::function<AliEMCalTriggerExtraCuts *(const std::vector<AliVCuts *> &)> FindTrackCuts = [] (
const std::vector<AliVCuts *> &cuts) ->
AliEMCalTriggerExtraCuts * {
115 for(std::vector<AliVCuts *>::const_iterator cutiter = cuts.begin(); cutiter != cuts.end(); ++cutiter){
116 if((*cutiter)->IsA() == AliEMCalTriggerExtraCuts::Class()){
123 if(cut.Contains(
"standard")){
128 trackcuts.push_back(extracuts);
132 if(cut.Contains(
"hybrid")){
136 if(cut.Contains(
"geo")){
140 trackcuts.push_back(extracuts);
144 for(std::vector<AliVCuts *>::iterator it = trackcuts.begin(); it != trackcuts.end(); ++it)
163 return isAOD ?
"caloClusters" :
"CaloClusters";
Interface for virtual track selection.
Helper class selecting events on the presence of a trigger patch for the given type above threshold...
void AddFilterBit(UInt_t filterbits)
Collection of helper functions used to configure the analysis.
void SetOfflineEnergyThreshold(EmcalTriggerClass trgcls, double threshold)
Specify threshold for a given offline trigger class.
void AddTrackCuts(AliVCuts *cuts)
Implement virtual track selection for AOD analysis.
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
EmcalEnergyDefinition_t
Definition of EMCAL patch energy measurements.
void SetEnergyDefinition(EmcalEnergyDefinition_t endef)
Define according to which energy measurement a patch is selected as trigger patch.
Implementation of virtual track selection for ESDs.