]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/AddD2HTrain.C
#97492 Request to: patch AliSimulation; port to Release; make tag on release; for...
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AddD2HTrain.C
1 Int_t AddD2HTrain(Bool_t readMC=kTRUE,
2                   Int_t addQA=1,
3                   Int_t addD0Mass=1,
4                   Int_t addD0MassLS=1,
5                   Int_t addDplus=1,
6                   Int_t addLSD0=0,
7                   Int_t addCFD0=0,
8                   Int_t addPromptD0=1,
9                   Int_t addDs=0,
10                   Int_t addDStar=1,
11                   Int_t addDStarJets=0,
12                   Int_t addCFDStar=0) {
13   // 
14   // Tasks of the D2H subgroup of PWGHF that can run in the Official Train
15   //
16   // They all use AOD+AOD.VertexingHF as input. 
17   // They need to read the cuts from the macro 
18   // $ALICE_ROOT/PWGHF/vertexingHF/ConfigVertexingHF.C (trunk version).
19   // This macro is loaded in the Init(), so it should be enough to have it 
20   // in the local dir when the train is launched with the alien plugin.
21   // They all produce only histos in the output. 
22   //
23   // andrea.dainese@pd.infn.it
24   //
25
26   TString taskName="",loadMacroPath="$ALICE_ROOT/PWGHF/vertexingHF/macros/";
27   Int_t ntasks=0;
28
29   //taskName="AddTaskCompareHF.C"; taskName.Prepend(loadMacroPath.Data());
30   //gROOT->LoadMacro(taskName.Data());
31   //AliAnalysisTaskSECompareHF *cmpTask = AddTaskCompareHF();
32   
33   if(addQA) {
34     taskName="AddTaskHFQA.C"; taskName.Prepend(loadMacroPath.Data());
35     gROOT->LoadMacro(taskName.Data());
36     AliAnalysisTaskSEHFQA *taskQAHF = AddTaskHFQA(AliAnalysisTaskSEHFQA::kD0toKpi,"",readMC,kTRUE);
37     ntasks++;
38   }
39
40
41   if(addD0Mass || addD0MassLS) {
42     taskName="AddTaskD0Mass.C"; taskName.Prepend(loadMacroPath.Data());
43     gROOT->LoadMacro(taskName.Data());
44     if(addD0Mass) {
45       AliAnalysisTaskSED0Mass *d0massTask = AddTaskD0Mass(0,readMC);
46       ntasks++;
47     }
48     if(addD0MassLS) {
49       AliAnalysisTaskSED0Mass *d0massLikeSignTask = AddTaskD0Mass(1,readMC); 
50       ntasks++;
51     }
52   }
53
54   if(addDplus) {
55     taskName="AddTaskDplus.C"; taskName.Prepend(loadMacroPath.Data());
56     gROOT->LoadMacro(taskName.Data());
57     AliAnalysisTaskSEDplus *dplusTask = AddTaskDplus(kFALSE,readMC);
58     ntasks++;
59   }  
60
61   //taskName="AddTaskSelectHF.C"; taskName.Prepend(loadMacroPath.Data());
62   //gROOT->LoadMacro(taskName.Data());
63   //AliAnalysisTaskSESelectHF *seleTask = AddTaskSelectHF();
64   
65   if(addLSD0 && readMC) {
66     taskName="AddTaskBkgLikeSignD0.C"; taskName.Prepend(loadMacroPath.Data());
67     gROOT->LoadMacro(taskName.Data());
68     AliAnalysisTaskSEBkgLikeSignD0 *lsD0Task = AddTaskBkgLikeSignD0();
69     ntasks++;
70   }
71
72   if(addCFD0 && readMC) {
73     taskName="AddTaskCFMultiVarMultiStep.C"; taskName.Prepend(loadMacroPath.Data());
74     gROOT->LoadMacro(taskName.Data());
75     AliCFHeavyFlavourTaskMultiVarMultiStep *cfmvmsTask = AddTaskCFMultiVarMultiStep();
76     ntasks++;
77   }
78
79   if(addPromptD0) {
80     taskName="AddTaskSECharmFraction.C"; 
81     taskName.Prepend(loadMacroPath.Data());
82     gROOT->LoadMacro(taskName.Data());
83     Int_t switchMC[5]={0,0,0,0,0};
84     Int_t ppPbPb=1;// 0 for pp, 1 for PbPb, used to siwtch on/off the removal of daughters from the primary vertex
85     AliAnalysisTaskSECharmFraction *cFractTask = AddTaskSECharmFraction("standard",switchMC,readMC,kTRUE,kFALSE,"D0toKpiCharmFractCuts.root","c",ppPbPb);
86     // arguments: filename,switchMC,readmc,usepid,likesign,cutfilename,containerprefix
87     ntasks++;
88   }
89
90   if(addDs) {
91     taskName="AddTaskDs.C"; taskName.Prepend(loadMacroPath.Data());
92     gROOT->LoadMacro(taskName.Data());
93     AliAnalysisTaskSEDs *dsTask = AddTaskDs(readMC);
94     ntasks++;
95   }  
96
97   if(addDStar) {
98     taskName="AddTaskDStarSpectra.C"; taskName.Prepend(loadMacroPath.Data());
99     gROOT->LoadMacro(taskName.Data());
100     AliAnalysisTaskSEDStarSpectra *dstarTask = AddTaskDStarSpectra(readMC);
101     ntasks++;
102   }  
103
104   if(addDStarJets) {
105     taskName="AddTaskDStarJets.C"; taskName.Prepend(loadMacroPath.Data());
106     gROOT->LoadMacro(taskName.Data());
107     AliAnalysisTaskSEDStarJets *dstarjetsTask = AddTaskDStarJets(readMC);
108     ntasks++;
109   }  
110
111   if(addCFDStar && readMC) {
112     taskName="AddTaskCFDStar.C"; taskName.Prepend(loadMacroPath.Data());
113     gROOT->LoadMacro(taskName.Data());
114     AliCFTaskForDStarAnalysis *cfDstarTask = AddTaskCFDStar();
115     ntasks++;
116   }
117
118
119   return ntasks;
120 }