1 #if ! defined (__CINT__) || defined (__MAKECINT__)
4 #include "AliAnalysisManager.h"
5 #include "AliAnalysisDataContainer.h"
6 #include "PWG1/TRD/macros/AliTRDperformanceTrain.h"
7 #include "PWG1/TRD/AliTRDresolution.h"
8 #include "PWG1/TRD/AliTRDclusterResolution.h"
9 #include "PWG1/TRD/AliTRDalignmentTask.h"
12 #include "PWG1/TRD/macros/helper.C"
13 void AddTRDresolution(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContainer **ci/*, AliAnalysisDataContainer **co*/)
15 Int_t map = ParseOptions(trd);
17 //AliLog::SetClassDebugLevel("AliTRDresolution", 5);
18 AliTRDresolution *task(NULL);
19 if(!TSTBIT(map, kResolution)) return;
20 mgr->AddTask(task = new AliTRDresolution());
21 task->SetMCdata(mgr->GetMCtruthEventHandler());
22 task->SetPostProcess(kFALSE);
23 task->SetDebugLevel(0);
24 mgr->ConnectInput( task, 0, ci[0]);
25 mgr->ConnectOutput(task, 0, mgr->CreateContainer(task->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
27 // Create output containers for calibration tasks
29 const Char_t *cn[nc] = {"Cl", "Trklt", "MC_Cl", "MC_Trklt"};
30 AliAnalysisDataContainer *co[] = {0x0, 0x0, 0x0, 0x0};
31 for(Int_t ic = 0; ic<nc; ic++){
32 co[ic] = mgr->CreateContainer(Form("%s%s", task->GetName(), cn[ic]), TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
33 mgr->ConnectOutput(task, 1+ic, co[ic]);
36 // Cluster Error Parameterization
37 if(TSTBIT(map, kClErrParam)){
38 //AliLog::SetClassDebugLevel("AliTRDclusterResolution", 5);
40 AliTRDclusterResolution *taskCl(NULL);
41 mgr->AddTask(taskCl = new AliTRDclusterResolution("ESD", "ESD Cluster error parameterization"));
43 mgr->ConnectInput(taskCl, 0, co[0]);
44 mgr->ConnectOutput(taskCl, 0, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.CalibClErrParam.root"));
46 mgr->AddTask(taskCl = new AliTRDclusterResolution("MC", "MC Cluster error parameterization"));
48 mgr->ConnectInput(taskCl, 0, co[2]);
49 mgr->ConnectOutput(taskCl, 0, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.CalibClErrParam.root"));
53 if(TSTBIT(map, kAlignment)){
54 AliTRDalignmentTask *taskAl = 0x0;
55 mgr->AddTask(taskAl = new AliTRDalignmentTask());
56 taskAl->SetDebugLevel(0);
57 mgr->ConnectInput(taskAl, 0, ci[0]);
58 mgr->ConnectOutput(taskAl, 0, mgr->CreateContainer(Form("h%s", taskAl->GetName()), TObjArray::Class(), AliAnalysisManager::kExchangeContainer));
59 mgr->ConnectOutput(taskAl, 1, mgr->CreateContainer(task->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", task->GetName())));