]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/macros/train/Tender.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / train / Tender.C
CommitLineData
00163883 1typedef enum AliESDpid::EStartTimeType_t TOFtimeType;
2
3TString rsnTenderStorage ("alien://folder=/alice/data/2010/OCDB");
4TString rsnTenderOptions ("VZERO+TPC+TOF");
5TOFtimeType rsnTenderTOFtime = AliESDpid::kTOF_T0;
6Double_t rsnTenderTOFres = 80.0;
7Bool_t rsnTenderTOFcorrExpTimes = kFALSE;
8Bool_t rsnTenderTOFapplyT0 = kFALSE;
9
10//__________________________________________________________________________________________________
11//
12// Special function to add tender when no multi handler is used
13//
14void AddTender()
15{
16 Info("Setup", "Adding tender directly to manager");
17
18 AliTender *tender = new AliTender("AnalysisTender");
19 tender->SetCheckEventSelection(rsnTenderOptions.Contains("SEL"));
20 tender->SetDefaultCDBStorage(rsnTenderStorage.Data());
21 AddTenderSupplies(tender);
22
23 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
24 mgr->AddTask(tender);
25}
26
27//__________________________________________________________________________________________________
28//
29// Special function to add tender handler when multi handler is used
30//
31void AddTenderHandler(AliMultiInputEventHandler *multiInputHandler)
32{
33 Info("Setup", "Adding tender handler");
34 if (!multiInputHandler) return;
35
36 // works only with ESDs
37 AliESDInputHandler*esdIH = dynamic_cast<AliESDInputHandler*>(multiInputHandler->GetFirstInputEventHandler());
38 if (!esdIH) {
39 Error("Setup", "No ESD handler found");
40 return;
41 }
42
43 // add tender handler and configure tender inside
44 AliTenderInputEventHandler *tenderIH = new AliTenderInputEventHandler();
45 AliTender *tender = tenderIH->GetTender();
46 AddTenderSupplies(tender);
47
48 // add handler to event handler
49 multiInputHandler->AddInputEventHandler(tenderIH);
50}
51
52//__________________________________________________________________________________________________
53//
54// Special function to add tender supplies
55//
56void AddTenderSupplies(AliTender *tender)
57{
58 if (!tender) return;
59
60 Bool_t useV0 = rsnTenderOptions.Contains("V0");
61 Bool_t useTPC = rsnTenderOptions.Contains("TPC");
62 Bool_t useTOF = rsnTenderOptions.Contains("TOF");
63 Bool_t useTRD = rsnTenderOptions.Contains("TRD");
64 Bool_t usePID = rsnTenderOptions.Contains("PID");
65 Bool_t useVTX = rsnTenderOptions.Contains("PrimVtx");
66 Bool_t evSel = rsnTenderOptions.Contains("SEL");
67
68 tender->SetCheckEventSelection(evSel);
69 tender->SetDefaultCDBStorage("raw://");
70
71 // VZERO
72 if (useV0) {
73 Info("Setup", "Adding tender supply for VZERO");
74 AliVZEROTenderSupply *vzeroSupply = new AliVZEROTenderSupply("VZEROtender");
75 vzeroSupply->SetDebug(kFALSE);
76 tender->AddSupply(vzeroSupply);
77 }
78
79 // TPC
80 if (useTPC) {
81 Info("Setup", "Adding tender supply for TPC");
82 AliTPCTenderSupply *tpcSupply = new AliTPCTenderSupply("TPCtender");
83 tpcSupply->SetDebugLevel(2);
84 //tpcSupply->SetMip(50.);
85 tender->AddSupply(tpcSupply);
86 }
87
88 // TOF
89 if (useTOF) {
90 Info("Setup", "Adding tender supply for TOF");
91 AliTOFTenderSupply *tofTender = new AliTOFTenderSupply("TOFtender");
92 tofTender->SetTimeZeroType(rsnTenderTOFtime);
93 tofTender->SetTOFres(rsnTenderTOFres);
94 tofTender->SetApplyT0(rsnTenderTOFapplyT0);
95 tofTender->SetCorrectExpTimes(rsnTenderTOFcorrExpTimes);
96 tender->AddSupply(tofTender);
97 }
98
99 // TRD
100 if (useTRD) {
101 Info("Setup", "Adding tender supply for TRD");
102 AliTRDTenderSupply *trdSupply = new AliTRDTenderSupply("TRDtender");
103 tender->AddSupply(trdSupply);
104 }
105
106 // PID
107 if (usePID) {
108 Info("Setup", "Adding tender supply for PID");
109 tender->AddSupply(new AliPIDTenderSupply("PIDtender"));
110 }
111
112 // Primary Vertex
113 if (useVTX) {
114 Info("Setup", "Adding tender supply for Primary Vertex");
115 tender->AddSupply(new AliVtxTenderSupply("PriVtxtender"));
116 }
117}