10 #include "AliAODTrack.h"
11 #include "AliESDtrackCuts.h"
22 namespace EMCalTriggerPtAnalysis {
27 std::vector<AliVCuts *> trackcuts;
28 if(cut.Contains(
"standard")){
29 AliESDtrackCuts *esdcuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(
true, 1);
30 esdcuts->DefineHistograms(kRed);
31 esdcuts->SetName(
"Standard Track cuts");
32 esdcuts->SetMinNCrossedRowsTPC(120);
33 esdcuts->SetMaxDCAToVertexXYPtDep(
"0.0182+0.0350/pt^1.01");
34 trackcuts.push_back(esdcuts);
36 if(cut.Contains(
"hybrid")){
37 AliESDtrackCuts *esdcuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE);
38 esdcuts->SetName(
"Global Hybrid tracks, loose DCA");
39 esdcuts->SetMaxDCAToVertexXY(2.4);
40 esdcuts->SetMaxDCAToVertexZ(3.2);
41 esdcuts->SetDCAToVertex2D(kTRUE);
42 esdcuts->SetMaxChi2TPCConstrainedGlobal(36);
43 esdcuts->SetMaxFractionSharedTPCClusters(0.4);
44 trackcuts.push_back(esdcuts);
46 if(cut.Contains(
"geo")){
47 AliEMCalTriggerExtraCuts *geocuts =
new AliEMCalTriggerExtraCuts();
48 geocuts->SetMinTPCTrackLengthCut();
49 trackcuts.push_back(geocuts);
52 for(std::vector<AliVCuts *>::iterator it = trackcuts.begin(); it != trackcuts.end(); ++it)
57 std::vector<AliVCuts *> trackcuts;
60 std::function<AliEMCalTriggerExtraCuts *(const std::vector<AliVCuts *> &)> FindTrackCuts = [] (
const std::vector<AliVCuts *> &cuts) -> AliEMCalTriggerExtraCuts * {
61 AliEMCalTriggerExtraCuts *found =
nullptr;
62 for(std::vector<AliVCuts *>::const_iterator cutiter = cuts.begin(); cutiter != cuts.end(); ++cutiter){
63 if((*cutiter)->IsA() == AliEMCalTriggerExtraCuts::Class()){
64 found =
static_cast<AliEMCalTriggerExtraCuts *
>(*cutiter);
70 if(cut.Contains(
"standard")){
72 AliEMCalTriggerExtraCuts *extracuts = FindTrackCuts(trackcuts);
74 extracuts =
new AliEMCalTriggerExtraCuts;
75 trackcuts.push_back(extracuts);
77 extracuts->SetMinTPCCrossedRows(120);
79 if(cut.Contains(
"hybrid")){
83 if(cut.Contains(
"geo")){
84 AliEMCalTriggerExtraCuts *extracuts = FindTrackCuts(trackcuts);
86 extracuts =
new AliEMCalTriggerExtraCuts;
87 trackcuts.push_back(extracuts);
89 extracuts->SetMinTPCTrackLengthCut();
91 for(std::vector<AliVCuts *>::iterator it = trackcuts.begin(); it != trackcuts.end(); ++it)
99 AliEmcalTriggerOfflineSelection *result =
new AliEmcalTriggerOfflineSelection;
100 result->SetOfflineEnergyThreshold(AliEmcalTriggerOfflineSelection::kTrgEL0, el0);
101 result->SetOfflineEnergyThreshold(AliEmcalTriggerOfflineSelection::kTrgEG1, eg1);
102 result->SetOfflineEnergyThreshold(AliEmcalTriggerOfflineSelection::kTrgEG2, eg2);
103 result->SetOfflineEnergyThreshold(AliEmcalTriggerOfflineSelection::kTrgEJ1, ej1);
104 result->SetOfflineEnergyThreshold(AliEmcalTriggerOfflineSelection::kTrgEJ2, ej2);
Interface for virtual track selection.
void AddFilterBit(UInt_t filterbits)
ClassImp(EMCalTriggerPtAnalysis::AliEmcalAnalysisFactory) namespace EMCalTriggerPtAnalysis
void AddTrackCuts(AliVCuts *cuts)
Implement virtual track selection for AOD analysis.
Implementation of virtual track selection for ESDs.