7 TString finAnObjname=
"AnalysisCuts",
24 ::Error(
"AddTaskDvsMultiplicity",
"No analysis manager to connect to.");
32 filecuts=TFile::Open(
filename.Data());
33 if(!filecuts ||(filecuts&& !filecuts->IsOpen())){
34 AliFatal(
"Input file not found : check your cut object");
51 }
else if(pdgMeson==421){
59 }
else if(pdgMeson==413){
71 dMultTask->SetDebugLevel(0);
81 TH1F *hNchPrimaries = NULL;
82 TH1F *hMeasNchPrimaries = NULL;
85 hNchPrimaries = (TH1F*)filecuts->Get(
"hNtrUnCorrEvWithDWeight");
87 else hNchPrimaries = (TH1F*)filecuts->Get(
"hGenPrimaryParticlesInelGt0");
92 AliFatal(
"Histogram for Nch multiplicity weights not found");
95 hMeasNchPrimaries = (TH1F*)filecuts->Get(
"hMeasNtrUnCorrEvWithD");
96 if(hMeasNchPrimaries) {
100 else if(NchWeight==2){
101 hNchPrimaries = (TH1F*)filecuts->Get(
"hNtrUnCorrEvWithDWeight");
102 hMeasNchPrimaries = (TH1F*)filecuts->Get(
"hMeasNtrUnCorrEvWithD");
103 if(hNchPrimaries && hMeasNchPrimaries) {
108 AliFatal(
"Histogram for Ntrk multiplicity weights not found");
118 }
else if(pdgMeson==411)dMultTask->
SetMassLimits(pdgMeson,0.2);
120 if(estimatorFilename.EqualTo(
"") ) {
121 printf(
"Estimator file not provided, multiplcity corrected histograms will not be filled\n");
124 TFile* fileEstimator=TFile::Open(estimatorFilename.Data());
126 AliFatal(
"File with multiplicity estimator not found\n");
132 const Char_t* profilebasename=
"SPDmult10";
135 cout<<endl<<endl<<
" profilebasename="<<profilebasename<<endl<<endl;
138 const Char_t* periodNames[2] = {
"LHC13b",
"LHC13c"};
139 TProfile* multEstimatorAvg[2];
140 for(
Int_t ip=0; ip<2; ip++) {
141 cout<<
" Trying to get "<<Form(
"%s_%s",profilebasename,periodNames[ip])<<endl;
142 multEstimatorAvg[ip] = (TProfile*)(fileEstimator->Get(Form(
"%s_%s",profilebasename,periodNames[ip]))->Clone(Form(
"%s_%s_clone",profilebasename,periodNames[ip])));
143 if (!multEstimatorAvg[ip]) {
144 AliFatal(Form(
"Multiplicity estimator for %s not found! Please check your estimator file",periodNames[ip]));
152 const Char_t* periodNames[4] = {
"LHC10b",
"LHC10c",
"LHC10d",
"LHC10e"};
153 TProfile* multEstimatorAvg[4];
154 for(
Int_t ip=0; ip<4; ip++) {
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]));
167 mgr->AddTask(dMultTask);
173 TString cutsname =
"coutputCuts";
174 TString normname =
"coutputNorm";
175 TString profname =
"coutputProf";
177 inname += Name.Data();
178 outname += Name.Data();
179 cutsname += Name.Data();
180 normname += Name.Data();
181 profname += Name.Data();
182 inname += finDirname.Data();
183 outname += finDirname.Data();
184 cutsname += finDirname.Data();
185 normname += finDirname.Data();
186 profname += finDirname.Data();
188 AliAnalysisDataContainer *cinput = mgr->CreateContainer(inname,TChain::Class(),AliAnalysisManager::kInputContainer);
190 TString outputfile = AliAnalysisManager::GetCommonFileName();
191 outputfile +=
":PWG3_D2H_DMult_";
192 outputfile += Name.Data();
193 outputfile += finDirname.Data();
195 AliAnalysisDataContainer *coutputCuts = mgr->CreateContainer(cutsname,TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
196 AliAnalysisDataContainer *coutput = mgr->CreateContainer(outname,TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
197 AliAnalysisDataContainer *coutputNorm = mgr->CreateContainer(normname,TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
198 AliAnalysisDataContainer *coutputProf = mgr->CreateContainer(profname,TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
200 mgr->ConnectInput(dMultTask,0,mgr->GetCommonInputContainer());
202 mgr->ConnectOutput(dMultTask,1,coutput);
204 mgr->ConnectOutput(dMultTask,2,coutputCuts);
206 mgr->ConnectOutput(dMultTask,3,coutputNorm);
208 mgr->ConnectOutput(dMultTask,4,coutputProf);
void SetUseBit(Bool_t use=kTRUE)
void SetMultiplicityEstimator(Int_t value)
void SetReadMC(Bool_t readMC=kTRUE)
void SetMultiplVsZProfileLHC10e(TProfile *hprof)
void SetMultiplVsZProfileLHC13b(TProfile *hprof)
void SetNMassBins(Int_t nbins)
void SetMassLimits(Double_t lowlimit, Double_t uplimit)
Class for cuts on AOD reconstructed D+->Kpipi.
void SetSubtractTrackletsFromDaughters(Bool_t opt)
void SetIsPPbData(Bool_t flag=kTRUE)
void SetMultiplVsZProfileLHC10d(TProfile *hprof)
void SetMultiplVsZProfileLHC10b(TProfile *hprof)
void SetMeasuredNchHisto(TH1F *h)
void SetMCPrimariesEstimator(Int_t value)
virtual void SetStandardCutsPbPb2011()
void UseMCNchWeight(Int_t flag)
Nch Ntrk weights on MC.
void SetReferenceMultiplcity(Double_t rmu)
virtual void SetStandardCutsPP2010()
void SetHistoNchWeight(TH1F *h)
void SetMultiplVsZProfileLHC13c(TProfile *hprof)
AliAnalysisTaskSEDvsMultiplicity * AddTaskDvsMultiplicity(Int_t system=0, Bool_t readMC=kFALSE, Int_t MCOption=0, Int_t pdgMeson=411, TString finDirname="Loose", TString filename="", TString finAnObjname="AnalysisCuts", TString estimatorFilename="", Double_t refMult=9.26, Bool_t subtractDau=kFALSE, Int_t NchWeight=0, Int_t recoEstimator=AliAnalysisTaskSEDvsMultiplicity::kNtrk10, Int_t MCEstimator=AliAnalysisTaskSEDvsMultiplicity::kEta10, Bool_t isPPbData=kFALSE)
void SetMultiplVsZProfileLHC10c(TProfile *hprof)
void SetMCOption(Int_t option=0)
void SetDoImpactParameterHistos(Bool_t doImp=kTRUE)