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)
15 Int_t map = ParseOptions(trd);
16 if(!TSTBIT(map, kResolution)) return;
17 printf("AddTRDresolution <- [0]=\"%s\" [1]=\"%s\" [2]=\"%s\"\n", ci[0]->GetName(), ci[1]->GetName(), ci[2]->GetName());
19 // AliLog::SetClassDebugLevel("AliTRDrecoTask", 2);
20 // AliLog::SetClassDebugLevel("AliTRDresolution", 2);
21 AliTRDresolution *res(NULL);
23 const Char_t *suffix[]={"", "SA", "K"};
24 for(Int_t itq=0; itq<1/*3*/; itq++){
25 mgr->AddTask(res = new AliTRDresolution(Form("TRDresolution%s", suffix[itq])));
26 res->SetMCdata(mgr->GetMCtruthEventHandler());
27 res->SetPostProcess(kFALSE);
28 res->SetDebugLevel(0);
29 res->SetNameId(suffix[itq]);
30 mgr->ConnectInput(res, 0, mgr->GetCommonInputContainer());
31 mgr->ConnectInput(res, 1, ci[itq]);
32 mgr->ConnectOutput(res,1, mgr->CreateContainer(res->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root"));
34 // Create output containers for calibration tasks
35 AliAnalysisDataContainer *co(NULL);
36 co = mgr->CreateContainer(Form("%sCl2Trk%s", res->GetName(), suffix), TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
37 mgr->ConnectOutput(res, AliTRDresolution::kClToTrk, co);
38 co = mgr->CreateContainer(Form("%sTrklt2Trk%s", res->GetName(), suffix), TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
39 mgr->ConnectOutput(res, AliTRDresolution::kTrkltToTrk, co);
40 co = mgr->CreateContainer(Form("%sCl2MC%s", res->GetName(), suffix), TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
41 mgr->ConnectOutput(res, AliTRDresolution::kClToMC, co);
42 co = mgr->CreateContainer(Form("%sTrklt2MC%s", res->GetName(), suffix), TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
43 mgr->ConnectOutput(res, AliTRDresolution::kTrkltToMC, co);
45 TObjArray *coa = mgr->GetContainers();
46 // Cluster Error Parameterization
47 if(TSTBIT(map, kClErrParam)){
48 AliTRDclusterResolution *taskCl(NULL);
49 mgr->AddTask(taskCl = new AliTRDclusterResolution((char*)"ClErrCalibESD"));
51 taskCl->SetDebugLevel(0);
52 //AliLog::SetClassDebugLevel("AliTRDclusterResolution", 5);
54 mgr->ConnectInput(taskCl, 0, mgr->GetCommonInputContainer());
55 mgr->ConnectInput(taskCl, 1, (AliAnalysisDataContainer*)coa->FindObject(Form("%sCl2Trk", res->GetName())));
56 mgr->ConnectOutput(taskCl, 1, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.CalibClErrParam.root"));
58 mgr->AddTask(taskCl = new AliTRDclusterResolution((char*)"ClErrCalibMC"));
60 taskCl->SetDebugLevel(0);
61 mgr->ConnectInput(taskCl, 0, mgr->GetCommonInputContainer());
62 mgr->ConnectInput(taskCl, 1, (AliAnalysisDataContainer*)coa->FindObject(Form("%sCl2MC", res->GetName())));
63 mgr->ConnectOutput(taskCl, 1, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.CalibClErrParam.root"));
68 if(TSTBIT(map, kAlignment)){
69 TObjArray *coa = mgr->GetContainers();
70 AliTRDalignmentTask *taskAlign(NULL);
71 mgr->AddTask(taskAlign = new AliTRDalignmentTask((char*)"TRDalignment"));
72 taskAlign->SetDebugLevel(0);
73 //AliLog::SetClassDebugLevel("AliTRDalignmentTask", 5);
74 mgr->ConnectInput(taskAlign, 0, mgr->GetCommonInputContainer());
75 mgr->ConnectInput(taskAlign, 1, (AliAnalysisDataContainer*)coa->FindObject("TRDresolutionCl2Trk"));
76 mgr->ConnectOutput(taskAlign, 1, mgr->CreateContainer(Form("h%s", taskAlign->GetName()), TObjArray::Class(), AliAnalysisManager::kExchangeContainer));
77 mgr->ConnectOutput(taskAlign, 2, mgr->CreateContainer(taskAlign->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", taskAlign->GetName())));