X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWGHF%2FvertexingHF%2Fmacros%2FAddTaskCFVertexingHF3ProngDs.C;h=8dc083163fa3fc2a04b244d10c19849676dbca4e;hb=a39671d19ab8e136a8d0652622fb65c9875de369;hp=4f79d0286459d6b5842bc4d5517970d52f383227;hpb=d0b45b11534f01128e114778e6f5e90b74aab6c1;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGHF/vertexingHF/macros/AddTaskCFVertexingHF3ProngDs.C b/PWGHF/vertexingHF/macros/AddTaskCFVertexingHF3ProngDs.C index 4f79d028645..8dc083163fa 100644 --- a/PWGHF/vertexingHF/macros/AddTaskCFVertexingHF3ProngDs.C +++ b/PWGHF/vertexingHF/macros/AddTaskCFVertexingHF3ProngDs.C @@ -21,8 +21,10 @@ const Int_t minITSClusters = 5; const Float_t centmin_0_10 = 0.; const Float_t centmax_0_10 = 10.; -const Float_t centmin_10_100 = 10.; -const Float_t centmax_10_100 = 100.; +const Float_t centmin_10_60 = 10.; +const Float_t centmax_10_60 = 60.; +const Float_t centmin_60_100 = 60.; +const Float_t centmax_60_100 = 100.; const Float_t centmax = 100.; const Float_t fakemin = -0.5; const Float_t fakemax = 2.5.; @@ -40,7 +42,7 @@ const Float_t multmax_50_102 = 102; //---------------------------------------------------- -AliCFTaskVertexingHF *AddTaskCFVertexingHF3ProngDs(const char* cutFile = "./DstoKKpiCuts.root", Int_t configuration = AliCFTaskVertexingHF::kSnail, Bool_t isKeepDfromB=kFALSE, Bool_t isKeepDfromBOnly=kFALSE, Int_t pdgCode = 431, Char_t isSign = 2) +AliCFTaskVertexingHF *AddTaskCFVertexingHF3ProngDs(TString suffixName="", Int_t decayOption=AliCFVertexingHF3Prong::kCountResonant, const char* cutFile = "./DstoKKpiCuts.root", Int_t configuration = AliCFTaskVertexingHF::kSnail, Bool_t isKeepDfromB=kFALSE, Bool_t isKeepDfromBOnly=kFALSE, Int_t pdgCode = 431, Char_t isSign = 2) //AliCFContainer *AddTaskCFVertexingHF3ProngDs(const char* cutFile = "./DstoKKpiCuts.root", Int_t configuration = AliCFTaskVertexingHF::kSnail, Bool_t isKeepDfromB=kFALSE, Bool_t isKeepDfromBOnly=kFALSE, Int_t pdgCode = 431, Char_t isSign = 2) { printf("Addig CF task using cuts from file %s\n",cutFile); @@ -140,7 +142,7 @@ AliCFTaskVertexingHF *AddTaskCFVertexingHF3ProngDs(const char* cutFile = "./Dsto printf("pT: nbin (from cuts file) = %d\n",nbinpt); const Int_t nbiny = 24 ; //bins in y const Int_t nbinphi = 18 ; //bins in phi - const Int_t nbincT = 25 ; //bins in cT + const Int_t nbincT = 2 ; //bins in cT const Int_t nbinpointing = 350 ; //bins in cosPointingAngle const Int_t nbinpT1_0_4 = 8 ; //bins in pt1 from 0 to 4 GeV const Int_t nbinpT1_4_8 = 4 ; //bins in pt1 from 4 to 8 GeV @@ -152,9 +154,10 @@ AliCFTaskVertexingHF *AddTaskCFVertexingHF3ProngDs(const char* cutFile = "./Dsto const Int_t nbinpT3_4_8 = 4 ; //bins in pt3 from 4 to 8 GeV const Int_t nbinpT3_8_10 = 1 ; //bins in pt3 from 8 to 10 GeV const Int_t nbinzvtx = 30 ; //bins in z vertex - const Int_t nbincent = 11; //bins in centrality - const Int_t nbincent_0_10 = 2; //bins in centrality between 0 and 10 - const Int_t nbincent_10_100 = 9; //bins in centrality between 10 and 100 + const Int_t nbincent = 18; //bins in centrality + const Int_t nbincent_0_10 = 4; //bins in centrality between 0 and 10 + const Int_t nbincent_10_60 = 10; //bins in centrality between 10 and 60 + const Int_t nbincent_60_100 = 4; //bins in centrality between 60 and 100 const Int_t nbinfake = 3; //bins in fake const Int_t nbinpointingXY = 50; //bins in cosPointingAngleXY const Int_t nbinnormDecayLXY = 20; //bins in NormDecayLengthXY @@ -290,12 +293,16 @@ AliCFTaskVertexingHF *AddTaskCFVertexingHF3ProngDs(const char* cutFile = "./Dsto binLimzvtx[i]=(Double_t)zvtxmin + (zvtxmax-zvtxmin) /nbinzvtx*(Double_t)i ; } - // centrality + // centrality for(Int_t i=0; i<=nbincent_0_10; i++) binLimcent[i]=(Double_t)centmin_0_10 + (centmax_0_10-centmin_0_10)/nbincent_0_10*(Double_t)i ; - if (binLimcent[nbincent_0_10] != centmin_10_100) { - Error("AliCFHeavyFlavourTaskMultiVarMultiStep","Calculated bin lim for cent - 1st range - differs from expected!\n"); + if (binLimcent[nbincent_0_10] != centmin_10_60) { + Error("AliCFHeavyFlavourTaskMultiVarMultiStep","Calculated bin lim for cent - 1st range - differs from expected!\n"); } - for(Int_t i=0; i<=nbincent_10_100; i++) binLimcent[i+nbincent_0_10]=(Double_t)centmin_10_100 + (centmax_10_100-centmin_10_100)/nbincent_10_100*(Double_t)i ; + for(Int_t i=0; i<=nbincent_10_60; i++) binLimcent[i+nbincent_0_10]=(Double_t)centmin_10_60 + (centmax_10_60-centmin_10_60)/nbincent_10_60*(Double_t)i ; + if (binLimcent[nbincent_0_10+nbincent_10_60] != centmin_60_100) { + Error("AliCFHeavyFlavourTaskMultiVarMultiStep","Calculated bin lim for cent - 2st range - differs from expected!\n"); + } + for(Int_t i=0; i<=nbincent_60_100; i++) binLimcent[i+nbincent_0_10+nbincent_10_60]=(Double_t)centmin_60_100 + (centmax_60_100-centmin_60_100)/nbincent_60_100*(Double_t)i ; // fake for(Int_t i=0; i<=nbinfake; i++) { @@ -318,18 +325,27 @@ AliCFTaskVertexingHF *AddTaskCFVertexingHF3ProngDs(const char* cutFile = "./Dsto Error("AliCFHeavyFlavourTaskMultiVarMultiStep","Calculated bin lim for mult - 2nd range - differs from expected!\n"); } for(Int_t i=0; i<=nbinmult_50_102; i++) binLimmult[i+nbinmult_0_20+nbinmult_20_50]=(Double_t)multmin_50_102 + (multmax_50_102-multmin_50_102)/nbinmult_50_102*(Double_t)i ; - + + TString suffixDecayType=""; + if(decayOption==AliCFVertexingHF3Prong::kCountAllDsKKpi) suffixDecayType="_All"; + else if(decayOption==AliCFVertexingHF3Prong::kCountPhipi) suffixDecayType="_Phi"; + else if(decayOption==AliCFVertexingHF3Prong::kCountK0stK) suffixDecayType="_K0star"; + else if(decayOption==AliCFVertexingHF3Prong::kCountResonant) suffixDecayType="_Reson"; + else if(decayOption==AliCFVertexingHF3Prong::kCountNonResonant) suffixDecayType="_NonReson"; + //one "container" for MC TString nameContainer=""; if(!isKeepDfromB) { - nameContainer="CFHFccontainer0_3Prong_CommonFramework"; + nameContainer="CFHFccontainer0_3ProngDstoKKpi_CommonFramework"; } else if(isKeepDfromBOnly){ - nameContainer="CFHFccontainer0DfromB_3Prong_CommonFramework"; + nameContainer="CFHFccontainer0DfromB_3ProngDstoKKpi_CommonFramework"; } else { - nameContainer="CFHFccontainer0allD_3Prong_CommonFramework"; + nameContainer="CFHFccontainer0allD_3ProngDstoKKpi_CommonFramework"; } + nameContainer+=suffixDecayType.Data(); + nameContainer+=suffixName.Data(); AliCFContainer* container; if (configuration == AliCFTaskVertexingHF::kSnail){ @@ -517,6 +533,11 @@ AliCFTaskVertexingHF *AddTaskCFVertexingHF3ProngDs(const char* cutFile = "./Dsto AliCFTaskVertexingHF *task = new AliCFTaskVertexingHF("AliCFTaskVertexingHF",cutsDstoKKpi); task->SetFillFromGenerated(kFALSE); task->SetDecayChannel(33); + if(decayOption==AliCFVertexingHF3Prong::kCountAllDsKKpi) task->SetCountAllDs(); + else if(decayOption==AliCFVertexingHF3Prong::kCountPhipi) task->SetCountDsViaPhi(); + else if(decayOption==AliCFVertexingHF3Prong::kCountK0stK) task->SetCountDsViaK0star(); + else if(decayOption==AliCFVertexingHF3Prong::kCountResonant) task->SetCountResonantDs(); + else if(decayOption==AliCFVertexingHF3Prong::kCountNonResonant) task->SetCountNonResonantDs(); task->SetUseWeight(kFALSE); task->SetCFManager(man); //here is set the CF manager task->SetSign(isSign); @@ -581,14 +602,16 @@ AliCFTaskVertexingHF *AddTaskCFVertexingHF3ProngDs(const char* cutFile = "./Dsto TString nameCorr=""; if(!isKeepDfromB) { - nameCorr="CFHFcorr0_3Prong_CommonFramework"; + nameCorr="CFHFcorr0_3ProngDstoKKpi_CommonFramework"; } else if(isKeepDfromBOnly){ - nameCorr= "CFHFcorr0KeepDfromBOnly_3Prong_CommonFramework"; + nameCorr= "CFHFcorr0KeepDfromBOnly_3ProngDstoKKpi_CommonFramework"; } else { - nameCorr="CFHFcorr0allD_3Prong_CommonFramework"; + nameCorr="CFHFcorr0allD_3ProngDstoKKpi_CommonFramework"; } + nameCorr+=suffixDecayType.Data(); + nameCorr+=suffixName.Data(); THnSparseD* correlation = new THnSparseD(nameCorr,"THnSparse with correlations",4,thnDim); Double_t** binEdges = new Double_t[2]; @@ -619,23 +642,41 @@ AliCFTaskVertexingHF *AddTaskCFVertexingHF3ProngDs(const char* cutFile = "./Dsto // ----- output data ----- TString outputfile = AliAnalysisManager::GetCommonFileName(); - TString output1name="", output2name="", output3name="", output4name="";; + TString output1name="", output2name="", output3name="", output4name="", output5name=""; output2name=nameContainer; output3name=nameCorr; + output5name= "coutProfDs"; if(!isKeepDfromB) { outputfile += ":PWG3_D2H_CFtaskDstoKKpi_CommonFramework"; - output1name="CFHFchist0_3Prong_CommonFramework"; + output1name="CFHFchist0_3ProngDstoKKpi_CommonFramework"; + output3name+="_cOnly"; + output4name= "CutsDdirect_3ProngDs_CommonFramework"; + output5name+="_cOnly"; } else if(isKeepDfromBOnly){ outputfile += ":PWG3_D2H_CFtaskDstoKKpiKeepDfromBOnly_CommonFramework"; - output1name="CFHFchist0DfromB_3Prong_CommonFramework"; + output1name="CFHFchist0DfromB_3ProngDstoKKpi_CommonFramework"; + output3name+="_bOnly"; + output4name= "CutsDfromB_3ProngDs_CommonFramework"; + output5name+="_bOnly"; } else{ outputfile += ":PWG3_D2H_CFtaskDstoKKpiKeepDfromB_CommonFramework"; - output1name="CFHFchist0allD_3Prong_CommonFramework"; + output1name="CFHFchist0allD_3ProngDstoKKpi_CommonFramework"; + output3name+="_all"; + output4name= "CutsallD_3ProngDs_CommonFramework"; + output5name+="_all"; } - output4name= "Cuts_3Prong_CommonFramework"; + outputfile += suffixDecayType.Data(); + output1name+= suffixDecayType.Data(); + output4name+= suffixDecayType.Data(); + output5name+= suffixDecayType.Data(); + + outputfile += suffixName.Data(); + output1name+= suffixName.Data(); + output4name+= suffixName.Data(); + output5name+= suffixName.Data(); //now comes user's output objects : // output TH1I for event counting @@ -645,6 +686,8 @@ AliCFTaskVertexingHF *AddTaskCFVertexingHF3ProngDs(const char* cutFile = "./Dsto // Unfolding - correlation matrix AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(output3name, THnSparseD::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data()); AliAnalysisDataContainer *coutput4 = mgr->CreateContainer(output4name, AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data()); + // estimators list + AliAnalysisDataContainer *coutput5 = mgr->CreateContainer(output5name, TList::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data()); mgr->AddTask(task); @@ -653,7 +696,7 @@ AliCFTaskVertexingHF *AddTaskCFVertexingHF3ProngDs(const char* cutFile = "./Dsto mgr->ConnectOutput(task,2,coutput2); mgr->ConnectOutput(task,3,coutput3); mgr->ConnectOutput(task,4,coutput4); + mgr->ConnectOutput(task,5,coutput5); return task; } -