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 AddAliEbyENetChargeFluctuationBinTask(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.");
54 AliHelperPID* help = new AliHelperPID();
55 help->SetNSigmaCut(nSigmaCut);
56 help->SetPIDType(pidtype); // kNSigmaTPC,kNSigmaTOF, kNSigmaTPCTOF
58 help->SetfRequestTOFPID(requestTofPid);
59 if (ptl != 0 ) help->SetfPtTOFPID(lptfortof);
62 if (sysType > 2) help->SetisMC(1); else help->SetisMC(0);
65 AliPIDCombined *pidc=new AliPIDCombined();
66 pidc->SetDefaultTPCPriors();
67 help->SetPIDCombined(pidc);
72 AliEbyENetChargeFluctuationTask *task[8];
73 AliAnalysisDataContainer *cout1[8];
74 AliAnalysisDataContainer *cout2[8];
75 AliAnalysisDataContainer *cout3[8];
76 AliAnalysisDataContainer *cout4[8];
78 gROOT->LoadMacro("$ALICE_ROOT/PWGCF/EBYE/PIDFluctuation/macros/configureNetChargeTrackCut.C");
79 AliESDtrackCuts *cuts[8];
81 for (Int_t iEta = 0; iEta < 8; iEta++ ) {
83 TString taskname_ctr = Form("E%d",iEta);
85 Double_t eEta = 0.1 + iEta * 0.1;
87 task[iEta] = new AliEbyENetChargeFluctuationTask(Form("%s_%s",taskname,taskname_ctr.Data()));
89 Error("EbyEPidRatio", "Task could not be created.");
93 Printf("=========== Run For the Eta Window %s ==========",taskname_ctr.Data());
95 if (isMC) task[iEta]->SetIsMC();
97 Int_t sysii = sysType;
98 if (sysType > 2) {task[iEta]->SetIsMC(); sysii = sysType - 3;}
101 task[iEta]->SetIsAOD();
102 task[iEta]->SetTrackFilterBit(aodFilterBit);
104 task[iEta]->SetSystemType(sysii);
105 task[iEta]->SetCentralityEstimator(centralityEstimator);
106 task[iEta]->SetVertexDiamond(vx,vy,vz);
107 task[iEta]->SetKinematicsCuts(ptl,pth,eEta,gRap);
108 task[iEta]->SetNSubSamples(nSample);
109 task[iEta]->SetDca(dcaxy,dcaz);
112 cuts[iEta] = configureNetChargeTrackCut(taskname_ctr.Data(),cuttype,10001006, eEta, 5.,5.);
113 task[iEta]->SetAnalysisCutObject(cuts[iEta]);
114 Printf("=========== Cut Applied %s ==========",taskname_ctr.Data());
118 task[iEta]->SetHelperPID(help);
119 task[iEta]->SetAnal(analType);
120 mgr->AddTask(task[iEta]);
123 TString commonname = Form("%s:%s_E%d", AliAnalysisManager::GetCommonFileName(),taskname, iEta);
125 cout1[iEta] = mgr->CreateContainer(Form("%s_phy",taskname_ctr.Data()), TList::Class(),
126 AliAnalysisManager::kOutputContainer, commonname);
127 cout2[iEta] = mgr->CreateContainer(Form("%s_qa",taskname_ctr.Data()), TList::Class(),
128 AliAnalysisManager::kOutputContainer, commonname);
129 cout3[iEta] = mgr->CreateContainer(Form("%s_dca",taskname_ctr.Data()), TList::Class(),
130 AliAnalysisManager::kOutputContainer, commonname);
131 cout4[iEta] = mgr->CreateContainer(Form("%s_eff",taskname_ctr.Data()), TList::Class(),
132 AliAnalysisManager::kOutputContainer, commonname);
134 mgr->ConnectInput(task[iEta], 0, mgr->GetCommonInputContainer());
135 mgr->ConnectOutput(task[iEta], 1, cout1[iEta]);
136 mgr->ConnectOutput(task[iEta], 2, cout2[iEta]);
137 mgr->ConnectOutput(task[iEta], 3, cout3[iEta]);
138 mgr->ConnectOutput(task[iEta], 4, cout4[iEta]);