]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/Correlations/macros/DiHadronPID/AddTaskDiHadronPIDpp.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / Correlations / macros / DiHadronPID / AddTaskDiHadronPIDpp.C
CommitLineData
f2cdc1cf 1AliAnalysisTaskDiHadronPID* AddTaskDiHadronPIDpp( // for AOD113 2.76TeV
2 Int_t NDEtaBins = 32,
3 Int_t NDPhiBins = 32,
4 Int_t MinEventsForMixing = 5,
5 Int_t PoolTrackDepth = 2000,
6 Int_t PoolSize = 1000,
7 Bool_t MixEvents = kTRUE,
8 Bool_t MixTriggers = kTRUE,
9 Double_t MinCentrality = 5.,
10 Double_t MaxCentrality = 0.,
11 const char* CentralityEstimator = "V0M",
12 Double_t maxVertexZ = 10.,
13 Double_t maxEta = 0.8,
14 Double_t minAssociatedPt = 0.2,
15 Double_t maxAssociatedPt = 5.0,
16 Double_t minTriggerPt = 5.,
17 Double_t maxTriggerPt = 10.,
18 Bool_t requestAllSingleTrackHistos = kFALSE,
19 Int_t FilterMaskTrigger = 7,
20 Int_t FilterMaskAssociated = 5,
21 Bool_t isPbPb = kFALSE,
22 Bool_t isMC = kFALSE,
23 Int_t DebugLevel = 0,
24 Bool_t MakeTOFCorrelations = kTRUE,
25 Bool_t MakeTOFTPCCorrelationsPi = kFALSE,
26 Bool_t MakeTOFTPCCorrelationsKa = kFALSE,
27 Bool_t MakeTOFTPCCorrelationsPr = kFALSE,
28 Double_t TOFIntervalFactorTOFTPC = 1.,
29 Bool_t ExtendPtAxis = kFALSE,
30 const char* outputFileName = 0,
31 const char* containerName = "DiHadronPID",
32 const char* folderName = "PWGCF_DiHadronPID")
33
34{
35 // Get a pointer to the analysis manager.
36 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
37 if (!mgr) {
38 cout<<"AddTaskDiHadronPIDpp.C -> No analysis manager found."<<endl;
39 return 0x0;
40 }
41
42 // Create an instance of the task.
43 AliAnalysisTaskDiHadronPID* DiHadronPIDTask = new AliAnalysisTaskDiHadronPID(containerName);
44
45 // Configure the task.
46 DiHadronPIDTask->SetNDEtaBins(NDEtaBins);
47 DiHadronPIDTask->SetNDPhiBins(NDPhiBins);
48 DiHadronPIDTask->SetMinEventsForMixing(MinEventsForMixing);
49 DiHadronPIDTask->SetPoolTrackDepth(PoolTrackDepth);
50 DiHadronPIDTask->SetPoolSize(PoolSize);
51 DiHadronPIDTask->SetMixEvents(MixEvents);
52 DiHadronPIDTask->SetMixTriggers(MixTriggers);
53 DiHadronPIDTask->SetDebugLevel(DebugLevel);
54 DiHadronPIDTask->SetMakeTOFCorrelations(MakeTOFCorrelations);
55 DiHadronPIDTask->SetMakeTOFTPCCorrelationsPi(MakeTOFTPCCorrelationsPi);
56 DiHadronPIDTask->SetMakeTOFTPCCorrelationsKa(MakeTOFTPCCorrelationsKa);
57 DiHadronPIDTask->SetMakeTOFTPCCorrelationsPr(MakeTOFTPCCorrelationsPr);
58 DiHadronPIDTask->SetTOFIntervalFactorTOFTPC(TOFIntervalFactorTOFTPC);
59 DiHadronPIDTask->SetExtendPtAxis(ExtendPtAxis);
60
61 // Configure and add Event Cuts.
62 AliAODEventCutsDiHadronPID* eventcuts = new AliAODEventCutsDiHadronPID("EventCuts");
63 eventcuts->SetTrigger(AliVEvent::kMB);
64 // eventcuts->SetCentrality(MaxCentrality, MinCentrality);
65 eventcuts->SetMaxVertexZ(maxVertexZ);
66 // eventcuts->SetCentralityEstimator(CentralityEstimator);
67 eventcuts->SetIsPbPb(isPbPb);
68 eventcuts->SetDemandContributorsOrSPDVertex();
69 eventcuts->SetDebugLevel(DebugLevel);
70 DiHadronPIDTask->SetEventCuts(eventcuts);
71
72 // Configure and add track cuts for trigger.
73 AliAODTrackCutsDiHadronPID* triggercuts = new AliAODTrackCutsDiHadronPID("TrackCutsTrigger");
74 triggercuts->SetIsMC(isMC);
75 triggercuts->SetFilterMask(1<<FilterMaskTrigger);
76 triggercuts->SetPtRange(minTriggerPt,maxTriggerPt);
77 triggercuts->SetMaxEta(maxEta);
78 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllCharged);
79 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPositive);
80 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegative);
81 if (requestAllSingleTrackHistos) {
82 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllPion);
83 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosPion);
84 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegPion);
85 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllKaon);
86 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosKaon);
87 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegKaon);
88 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllProton);
89 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosProton);
90 triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegProton);
91 }
92 triggercuts->SetDebugLevel(DebugLevel);
93 DiHadronPIDTask->SetTrackCutsTrigger(triggercuts);
94
95 // Configure and add track cuts for associateds.
96 AliAODTrackCutsDiHadronPID* associatedscuts = new AliAODTrackCutsDiHadronPID("TrackCutsAssociated");
97 associatedscuts->SetIsMC(isMC);
98 associatedscuts->SetFilterMask(1<<FilterMaskAssociated);
99 associatedscuts->SetPtRange(minAssociatedPt,maxAssociatedPt);
100 associatedscuts->SetMaxEta(maxEta);
101 // associatedscuts->SetMinimumNumberOfTPCClusters(70); // marek doestn do this
102 associatedscuts->SetDemandSPDCluster();
103 ULong_t associatedflags = (UInt_t)(AliAODTrack::kTPCrefit)|(UInt_t)(AliAODTrack::kITSrefit)|(UInt_t)(AliAODTrack::kTOFout)|(UInt_t)(AliAODTrack::kTIME);
104 associatedscuts->SetDemandFlags(associatedflags);
105 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllCharged);
106 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPositive);
107 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegative);
108 if (requestAllSingleTrackHistos) {
109 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllPion);
110 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosPion);
111 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegPion);
112 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllKaon);
113 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosKaon);
114 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegKaon);
115 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllProton);
116 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosProton);
117 associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegProton);
118 }
119 associatedscuts->SetDebugLevel(DebugLevel);
120 DiHadronPIDTask->SetTrackCutsAssociated(associatedscuts);
121
122 // Add the task.
123 mgr->AddTask(DiHadronPIDTask);
124
125 // Data containers.
126 AliAnalysisDataContainer* cinput = mgr->GetCommonInputContainer();
127 mgr->ConnectInput(DiHadronPIDTask, 0, cinput);
128
129 if (!outputFileName) {outputFileName = AliAnalysisManager::GetCommonFileName();}
130
131 AliAnalysisDataContainer* coutput1 = mgr->CreateContainer(containerName, TList::Class(),
132 AliAnalysisManager::kOutputContainer,Form("%s:%s", outputFileName, folderName));
133
134 mgr->ConnectOutput(DiHadronPIDTask,1,coutput1);
135
136 return DiHadronPIDTask;
137
138}