1 //=========================================================================//
3 // Analysis AddTask for Particle Ratio Fluctuation Study //
4 // Author: Deepika Rathee || Satyajit Jenara //
5 // drathee@cern.ch || sjena@cern.ch //
6 // Thu Dec 19 09:09:38 CET 2013
8 //=========================================================================//
10 void AddAliEbyENetChargeFluctuationTask(const Char_t *taskname="TOFTPC",
11 const Char_t *centralityEstimator = "V0M",
13 Int_t aodFilterBit = 768,
14 Int_t sysType = 0, // 0-pp,1-pA,2-AA, 3,4,5 mc
15 Int_t cuttype = 9, // esd cut type
18 Int_t requestTofPid = 1,
19 Double_t nSigmaCut = 3.,
20 Double_t lptfortof = 0.5,
35 Double_t vx = 3.; Double_t vy = 3.;
38 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
40 ::Error("AddTaskFluctuations", "No analysis manager to connect to.");
44 if (!mgr->GetInputEventHandler()) {
45 ::Error("AddTaskFluctuations", "This task requires an input event handler");
49 Bool_t isMC = (mgr->GetMCtruthEventHandler() != NULL);
51 Info("AddTaskNetParticle", "This task has MC.");
53 AliEbyENetChargeFluctuationTask *task = new AliEbyENetChargeFluctuationTask(taskname);
55 Error("EbyEPidRatio", "Task could not be created.");
60 Printf("============================== I am here very great ================================");
62 if (isMC) task->SetIsMC();
64 Int_t sysii = sysType;
65 if (sysType > 2) {task->SetIsMC(); sysii = sysType - 3;}
70 task->SetTrackFilterBit(aodFilterBit);
72 task->SetSystemType(sysii);
73 task->SetCentralityEstimator(centralityEstimator);
74 task->SetVertexDiamond(vx,vy,vz);
75 task->SetKinematicsCuts(ptl,pth,gEta,gRap);
76 task->SetNSubSamples(nSample);
77 task->SetDca(dcaxy,dcaz);
80 gROOT->LoadMacro("$ALICE_ROOT/PWGCF/EBYE/PIDFluctuation/macros/configureNetChargeTrackCut.C");
81 // gROOT->LoadMacro("./configureNetChargeTrackCut.C");
82 AliESDtrackCuts *cuts = configureNetChargeTrackCut(taskname,cuttype,10001006, gEta, 5.,5.);
83 task->SetAnalysisCutObject(cuts);
86 AliHelperPID* help = new AliHelperPID();
87 help->SetNSigmaCut(nSigmaCut);
88 help->SetPIDType(pidtype); // kNSigmaTPC,kNSigmaTOF, kNSigmaTPCTOF
90 help->SetfRequestTOFPID(requestTofPid);
91 if (ptl != 0 ) help->SetfPtTOFPID(lptfortof);
94 if (sysType > 2) help->SetisMC(1); else help->SetisMC(0);
97 AliPIDCombined *pidc=new AliPIDCombined();
98 pidc->SetDefaultTPCPriors();
99 help->SetPIDCombined(pidc);
101 task->SetHelperPID(help);
102 task->SetAnal(analType);
106 TString commonname = Form("%s:%s", AliAnalysisManager::GetCommonFileName(),taskname);
108 AliAnalysisDataContainer *cout1
109 = mgr->CreateContainer(Form("%s_phy",taskname), TList::Class(),
110 AliAnalysisManager::kOutputContainer, commonname);
111 AliAnalysisDataContainer *cout2
112 = mgr->CreateContainer(Form("%s_qa",taskname), TList::Class(),
113 AliAnalysisManager::kOutputContainer, commonname);
114 AliAnalysisDataContainer *cout3
115 = mgr->CreateContainer(Form("%s_dca",taskname), TList::Class(),
116 AliAnalysisManager::kOutputContainer, commonname);
117 AliAnalysisDataContainer *cout4
118 = mgr->CreateContainer(Form("%s_eff",taskname), TList::Class(),
119 AliAnalysisManager::kOutputContainer, commonname);
121 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
122 mgr->ConnectOutput(task, 1, cout1);
123 mgr->ConnectOutput(task, 2, cout2);
124 mgr->ConnectOutput(task, 3, cout3);
125 mgr->ConnectOutput(task, 4, cout4);