]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/PIDFluctuation/macros/AddAnalysisTaskPIDFluctuation.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / EBYE / PIDFluctuation / macros / AddAnalysisTaskPIDFluctuation.C
1 //__________________________________________________________________
2
3 AliAnalysisTaskPIDFluctuation *
4 AddAnalysisTaskPIDFluctuation(Int_t aodFilterBit, Float_t ptMin, Float_t ptMax, Float_t etaMin, Float_t etaMax)
5 {
6
7   /* init analysis name */
8   TString analysisName = "PIDFluctuation";
9   analysisName += "_";
10   analysisName += Form("FilterBit%d", aodFilterBit);
11   analysisName += "_";
12   analysisName += Form("pt_%.1f_%.1f", ptMin, ptMax);
13   analysisName += "_";
14   analysisName += Form("eta_%.1f_%.1f", etaMin, etaMax);
15
16   /* check analysis manager */
17   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
18   if (!mgr) {
19     Error("", "cannot get analysis manager");
20     return NULL;
21   }
22
23   /* check input event handler */
24   if (!mgr->GetInputEventHandler()) {
25     Error("", "cannot get input event handler");
26     return NULL;
27   }
28   
29   /* get common input data container */
30   AliAnalysisDataContainer *inputc = mgr->GetCommonInputContainer();
31   if (!inputc) {
32     Error("", "cannot get common input container");
33     return NULL;
34   }
35    
36   /* create output data container */
37   TString outputFileName = AliAnalysisManager::GetCommonFileName();
38   outputFileName += ":PWGCFEbyE.outputPIDFunctionAnalysis";
39   AliAnalysisDataContainer *outputc1 = mgr->CreateContainer(analysisName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, outputFileName.Data());
40   if (!outputc1) {
41     Error("", "cannot create output container \"Histos\"");
42     return NULL;
43   }
44
45   /*  create task and connect input/output */
46   AliAnalysisTaskPIDFluctuation *task = new AliAnalysisTaskPIDFluctuation(analysisName.Data());
47   mgr->AddTask(task);
48   mgr->ConnectInput(task, 0, inputc);
49   mgr->ConnectOutput(task, 1, outputc1);
50
51   /* setup task */
52   task->SetESDtrackCuts(GetESDtrackCuts(aodFilterBit));
53   task->SetAODfilterBit(aodFilterBit);
54   task->SetEtaRange(etaMin, etaMax);
55   task->SetPtRange(ptMin, ptMax);
56
57   task->Dump();
58   return task;
59 }
60
61 //__________________________________________________________________
62
63 AliESDtrackCuts *
64 GetESDtrackCuts(Int_t type)
65 {
66   AliESDtrackCuts *trackCuts;
67   switch (type) {
68   case AliAODTrack::kTrkGlobal:
69     trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010();
70     break;
71   case AliAODTrack::kTrkTPCOnlyConstrained:
72   case AliAODTrack::kTrkTPCOnly:
73     trackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
74     trackCuts->SetMinNClustersTPC(70);
75     break;
76   }
77   return trackCuts;
78 }
79
80