]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/TRD/macros/AddTRDresolution.C
Coding Conventions
[u/mrichter/AliRoot.git] / PWG1 / TRD / macros / AddTRDresolution.C
CommitLineData
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 13void 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