1 AliAnalysisTaskCompareAODTrackCuts* AddTaskCompareAODTrackCuts_DiHadronPIDEff(
2 Double_t MinCentrality = 5.,
3 Double_t MaxCentrality = 0.,
4 const char* CentralityEstimator = "V0M",
5 Double_t maxVertexZ = 7.,
7 Double_t minAssociatedPt = 0.2,
8 Double_t maxAssociatedPt = 5.0,
9 Double_t minTriggerPt = 5.,
10 Double_t maxTriggerPt = 10.,
11 Bool_t requestAllSingleTrackHistos = kTRUE,
12 Int_t FilterMaskTrigger = 7,
13 Int_t FilterMaskAssociated = 10,
14 Bool_t isPbPb = kTRUE,
17 const char* outputFileName = 0,
18 const char* containerName = "DiHadronPIDEff",
19 const char* folderName = "PWGCF_DiHadronPID")
23 // Get a pointer to the analysis manager.
24 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
26 cout<<"AddTaskDiHadronPID.C -> No analysis manager found."<<endl;
30 // Creating the analysis task.
31 AliAnalysisTaskCompareAODTrackCuts* EfficiencyTask = new AliAnalysisTaskCompareAODTrackCuts(containerName);
32 EfficiencyTask->SetVerbose(kFALSE);
33 EfficiencyTask->SetMC(isMC);
34 EfficiencyTask->SetCalculateTOFMismatch(kTRUE);
36 // Configure and add Event Cuts.
37 AliAODEventCutsDiHadronPID* eventcuts = new AliAODEventCutsDiHadronPID("EventCuts");
38 eventcuts->SetTrigger(AliVEvent::kMB);
39 eventcuts->SetCentrality(MaxCentrality, MinCentrality);
40 eventcuts->SetMaxVertexZ(maxVertexZ);
41 eventcuts->SetCentralityEstimator(CentralityEstimator);
42 eventcuts->SetIsPbPb(isPbPb);
43 eventcuts->SetDebugLevel(DebugLevel);
44 EfficiencyTask->SetEventCuts(eventcuts);
46 // Configure and add track cuts for trigger.
47 AliAODTrackCutsDiHadronPID* triggercuts = new AliAODTrackCutsDiHadronPID("TrackCutsTrigger");
48 triggercuts->SetIsMC(isMC);
49 triggercuts->SetFilterMask(FilterMaskTrigger);
50 triggercuts->SetPtRange(minTriggerPt,maxTriggerPt);
51 triggercuts->SetMaxEta(maxEta);
52 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllCharged);
53 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPositive);
54 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegative);
55 if (requestAllSingleTrackHistos) {
56 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllPion);
57 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosPion);
58 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegPion);
59 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllKaon);
60 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosKaon);
61 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegKaon);
62 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllProton);
63 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosProton);
64 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegProton);
66 triggercuts->SetDebugLevel(DebugLevel);
67 EfficiencyTask->AddTrackCuts(triggercuts);
69 // Configure and add track cuts for associateds.
70 AliAODTrackCutsDiHadronPID* associatedscuts = new AliAODTrackCutsDiHadronPID("TrackCutsAssociated");
71 associatedscuts->SetIsMC(isMC);
72 associatedscuts->SetFilterMask(FilterMaskAssociated);
73 associatedscuts->SetPtRange(minAssociatedPt,maxAssociatedPt);
74 associatedscuts->SetMaxEta(maxEta);
75 ULong_t associatedflags = (UInt_t)(AliAODTrack::kTOFout)|(UInt_t)(AliAODTrack::kTIME);
76 associatedscuts->SetDemandFlags(associatedflags);
77 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllCharged);
78 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPositive);
79 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegative);
80 if (requestAllSingleTrackHistos) {
81 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllPion);
82 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosPion);
83 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegPion);
84 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllKaon);
85 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosKaon);
86 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegKaon);
87 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllProton);
88 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosProton);
89 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegProton);
91 associatedscuts->SetDebugLevel(DebugLevel);
92 EfficiencyTask->AddTrackCuts(associatedscuts);
95 mgr->AddTask(EfficiencyTask);
98 AliAnalysisDataContainer* cinput = mgr->GetCommonInputContainer();
99 mgr->ConnectInput(EfficiencyTask, 0, cinput);
101 if (!outputFileName) {outputFileName = AliAnalysisManager::GetCommonFileName();}
103 AliAnalysisDataContainer* coutput1 = mgr->CreateContainer(containerName, TList::Class(),
104 AliAnalysisManager::kOutputContainer,Form("%s:%s", outputFileName, folderName));
106 mgr->ConnectOutput(EfficiencyTask,1,coutput1);
108 return EfficiencyTask;