5 TString finDirname=
"Loose",
7 TString finAnObjname=
"AnalysisCuts",
8 Bool_t CalculateSphericity=kFALSE,
9 Int_t SoSparseChecks=0,
15 Double_t phiStepSizeDeg=0.1,
18 TString estimatorFilename=
"",
19 Double_t refMult=9.26,
20 Bool_t subtractDau=kFALSE,
24 Bool_t isPPbData=kFALSE)
32 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
34 ::Error(
"AddTaskDvsEventShapes",
"No analysis manager to connect to.");
37 Bool_t stdcuts=kFALSE;
39 if( filename.EqualTo(
"") ) {
42 filecuts=TFile::Open(filename.Data());
43 if(!filecuts ||(filecuts&& !filecuts->IsOpen())){
44 AliFatal(
"Input file not found : check your cut object");
61 }
else if(pdgMeson==421){
69 }
else if(pdgMeson==413){
81 dMultTask->SetDebugLevel(0);
94 TH1F *hNchPrimaries = NULL;
95 TH1F *hMeasNchPrimaries = NULL;
98 hNchPrimaries = (TH1F*)filecuts->Get(
"hNtrUnCorrEvWithDWeight");
100 else hNchPrimaries = (TH1F*)filecuts->Get(
"hGenPrimaryParticlesInelGt0");
105 AliFatal(
"Histogram for Nch multiplicity weights not found");
108 hMeasNchPrimaries = (TH1F*)filecuts->Get(
"hMeasNtrUnCorrEvWithD");
109 if(hMeasNchPrimaries) {
113 else if(NchWeight==2){
114 hNchPrimaries = (TH1F*)filecuts->Get(
"hNtrUnCorrEvWithDWeight");
115 hMeasNchPrimaries = (TH1F*)filecuts->Get(
"hMeasNtrUnCorrEvWithD");
116 if(hNchPrimaries && hMeasNchPrimaries) {
121 AliFatal(
"Histogram for Ntrk multiplicity weights not found");
131 }
else if(pdgMeson==411)dMultTask->
SetMassLimits(pdgMeson,0.2);
133 if(estimatorFilename.EqualTo(
"") ) {
134 printf(
"Estimator file not provided, multiplcity corrected histograms will not be filled\n");
137 TFile* fileEstimator=TFile::Open(estimatorFilename.Data());
139 AliFatal(
"File with multiplicity estimator not found\n");
145 const Char_t* profilebasename=
"SPDmult10";
148 cout<<endl<<endl<<
" profilebasename="<<profilebasename<<endl<<endl;
151 const Char_t* periodNames[2] = {
"LHC13b",
"LHC13c"};
152 TProfile* multEstimatorAvg[2];
153 for(Int_t ip=0; ip<2; ip++) {
154 cout<<
" Trying to get "<<Form(
"%s_%s",profilebasename,periodNames[ip])<<endl;
155 multEstimatorAvg[ip] = (TProfile*)(fileEstimator->Get(Form(
"%s_%s",profilebasename,periodNames[ip]))->Clone(Form(
"%s_%s_clone",profilebasename,periodNames[ip])));
156 if (!multEstimatorAvg[ip]) {
157 AliFatal(Form(
"Multiplicity estimator for %s not found! Please check your estimator file",periodNames[ip]));
165 const Char_t* periodNames[4] = {
"LHC10b",
"LHC10c",
"LHC10d",
"LHC10e"};
166 TProfile* multEstimatorAvg[4];
167 for(Int_t ip=0; ip<4; ip++) {
168 multEstimatorAvg[ip] = (TProfile*)(fileEstimator->Get(Form(
"%s_%s",profilebasename,periodNames[ip]))->Clone(Form(
"%s_%s_clone",profilebasename,periodNames[ip])));
169 if (!multEstimatorAvg[ip]) {
170 AliFatal(Form(
"Multiplicity estimator for %s not found! Please check your estimator file",periodNames[ip]));
180 mgr->AddTask(dMultTask);
184 TString inname =
"cinput";
185 TString outname =
"coutput";
186 TString cutsname =
"coutputCuts";
187 TString normname =
"coutputNorm";
188 TString profname =
"coutputProf";
190 inname += Name.Data();
191 outname += Name.Data();
192 cutsname += Name.Data();
193 normname += Name.Data();
194 profname += Name.Data();
195 inname += finDirname.Data();
196 outname += finDirname.Data();
197 cutsname += finDirname.Data();
198 normname += finDirname.Data();
199 profname += finDirname.Data();
201 AliAnalysisDataContainer *cinput = mgr->CreateContainer(inname,TChain::Class(),AliAnalysisManager::kInputContainer);
203 TString outputfile = AliAnalysisManager::GetCommonFileName();
204 if(CalculateSphericity){ outputfile +=
":PWG3_D2H_DSpheri_";}
205 else{ outputfile +=
":PWG3_D2H_DSphero_";}
206 outputfile += Name.Data();
207 outputfile += finDirname.Data();
209 AliAnalysisDataContainer *coutputCuts = mgr->CreateContainer(cutsname,TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
210 AliAnalysisDataContainer *coutput = mgr->CreateContainer(outname,TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
211 AliAnalysisDataContainer *coutputNorm = mgr->CreateContainer(normname,TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
212 AliAnalysisDataContainer *coutputProf = mgr->CreateContainer(profname,TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
214 mgr->ConnectInput(dMultTask,0,mgr->GetCommonInputContainer());
216 mgr->ConnectOutput(dMultTask,1,coutput);
218 mgr->ConnectOutput(dMultTask,2,coutputCuts);
220 mgr->ConnectOutput(dMultTask,3,coutputNorm);
222 mgr->ConnectOutput(dMultTask,4,coutputProf);
void SetMCPrimariesEstimator(Int_t value)
void SetCalculationsForSphericity(Bool_t CalSpheri)
void SetMeasuredNchHisto(TH1F *h)
void SetReferenceMultiplcity(Double_t rmu)
void SetMCOption(Int_t option=0)
AliAnalysisTaskSEDvsEventShapes * AddTaskDvsEventShapes(Int_t system=0, Bool_t readMC=kFALSE, Int_t MCOption=0, Int_t pdgMeson=411, TString finDirname="Loose", TString filename="", TString finAnObjname="AnalysisCuts", Bool_t CalculateSphericity=kFALSE, Int_t SoSparseChecks=0, Double_t ptMin=0.15, Double_t ptMax=10., Double_t etaMin=-0.8, Double_t etaMax=0.8, Int_t minMult=3, Double_t phiStepSizeDeg=0.1, Int_t filtbit1=256, Int_t filtbit2=512, TString estimatorFilename="", Double_t refMult=9.26, Bool_t subtractDau=kFALSE, Int_t NchWeight=0, Int_t recoEstimator=AliAnalysisTaskSEDvsEventShapes::kNtrk10, Int_t MCEstimator=AliAnalysisTaskSEDvsEventShapes::kEta10, Bool_t isPPbData=kFALSE)
void SetEventShapeParameters(Double_t ptMin, Double_t ptMax, Double_t etaMin, Double_t etaMax, Int_t minMult, Double_t phiStepSizeDeg, Int_t filtbit1, Int_t filtbit2)
Class for cuts on AOD reconstructed D+->Kpipi.
void SetMultiplicityEstimator(Int_t value)
void SetSubtractTrackletsFromDaughters(Bool_t opt)
void SetMultiplVsZProfileLHC10b(TProfile *hprof)
void SetUseBit(Bool_t use=kTRUE)
void SetMassLimits(Double_t lowlimit, Double_t uplimit)
void SetHistoNchWeight(TH1F *h)
void SetFillSoSparseForMultUncorrNoPid(Int_t flag)
virtual void SetStandardCutsPbPb2011()
void SetMultiplVsZProfileLHC10c(TProfile *hprof)
void UseMCNchWeight(Int_t flag)
void SetMultiplVsZProfileLHC13c(TProfile *hprof)
virtual void SetStandardCutsPP2010()
void SetMultiplVsZProfileLHC13b(TProfile *hprof)
void SetIsPPbData(Bool_t flag=kTRUE)
void SetMultiplVsZProfileLHC10e(TProfile *hprof)
void SetReadMC(Bool_t readMC=kTRUE)
void SetNMassBins(Int_t nbins)
void SetMultiplVsZProfileLHC10d(TProfile *hprof)
void SetDoImpactParameterHistos(Bool_t doImp=kTRUE)