cef40354e7dac88bcd7315b078c8269330b3f87a
[u/mrichter/AliRoot.git] / ANALYSIS / TenderSupplies / AddTaskTender.C
1 AliAnalysisTask *AddTaskTender(Bool_t checkEvtSelection=kFALSE){
2   //get the current analysis manager
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     Error("AddTask_tender_Tender", "No analysis manager found.");
6     return 0;
7   }
8   // currently don't accept AOD input
9   if (!mgr->GetInputEventHandler()->InheritsFrom(AliESDInputHandler::Class())) {
10     Error("AddTask_tender_Tender","The analysis tender only works with ESD input!");
11     return 0;
12   }
13
14   
15   //========= Add tender to the ANALYSIS manager and set default storage =====
16   AliTender *tender=new AliTender("AnalysisTender");
17   tender->SetCheckEventSelection(checkEvtSelection);
18   tender->SetDefaultCDBStorage("raw://");
19   mgr->AddTask(tender);
20   if (checkEvtSelection) {
21      if (mgr->GetTasks()->First() != (TObject*)tender) {
22         ::Error("When setting the tender to check the event selection, it has to be the first wagon ! Aborting.");
23         return NULL;
24      }
25   }   
26   
27   //========= Attach VZERO supply ======
28   AliVZEROTenderSupply *vzeroSupply=new AliVZEROTenderSupply("VZEROtender");
29   vzeroSupply->SetDebug(kFALSE);
30   tender->AddSupply(vzeroSupply);
31   //========= Attach TPC supply ======
32   AliTPCTenderSupply *tpcSupply=new AliTPCTenderSupply("TPCtender");
33   tpcSupply->SetDebugLevel(2);
34   tpcSupply->SetMip(50.);
35   tender->AddSupply(tpcSupply);
36
37   //========= Attach TOF supply ======
38   AliTOFTenderSupply *TOFtender = new AliTOFTenderSupply("TOFtender");
39   tender->AddSupply(TOFtender);
40   
41   //========= Attach TRD supply ======
42   AliTRDTenderSupply *trdSupply=new AliTRDTenderSupply("TRDtender");
43   tender->AddSupply(trdSupply);
44
45   //========= Attach PID supply ======
46   tender->AddSupply(new AliPIDTenderSupply("PIDtender"));
47
48   //========= Attach Primary Vertex supply ======
49   tender->AddSupply(new AliVtxTenderSupply("PriVtxtender"));
50   
51   //================================================
52   //              data containers
53   //================================================
54
55     //            define output containers, please use 'username'_'somename'
56   AliAnalysisDataContainer *coutput1 =
57       mgr->CreateContainer("tender_event", AliESDEvent::Class(),
58                            AliAnalysisManager::kExchangeContainer,"default_tender");
59  
60   //           connect containers
61   mgr->ConnectInput  (tender,  0, mgr->GetCommonInputContainer() );
62   mgr->ConnectOutput (tender,  1, coutput1);
63  
64   return tender;
65 }