]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/macros/AddTaskHFEnpepPb.C
updated task
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / AddTaskHFEnpepPb.C
1 AliAnalysisTask *AddTaskHFEnpepPb(Bool_t isMC, 
2                                   Bool_t isAOD, 
3                                   Bool_t kNPERef = kTRUE, 
4                                   Bool_t kNPEkAny = kFALSE, 
5                                   Bool_t kNPEsystematics
6   ){
7
8   // Default settings (TOF-TPC pPb)
9   const int     kDefTPCcl       = 110;
10   const int     kDefTPCclPID    =  80;
11   const int     kDefITScl       =   4;
12   const double  kDefDCAr        =   1.;
13   const double  kDefDCAz        =   2.;
14   const double  kDefTPCs        =   0.06;
15   const double  kDefTPCu        =   3.06;
16   const double  kDefTOFs        =   3.;
17   const double  kDefEtaIncMin = -0.6;
18   const double  kDefEtaIncMax = 0.6;
19
20   // Default setting for the associated electron for the NonPhotonic Analysis
21   const double  kassETAm                =   -0.8;
22   const double  kassETAp                =   0.8;
23   const int     kassITS         =   2;
24   const int     kassTPCcl       = 60;
25   const int     kassTPCPIDcl    =  60;
26   const double  kassDCAr        =   1.0;
27   const double  kassDCAz        =   2.0;
28   const double  kassTPCSminus   =  -3.0;
29   const double  kassTPCSplus    =   3.0;
30
31   enum{
32           kHFEV0A = 1,
33           kHFEV0M = 2,
34           kHFECL1 = 3,
35           kHFEZNA = 4
36   };
37
38   //get the current analysis manager
39   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
40   if (!mgr) {
41     Error("AddTask_hfe_HFE", "No analysis manager found.");
42     return 0;
43   }
44
45   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
46
47   //@@ 0 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
48
49   Double_t dEdxlm[12], dEdxhm[12], dEdxaclm[12], dEdxachm[12];
50   for(int icent = 0; icent < 12; icent++){
51     dEdxlm[icent] = kDefTPCs;
52     dEdxhm[icent] = kDefTOFs;
53     dEdxaclm[icent] = kassTPCSminus;
54     dEdxachm[icent] = kassTPCSplus;
55   }
56
57   if(kNPERef){
58     // **************************************************************
59     // 
60     // Reference task
61     //
62     // **************************************************************
63     RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
64                      kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
65     RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
66                      kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE);
67   }
68
69   if(kNPEkAny){
70     // **************************************************************
71     // 
72     // task for kAny instead of kBoth
73     //
74     // **************************************************************
75     RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kAny, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
76                      kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
77     RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kAny, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
78                      kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE);
79 }
80
81   if(kNPEsystematics){
82     // **************************************************************
83     // 
84     // Cut systematics on the associated track
85     //
86     // **************************************************************
87       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
88                          0.0, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
89       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
90                          kassETAm, 0.0, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
91       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
92                          kassETAm, kassETAp, 3, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
93       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
94                          kassETAm, kassETAp, kassITS, 80, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
95       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
96                          kassETAm, kassETAp, kassITS, 100, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
97       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
98                          kassETAm, kassETAp, kassITS, 40, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
99       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
100                          kassETAm, kassETAp, kassITS, kassTPCcl, 40, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
101       RegisterTaskNPEpPb( isMC, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
102                          kassETAm, kassETAp, kassITS, kassTPCcl, 80, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
103       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
104                          kassETAm, kassETAp, kassITS, kassTPCcl, 100, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
105       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
106                          kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, 0.5, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
107       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
108                          kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, 2, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE);
109       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
110                          kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, 1, dEdxaclm, dEdxachm, kTRUE, kTRUE);
111       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
112                          kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, 4, dEdxaclm, dEdxachm, kTRUE, kTRUE);
113       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
114                          kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm1, dEdxachm1, kTRUE, kTRUE);
115       RegisterTaskNPEpPb( isMC, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, dEdxlm, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax,
116                          kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm2, dEdxachm2, kTRUE, kTRUE);
117
118   }
119
120   return NULL;
121 }
122
123 //===============================================================================
124
125 AliAnalysisTask *RegisterTaskNPEpPb(Bool_t isMC, Bool_t isAOD, 
126                Int_t tpcCls=120, Int_t tpcClsPID=80, 
127                Int_t itsCls=4, Double_t dcaxy=1.0, Double_t dcaz=2.0, 
128                Double_t *tpcdEdxcutlow=NULL, Double_t *tpcdEdxcuthigh=NULL, 
129                Double_t tofs=3., Int_t itshitpixel =AliHFEextraCuts::kBoth, Int_t icent=1,
130                Double_t etaIncMin = -0.8, Double_t etaIncMax = 0.8,
131                Double_t assETAm=-0.8, Double_t assETAp=0.8, Int_t assITS=2, Int_t assTPCcl=100, 
132                Int_t assTPCPIDcl=80, Double_t assDCAr=1.0, Double_t assDCAz=2.0, 
133                Double_t *assTPCSminus = NULL, Double_t *assTPCSplus=NULL ,
134                Bool_t useCat1Tracks = kTRUE, Bool_t useCat2Tracks = kTRUE)
135 {
136
137   Int_t iassETAm  = (Int_t)(assETAm*10);
138   Int_t iassETAp  = (Int_t)(assETAp*10);
139   Int_t iassDCAr = (Int_t)(assDCAr*10);
140   Int_t iassDCAz = (Int_t)(assDCAz*10);
141   Int_t iassTPCSminus = assTPCSminus ? (Int_t)(assTPCSminus[0]*10) : 0;
142   Int_t iassTPCSplus  = assTPCSplus ? (Int_t)(assTPCSplus[0]*10) : 0;
143   Int_t ipixelany = itshitpixel;
144   Int_t icat1 = useCat1Tracks ? 1 : 0;
145   Int_t icat2 = useCat2Tracks ? 1 : 0;
146
147   if (icent == 2) TString cesti("V0M");
148   else if (icent == 3) TString cesti("CL1");
149   else if (icent == 4) TString cesti("ZNA");
150   else TString cesti("V0A");
151
152   TString appendix(TString::Format("PhotonicSPD%dEtam%dEtap%dITS%dTPCcl%dTPCPIDcl%dDCAr%dDCAz%dTPCSminus%dTPCSplus%d%sCA%dCB%d", ipixelany, iassETAm, iassETAp, assITS, assTPCcl,
153                                    assTPCPIDcl, iassDCAr, iassDCAz, iassTPCSminus, iassTPCSplus, cesti.Data(), icat1, icat2));
154   printf("Add macro appendix %s\n", appendix.Data());
155
156   gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/pPb/ConfigHFEnpepPb.C");
157
158   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
159   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
160  AliAnalysisTaskHFE *task = ConfigHFEnpepPb(isMC, isAOD, appendix, tpcCls, tpcClsPID, itsCls, dcaxy, dcaz, tpcdEdxcutlow, tpcdEdxcuthigh, tofs, 0, itshitpixel, icent, etaIncMin, etaIncMax,
161                                              assETAm, assETAp, assITS, assTPCcl, assTPCPIDcl, assDCAr, assDCAz, assTPCSminus, assTPCSplus, useCat1Tracks, useCat2Tracks);
162   if(isAOD)
163     task->SetAODAnalysis();
164   else
165     task->SetESDAnalysis();
166
167   if (isMC)     task->SetHasMCData(kTRUE);
168   else          task->SetHasMCData(kFALSE);
169
170   task->SelectCollisionCandidates(AliVEvent::kINT7);
171
172   TString containerName = mgr->GetCommonFileName();
173   containerName += ":HFEtask";
174   containerName += appendix.Data();
175   printf("container name: %s\n", containerName.Data());
176
177   //create data containers
178   task->ConnectOutput(1, mgr->CreateContainer(Form("HFE_Results_%s", appendix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, containerName.Data() ));
179   task->ConnectOutput(2, mgr->CreateContainer(Form("HFE_QA_%s", appendix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, containerName.Data()));
180   mgr->ConnectInput(task,  0, cinput );
181
182   mgr->AddTask(task);
183
184   return NULL;
185 }