]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/TRD/macros/AddTRDresolution.C
824927203e941b347da9e98c122afbff20037096
[u/mrichter/AliRoot.git] / PWG1 / TRD / macros / AddTRDresolution.C
1 #if ! defined (__CINT__) || defined (__MAKECINT__)
2 #include "TTree.h"
3 #include "AliLog.h"
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"
10 #endif
11
12 #include "PWG1/TRD/macros/helper.C"
13 void AddTRDresolution(AliAnalysisManager *mgr, Char_t *trd, AliAnalysisDataContainer **ci)
14 {
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());
18
19   //AliLog::SetClassDebugLevel("AliTRDrecoTask", 2);
20   //AliLog::SetClassDebugLevel("AliTRDresolution", 2);
21   AliTRDresolution *res(NULL);
22   const Char_t *suffix[]={"", "SA", "K"};
23   for(Int_t itq=0; itq<1/*3*/; itq++){
24     mgr->AddTask(res = new AliTRDresolution(Form("TRDresolution%s", suffix[itq])));
25     res->SetMCdata(mgr->GetMCtruthEventHandler());
26     res->SetPostProcess(kFALSE);
27     res->SetDebugLevel(0);
28     //if(itq==0) res->SetSegmentationLevel(1);
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, Form("%s:TRD_Performance", mgr->GetCommonFileName())));
33   
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("%sCl2MC%s", res->GetName(), suffix), TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
39     mgr->ConnectOutput(res, AliTRDresolution::kClToMC, co);
40 //     co = mgr->CreateContainer(Form("%sTrklt2Trk%s", res->GetName(), suffix), TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
41 //     mgr->ConnectOutput(res, AliTRDresolution::kTrkltToTrk, co);
42 //     co = mgr->CreateContainer(Form("%sTrklt2MC%s", res->GetName(), suffix), TObjArray::Class(), AliAnalysisManager::kExchangeContainer);
43 //     mgr->ConnectOutput(res, AliTRDresolution::kTrkltToMC, co);
44     
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"));
50       taskCl->SetExB();
51       taskCl->SetDebugLevel(0);
52       //AliLog::SetClassDebugLevel("AliTRDclusterResolution", 5);  
53   
54       mgr->ConnectInput(taskCl,  0, mgr->GetCommonInputContainer()); 
55       mgr->ConnectInput(taskCl,  1, (AliAnalysisDataContainer*)coa->FindObject(Form("%sCl2Trk%s", res->GetName(), suffix)));
56       mgr->ConnectOutput(taskCl, 1, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD.CalibClErrParam", mgr->GetCommonFileName())));*/
57   
58       AliLog::SetClassDebugLevel("AliTRDclusterResolution", 5);  
59       mgr->AddTask(taskCl = new AliTRDclusterResolution((char*)"ClErrCalibMC"));
60       taskCl->SetExB();
61       taskCl->SetDebugLevel(0);
62       mgr->ConnectInput(taskCl,  0, mgr->GetCommonInputContainer());  
63       mgr->ConnectInput(taskCl,  1, (AliAnalysisDataContainer*)coa->FindObject(Form("%sCl2MC%s", res->GetName(), suffix)));
64       mgr->ConnectOutput(taskCl, 1, mgr->CreateContainer(taskCl->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD.CalibClErrParam", mgr->GetCommonFileName())));
65     }
66   }
67
68   // TRD alignment
69   if(TSTBIT(map, kAlignment)){
70     TObjArray *coa = mgr->GetContainers();
71     AliTRDalignmentTask *taskAlign(NULL);
72     mgr->AddTask(taskAlign = new AliTRDalignmentTask((char*)"TRDalignment"));
73     taskAlign->SetDebugLevel(0);
74     //AliLog::SetClassDebugLevel("AliTRDalignmentTask", 5);  
75     mgr->ConnectInput(taskAlign,  0, mgr->GetCommonInputContainer());  
76     mgr->ConnectInput(taskAlign,  1, (AliAnalysisDataContainer*)coa->FindObject("TRDresolutionCl2Trk"));  
77     mgr->ConnectOutput(taskAlign, 1, mgr->CreateContainer(Form("h%s", taskAlign->GetName()), TObjArray::Class(), AliAnalysisManager::kExchangeContainer));
78     mgr->ConnectOutput(taskAlign, 2, mgr->CreateContainer(taskAlign->GetName(), TTree::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD.Calib%s",mgr->GetCommonFileName(), taskAlign->GetName())));
79   }
80 }
81