]>
Commit | Line | Data |
---|---|---|
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 | AliAnalysisTask* AddAliEbyEHigherMomentsTaskCentrality(Double_t vx, | |
11 | Double_t vy, | |
12 | Double_t vz, | |
13 | Double_t dcaxy, | |
14 | Double_t dcaz, | |
15 | Double_t ptl, | |
16 | Double_t pth, | |
17 | Double_t eta, | |
18 | Double_t rapidity, | |
19 | Int_t nclus, | |
20 | Double_t chi2ndf, | |
21 | TString particle, | |
22 | Double_t nsigma, | |
23 | Int_t AODfilterBit = 128, | |
24 | const char* centralityEstimator, | |
25 | Bool_t trigger = kFALSE, | |
26 | Bool_t usepid, | |
27 | Bool_t checkEff, | |
28 | TString analysis, | |
29 | const char* taskss) { | |
30 | ||
31 | ||
32 | TString taskname = "HMQA"; | |
33 | taskname.Append(taskss); | |
34 | TString taskname1 = "HM"; | |
35 | taskname1.Append(taskss); | |
36 | ||
37 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
38 | if (!mgr) { | |
39 | ::Error("AddTaskFluctuations", "No analysis manager to connect to."); | |
40 | return NULL; | |
41 | } | |
42 | ||
43 | if (!mgr->GetInputEventHandler()) { | |
44 | ::Error("AddTaskFluctuations", "This task requires an input event handler"); | |
45 | return NULL; | |
46 | } | |
47 | TString type = mgr->GetInputEventHandler()->GetDataType(); | |
48 | ||
49 | AliEbyEHigherMomentsTask *taskHM = new AliEbyEHigherMomentsTask("HigherMomentsTask"); | |
50 | taskHM->SetVertexDiamond(vx,vy,vz); | |
51 | taskHM->SetCentralityEstimator(centralityEstimator); | |
52 | taskHM->SetAnalysisType(analysis); | |
53 | taskHM->SetDCA(dcaxy, dcaz); | |
54 | taskHM->SetPtRange(ptl,pth); | |
55 | taskHM->SetEta(eta); | |
56 | taskHM->SetTPCNclus(nclus); | |
57 | taskHM->SetChi2PerNDF(chi2ndf); | |
58 | taskHM->SetAODtrackCutBit(AODfilterBit); | |
59 | taskHM->SetKinematicsCutsAOD(ptl,pth,eta); | |
60 | taskHM->SetUsePid(usepid); | |
61 | taskHM->SetEfficencyJob(checkEff); | |
62 | ||
63 | if(trigger) taskHM->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral); | |
64 | else taskHM->SelectCollisionCandidates(AliVEvent::kMB); | |
65 | ||
66 | if( usepid ){ | |
67 | taskHM->SetNSigmaCut(nsigma); | |
68 | taskHM->SetRapidityCut(rapidity); | |
69 | if( particle == "Proton" ){ taskHM->SetParticleSpecies(AliPID::kProton); } | |
70 | else if( particle == "Kaon") { taskHM->SetParticleSpecies(AliPID::kKaon); } | |
71 | else if( particle == "Pion" ){ taskHM->SetParticleSpecies(AliPID::kPion); } | |
72 | } | |
73 | // cout << " Check analysis type " << analysisType << endl; | |
74 | ||
75 | mgr->AddTask(taskHM); | |
76 | ||
77 | AliAnalysisDataContainer *coutQA = mgr->CreateContainer(taskname.Data(), | |
78 | TList::Class(), | |
79 | AliAnalysisManager::kOutputContainer,fileNameBase.Data()); | |
80 | AliAnalysisDataContainer *coutFA = mgr->CreateContainer(taskname1.Data(), | |
81 | TList::Class(), | |
82 | AliAnalysisManager::kOutputContainer,fileNameBase.Data()); | |
83 | mgr->ConnectInput(taskHM, 0, mgr->GetCommonInputContainer()); | |
84 | mgr->ConnectOutput(taskHM, 1, coutQA); | |
85 | mgr->ConnectOutput(taskHM, 2, coutFA); | |
86 | ||
87 | return taskHM; | |
88 | } |