1 //=========================================================================//
3 // Analysis AddTask for Particle Ratio Fluctuation Study //
4 // Author: Deepika Rathee || Satyajit Jenara //
5 // drathee@cern.ch || sjena@cern.ch //
6 // Fri Apr 11 13:31:07 CEST 2013
8 //=========================================================================//
10 void AddAliEbyEParticleRatioFluctuationTask(Double_t vz=10,Double_t ptl=0.5, Double_t pth=5, Int_t AODfilterBit = 768, Int_t pidtype = 2, Int_t requestTofPid = 1, Double_t nSigmaCut = 3., Int_t ikey = 0, TString analdata = "AOD", TString analtype = "PbPb", TString centralityEstimator = "V0M", TString ctaskname = "2011") {
12 Double_t vx = 3.; Double_t vy = 3.;
14 TString taskname = "EbyECF_";
15 taskname += ctaskname;
21 taskname += centralityEstimator;
23 taskname += Form("%d",AODfilterBit);
25 taskname += Form("PT_%.1f_%.1f", ptl, pth);
29 if(analdata == "AODMC" || analdata == "MC")
32 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
34 ::Error("AddTaskFluctuations", "No analysis manager to connect to.");
38 if (!mgr->GetInputEventHandler()) {
39 ::Error("AddTaskFluctuations", "This task requires an input event handler");
42 TString type = mgr->GetInputEventHandler()->GetDataType();
45 TString basefilename = AliAnalysisManager::GetCommonFileName();
48 AliHelperPID* help = new AliHelperPID();
49 help->SetNSigmaCut(nSigmaCut);
50 help->SetPIDType(pidtype);
51 help->SetfRequestTOFPID(requestTofPid);
52 help->SetfPtTOFPID(ptl);
56 AliEbyEParticleRatioFluctuationTask *task[8];
57 AliAnalysisDataContainer *cout[8];
58 for(Int_t i = 0; i < 8 ; i ++) {
59 Double_t eta = 0.1 + 0.1*i;
60 TString taskname1 = taskname;
61 taskname1 += Form("ETA_%.2f",eta);
62 task[i] = new AliEbyEParticleRatioFluctuationTask(taskname1.Data());
63 task[i]->SetVertexDiamond(vx,vy,vz);
64 task[i]->SetAODtrackCutBit(AODfilterBit);
65 task[i]->SetKinematicsCuts(ptl,pth,eta);
66 task[i]->SetHelperPID(help);
67 mgr->AddTask(task[i]);
69 cout[i] = mgr->CreateContainer(Form("%s",taskname1.Data()),TList::Class(),
70 AliAnalysisManager::kOutputContainer,
71 Form("%s:CFEbyE_PR",basefilename.Data()));
72 mgr->ConnectInput(task[i], 0, mgr->GetCommonInputContainer());
73 mgr->ConnectOutput(task[i], 1, cout[i]);
77 AliEbyEParticleRatioFluctuationTask *taskqa;
78 taskqa = new AliEbyEParticleRatioFluctuationTask("QACFEbyEPR");
79 // taskqa->SetPIDMethod(1);
82 taskqa->SetVertexDiamond(vx,vy,vz);
83 taskqa->SetAODtrackCutBit(AODfilterBit);
84 taskqa->SetKinematicsCuts(ptl,pth,0.8);
85 taskqa->SetHelperPID(help);
88 AliAnalysisDataContainer *coutqa
89 = mgr->CreateContainer(Form("QA_%s",taskname1.Data()),TList::Class(),
90 AliAnalysisManager::kOutputContainer,
91 Form("%s:CFEbyE_PR",basefilename.Data()));
92 mgr->ConnectInput(taskqa, 0, mgr->GetCommonInputContainer());
93 mgr->ConnectOutput(taskqa, 1, coutqa);
95 else if(ikey > 0 && ikey < 9) {
96 Double_t eta = 0.1*ikey;
97 TString taskname1 = taskname;
98 taskname1 += Form("ETA_%.2f",eta);
99 AliEbyEParticleRatioFluctuationTask *task1
100 = new AliEbyEParticleRatioFluctuationTask(taskname1.Data());
101 task1->SetVertexDiamond(vx,vy,vz);
102 task1->SetAODtrackCutBit(AODfilterBit);
103 task1->SetKinematicsCuts(ptl,pth,eta);
104 task1->SetHelperPID(help);
107 AliAnalysisDataContainer *cout1
108 = mgr->CreateContainer(Form("%s",taskname1.Data()),TList::Class(),
109 AliAnalysisManager::kOutputContainer,
110 Form("%s:CFEbyE_PR",basefilename.Data()));
111 mgr->ConnectInput(task1, 0, mgr->GetCommonInputContainer());
112 mgr->ConnectOutput(task1, 1, cout1);
115 AliEbyEParticleRatioFluctuationTask *taskqa1;
116 taskqa1 = new AliEbyEParticleRatioFluctuationTask("QACFEbyEPR");
118 taskqa1->SetVertexDiamond(vx,vy,vz);
119 taskqa1->SetAODtrackCutBit(AODfilterBit);
120 taskqa1->SetKinematicsCuts(ptl,pth,eta);
121 taskqa1->SetHelperPID(help);
122 mgr->AddTask(taskqa1);
124 AliAnalysisDataContainer *coutqa1
125 = mgr->CreateContainer(Form("QA_%s",taskname1.Data()),TList::Class(),
126 AliAnalysisManager::kOutputContainer,
127 Form("%s:CFEbyE_PR",basefilename.Data()));
128 mgr->ConnectInput(taskqa1, 0, mgr->GetCommonInputContainer());
129 mgr->ConnectOutput(taskqa1, 1, coutqa1);