]>
Commit | Line | Data |
---|---|---|
f2cdc1cf | 1 | AliAnalysisTaskDiHadronPID* 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 | } |