]>
Commit | Line | Data |
---|---|---|
1ee39b3a | 1 | #if ! defined (__CINT__) || defined (__MAKECINT__) |
2 | #include "TTree.h" | |
3f19c2cd | 3 | #include "AliLog.h" |
1ee39b3a | 4 | #include "AliAnalysisManager.h" |
5 | #include "AliAnalysisDataContainer.h" | |
d4f4bb29 | 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" | |
1ee39b3a | 10 | #endif |
11 | ||
d4f4bb29 | 12 | #include "PWG1/TRD/macros/helper.C" |
705f8b0a | 13 | void AddTRDresolution(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContainer **ci, const char *suffix="") |
1ee39b3a | 14 | { |
15 | Int_t map = ParseOptions(trd); | |
705f8b0a | 16 | if(!TSTBIT(map, kResolution)) return; |
17 | printf("AddTRDresolution(\"%s\") <- [0]=\"%s\"\n", suffix, ci[0]->GetName()); | |
3f19c2cd | 18 | |
705f8b0a | 19 | AliTRDresolution *res(NULL); |
20 | mgr->AddTask(res = new AliTRDresolution(Form("TRDresolution%s", suffix))); | |
21 | res->SetMCdata(mgr->GetMCtruthEventHandler()); | |
22 | res->SetPostProcess(kFALSE); | |
23 | res->SetDebugLevel(0); | |
3f19c2cd | 24 | //AliLog::SetClassDebugLevel("AliTRDresolution", 5); |
705f8b0a | 25 | mgr->ConnectInput(res, 0, mgr->GetCommonInputContainer()); |
26 | mgr->ConnectInput(res, 1, ci[0]); | |
27 | mgr->ConnectOutput(res,1, mgr->CreateContainer(res->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.Performance.root")); | |
1ee39b3a | 28 | |
29 | // Create output containers for calibration tasks | |
705f8b0a | 30 | AliAnalysisDataContainer *co(NULL); |
31 | co = mgr->CreateContainer(Form("%sCl2Trk%s", res->GetName(), suffix), TObjArray::Class(), AliAnalysisManager::kExchangeContainer); | |
32 | mgr->ConnectOutput(res, AliTRDresolution::kClToTrk, co); | |
33 | co = mgr->CreateContainer(Form("%sTrklt2Trk%s", res->GetName(), suffix), TObjArray::Class(), AliAnalysisManager::kExchangeContainer); | |
34 | mgr->ConnectOutput(res, AliTRDresolution::kTrkltToTrk, co); | |
35 | co = mgr->CreateContainer(Form("%sCl2MC%s", res->GetName(), suffix), TObjArray::Class(), AliAnalysisManager::kExchangeContainer); | |
36 | mgr->ConnectOutput(res, AliTRDresolution::kClToMC, co); | |
37 | co = mgr->CreateContainer(Form("%sTrklt2MC%s", res->GetName(), suffix), TObjArray::Class(), AliAnalysisManager::kExchangeContainer); | |
38 | mgr->ConnectOutput(res, AliTRDresolution::kTrkltToMC, co); | |
1ee39b3a | 39 | |
705f8b0a | 40 | TObjArray *coa = mgr->GetContainers(); |
1ee39b3a | 41 | // Cluster Error Parameterization |
42 | if(TSTBIT(map, kClErrParam)){ | |
3f19c2cd | 43 | AliTRDclusterResolution *taskCl(NULL); |
705f8b0a | 44 | mgr->AddTask(taskCl = new AliTRDclusterResolution((char*)"ClErrCalibESD")); |
1ee39b3a | 45 | taskCl->SetExB(); |
705f8b0a | 46 | taskCl->SetDebugLevel(0); |
47 | //AliLog::SetClassDebugLevel("AliTRDclusterResolution", 5); | |
48 | ||
49 | mgr->ConnectInput(taskCl, 0, mgr->GetCommonInputContainer()); | |
50 | mgr->ConnectInput(taskCl, 1, (AliAnalysisDataContainer*)coa->FindObject(Form("%sCl2Trk", res->GetName()))); | |
3d83da78 | 51 | mgr->ConnectOutput(taskCl, 1, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.CalibClErrParam.root")); |
1ee39b3a | 52 | |
705f8b0a | 53 | mgr->AddTask(taskCl = new AliTRDclusterResolution((char*)"ClErrCalibMC")); |
1ee39b3a | 54 | taskCl->SetExB(); |
705f8b0a | 55 | taskCl->SetDebugLevel(0); |
3d83da78 | 56 | mgr->ConnectInput(taskCl, 0, mgr->GetCommonInputContainer()); |
705f8b0a | 57 | mgr->ConnectInput(taskCl, 1, (AliAnalysisDataContainer*)coa->FindObject(Form("%sCl2MC", res->GetName()))); |
3d83da78 | 58 | mgr->ConnectOutput(taskCl, 1, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, "TRD.CalibClErrParam.root")); |
1ee39b3a | 59 | } |
60 | ||
61 | // TRD alignment | |
62 | if(TSTBIT(map, kAlignment)){ | |
705f8b0a | 63 | AliTRDalignmentTask *taskAlign(NULL); |
64 | mgr->AddTask(taskAlign = new AliTRDalignmentTask((char*)"TRDalignment")); | |
65 | taskAlign->SetDebugLevel(0); | |
66 | //AliLog::SetClassDebugLevel("AliTRDalignmentTask", 5); | |
67 | mgr->ConnectInput(taskAlign, 0, mgr->GetCommonInputContainer()); | |
68 | mgr->ConnectInput(taskAlign, 1, (AliAnalysisDataContainer*)coa->FindObject(Form("%sCl2Trk", res->GetName()))); | |
69 | mgr->ConnectOutput(taskAlign, 1, mgr->CreateContainer(Form("h%s", taskAlign->GetName()), TObjArray::Class(), AliAnalysisManager::kExchangeContainer)); | |
70 | mgr->ConnectOutput(taskAlign, 2, mgr->CreateContainer(taskAlign->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("TRD.Calib%s.root", taskAlign->GetName()))); | |
1ee39b3a | 71 | } |
72 | } | |
73 |