]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/macros/AddAliEbyEHigherMomentsEffContTask.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / EBYE / macros / AddAliEbyEHigherMomentsEffContTask.C
1 //=========================================================================//
2 //                                                                         //
3 //           Analysis AddTask for Net-Charge Higher Moment Analysis        //
4 //              Author: Satyajit Jena || Nirbhay K. Behera                 //
5 //                      sjena@cern.ch || nbehera@cern.ch                   //
6 //                                                                         //
7 //=========================================================================//
8 TString fileNameBase="AnalysisResults.root";
9
10 //const char* analysisType        = "MCAOD"; // MC, ESD, AOD
11 //const char* centralityEstimator = "V0M"; // V0M, TRK, FMD, ....
12
13 //_________________________________________________________//
14
15 AliAnalysisTask* AddAliEbyEHigherMomentsEffContTask(Double_t vx,
16                                                     Double_t vy,
17                                                     Double_t vz,
18                                                     Double_t dcaxy,
19                                                     Double_t dcaz,
20                                                     Double_t ptl,
21                                                     Double_t pth,
22                                                     Double_t eta,
23                                                     Double_t rapidity,
24                                                     Int_t    nclus,
25                                                     Double_t chi2ndf,
26                                                     Int_t AODfilterBit = 128,
27                                                     Bool_t usepid,
28                                                     TString particle,
29                                                     Double_t nsigma,
30                                                     Bool_t CheckCont,
31                                                     Bool_t efficiency,
32                                                     const char* centralityEstimator,
33                                                     Bool_t trigger = kFALSE,
34                                                     const char* analysisType,
35                                                     const char* taskss) {
36   
37   
38   TString taskname = "HMQA";
39   TString taskname1 = "HM";
40   taskname.Append(taskss);
41   taskname1.Append(taskss);
42   
43   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
44   if (!mgr) {
45     ::Error("AddTaskFluctuations", "No analysis manager to connect to.");
46     return NULL;
47   }
48   
49   if (!mgr->GetInputEventHandler()) {
50     ::Error("AddTaskFluctuations", "This task requires an input event handler");
51     return NULL;
52   }
53   TString type = mgr->GetInputEventHandler()->GetDataType(); 
54   
55   AliEbyEHigherMomentsEffContTask *taskHM = new AliEbyEHigherMomentsEffContTask("HigherMomentsTask");
56   taskHM->SetVertexDiamond(vx,vy,vz);
57   taskHM->SetKinematicsCutsAOD(ptl,pth,eta);
58   taskHM->SetDCA(dcaxy, dcaz);
59   taskHM->SetCentralityEstimator(centralityEstimator);
60   taskHM->SetAnalysisType(analysisType);
61   taskHM->SetPtRange(ptl,pth);
62   taskHM->SetEta(eta);
63   taskHM->SetTPCNclus(nclus);
64   taskHM->SetChi2PerNDF(chi2ndf);
65   taskHM->SetAODtrackCutBit(AODfilterBit);
66   taskHM->SetUsePid(usepid);
67   taskHM->SetContaMinationCheck(CheckCont);
68   taskHM->SetEfficencyJob(efficiency);
69   
70   if( usepid ){
71     taskHM->SetNSigmaCut(nsigma);
72     taskHM->SetRapidityCut(rapidity);
73     if( particle == "Proton" ){  taskHM->SetParticleSpecies(AliPID::kProton); }
74     else if( particle == "Kaon") { taskHM->SetParticleSpecies(AliPID::kKaon); }
75     else if( particle == "Pion" ){ taskHM->SetParticleSpecies(AliPID::kPion); }
76   }
77   
78   if(trigger) taskHM->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral);
79   else taskHM->SelectCollisionCandidates(AliVEvent::kMB);
80   
81   mgr->AddTask(taskHM);
82   
83   
84   AliAnalysisDataContainer *coutQA = mgr->CreateContainer(taskname.Data(), 
85                                                           TList::Class(),
86                                                           AliAnalysisManager::kOutputContainer,fileNameBase.Data());
87   AliAnalysisDataContainer *coutFA = mgr->CreateContainer(taskname1.Data(), 
88                                                           TList::Class(),
89                                                           AliAnalysisManager::kOutputContainer,fileNameBase.Data());
90   mgr->ConnectInput(taskHM, 0, mgr->GetCommonInputContainer());
91   mgr->ConnectOutput(taskHM, 1, coutQA);
92   mgr->ConnectOutput(taskHM, 2, coutFA);
93   
94   return taskHM;
95 }