]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/macros/DiHadronPID/AddTaskCompareAODTrackCuts_DiHadronPIDEff.C
small fix
[u/mrichter/AliRoot.git] / PWGCF / Correlations / macros / DiHadronPID / AddTaskCompareAODTrackCuts_DiHadronPIDEff.C
1 AliAnalysisTaskCompareAODTrackCuts* AddTaskCompareAODTrackCuts_DiHadronPIDEff(
2         Double_t MinCentrality = 5.,
3         Double_t MaxCentrality = 0.,
4         const char* CentralityEstimator = "V0M",
5         Double_t maxVertexZ = 7.,
6         Double_t maxEta = 0.8,
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,
15         Bool_t isMC = kTRUE,
16         Int_t DebugLevel = 0,
17         const char* outputFileName = 0,
18         const char* containerName = "DiHadronPIDEff",
19         const char* folderName = "PWGCF_DiHadronPID") 
20
21 {
22
23         // Get a pointer to the analysis manager.
24     AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
25     if (!mgr) {
26         cout<<"AddTaskDiHadronPID.C -> No analysis manager found."<<endl;
27         return 0x0;
28     }
29
30     // Creating the analysis task.
31     AliAnalysisTaskCompareAODTrackCuts* EfficiencyTask = new AliAnalysisTaskCompareAODTrackCuts(containerName);
32     EfficiencyTask->SetVerbose(kFALSE);
33     EfficiencyTask->SetMC(isMC);
34     EfficiencyTask->SetCalculateTOFMismatch(kTRUE);
35
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);
45
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);
65         }       
66         triggercuts->SetDebugLevel(DebugLevel);
67         EfficiencyTask->AddTrackCuts(triggercuts);
68
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);
90         }
91         associatedscuts->SetDebugLevel(DebugLevel);
92         EfficiencyTask->AddTrackCuts(associatedscuts);
93
94         // Add the task.
95         mgr->AddTask(EfficiencyTask);
96     
97         // Data containers.
98         AliAnalysisDataContainer* cinput  = mgr->GetCommonInputContainer();
99         mgr->ConnectInput(EfficiencyTask, 0, cinput); 
100         
101         if (!outputFileName) {outputFileName = AliAnalysisManager::GetCommonFileName();}
102         
103         AliAnalysisDataContainer* coutput1 = mgr->CreateContainer(containerName, TList::Class(),
104                          AliAnalysisManager::kOutputContainer,Form("%s:%s", outputFileName, folderName));
105         
106         mgr->ConnectOutput(EfficiencyTask,1,coutput1);
107         
108         return EfficiencyTask;
109
110 }