]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/vertexingHF/macros/AddTaskCFVertexingHF3ProngDs.C
PWGHFbase converted to native cmake
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / macros / AddTaskCFVertexingHF3ProngDs.C
index 4f79d0286459d6b5842bc4d5517970d52f383227..8dc083163fa3fc2a04b244d10c19849676dbca4e 100644 (file)
@@ -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;
 }
-