]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/TenderSupplies/AddTaskTender.C
o remove obsolete lines
[u/mrichter/AliRoot.git] / ANALYSIS / TenderSupplies / AddTaskTender.C
CommitLineData
de05232c 1AliAnalysisTask *AddTaskTender(Bool_t useV0=kFALSE,
2 Bool_t useTPC=kTRUE,
3 Bool_t useTOF=kTRUE,
4 Bool_t useTRD=kTRUE,
5 Bool_t usePID=kTRUE,
6 Bool_t useVTX=kTRUE,
98e8eede 7 Bool_t useT0=kTRUE,
82fdfe7d 8 Bool_t useEmc=kFALSE,
906dab39 9 Bool_t usePtFix=kFALSE)
98e8eede 10{
906dab39 11 if (!(useV0 | useTPC | useTOF | useTRD | usePID | useVTX | | useT0 | useEmc | usePtFix)) {
de05232c 12 ::Error("AddTaskTender", "No supply added to tender, so tender not created");
13 return 0;
14 }
e75408ba 15 //get the current analysis manager
2d28db9f 16 Bool_t checkEvtSelection = useV0;
e75408ba 17 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
18 if (!mgr) {
de05232c 19 ::Error("AddTaskTender", "No analysis manager found.");
e75408ba 20 return 0;
21 }
22 // currently don't accept AOD input
de05232c 23 if (!mgr->GetInputEventHandler()->InheritsFrom(AliESDInputHandler::Class())) {
24 ::Error("AddTask_tender_Tender","The analysis tender only works with ESD input!");
e75408ba 25 return 0;
26 }
e75408ba 27
28 //========= Add tender to the ANALYSIS manager and set default storage =====
29 AliTender *tender=new AliTender("AnalysisTender");
aaf2d706 30 tender->SetCheckEventSelection(checkEvtSelection);
351c53ea 31 tender->SetDefaultCDBStorage("raw://");
f930b7bf 32 mgr->AddTask(tender);
00a38d07 33
00a38d07 34 //check that that tender is the first task after the pid response
35 TString firstName(mgr->GetTasks()->First()->GetName());
36 Bool_t isSecond=(mgr->GetTasks()->At(1) == (TObject*)tender);
37
38 if (! (firstName=="PIDResponseTask" && isSecond )){
39 Fatal("AddTaskTender","When using the tender the first task needs to be the PIDResponse and the tender the second task!!!");
40 return NULL;
41 }
42
9259172d 43 //========= Attach VZERO supply ======
2d28db9f 44 if (useV0) {
45 AliVZEROTenderSupply *vzeroSupply=new AliVZEROTenderSupply("VZEROtender");
46 vzeroSupply->SetDebug(kFALSE);
47 tender->AddSupply(vzeroSupply);
48 }
5ff9ab50 49
6d163207 50
e75408ba 51 //========= Attach TPC supply ======
de05232c 52 if (useTPC) {
53 AliTPCTenderSupply *tpcSupply=new AliTPCTenderSupply("TPCtender");
54 tpcSupply->SetDebugLevel(2);
55 //tpcSupply->SetMip(50.);
56 tender->AddSupply(tpcSupply);
57 }
c9a7f36c 58
82fdfe7d 59 //========= Attach track 1/pt correction supply ======
60 if (usePtFix) {
61 AliTrackFixTenderSupply *trfixSupply=new AliTrackFixTenderSupply("PTInvFix");
62 //trfixSupply->SetDebugLevel(2);
63 tender->AddSupply(trfixSupply);
64 }
65
c9a7f36c 66 //========= Attach T0 supply ======
de05232c 67 if (useT0) {
68 AliT0TenderSupply *t0Tender = new AliT0TenderSupply("T0tender");
1f671b29 69 t0Tender ->SetPass4LHC11aCorrection(kTRUE);
de05232c 70 tender->AddSupply(t0Tender);
71 }
c9a7f36c 72
e75408ba 73 //========= Attach TOF supply ======
de05232c 74 if (useTOF) {
75 AliTOFTenderSupply *tofTender = new AliTOFTenderSupply("TOFtender");
76 tender->AddSupply(tofTender);
77 }
5ff9ab50 78
e75408ba 79 //========= Attach TRD supply ======
de05232c 80 if (useTRD) {
81 AliTRDTenderSupply *trdSupply=new AliTRDTenderSupply("TRDtender");
82 trdSupply->SetLoadReferencesFromCDB();
83 // Mask Bad chambers
84 trdSupply->AddBadChamber(265); // low drift
85 trdSupply->AddBadChamber(50);
86 trdSupply->AddBadChamber(524); // low drift
87 trdSupply->AddBadChamber(32); // intermediate gain
88 trdSupply->AddBadChamber(15);
89 trdSupply->AddBadChamber(231); // low gain
90 trdSupply->AddBadChamber(273); // intermediate gain
91 trdSupply->AddBadChamber(532);
92 trdSupply->AddBadChamber(5); // low drift
93 trdSupply->AddBadChamber(227);
94 trdSupply->AddBadChamber(287); // low drift
95 trdSupply->AddBadChamber(212); // intermediate gain
96 trdSupply->AddBadChamber(228); // low gain
97 trdSupply->AddBadChamber(52); // low gain
98 trdSupply->AddBadChamber(169); // low drift
99 trdSupply->AddBadChamber(236); // low drift
51a0ce25 100
de05232c 101 trdSupply->SetPIDmethod(AliTRDTenderSupply::k1DLQpid);
102 trdSupply->SetNormalizationFactor(1./7.603);
103 tender->AddSupply(trdSupply);
104 }
e75408ba 105
e75408ba 106 //========= Attach Primary Vertex supply ======
de05232c 107 if (useVTX) {
108 tender->AddSupply(new AliVtxTenderSupply("PriVtxtender"));
109 }
6d163207 110
98e8eede 111 //========= Attach EMCAL supply ======
112 if (useEmc) {
113 AliEMCALTenderSupply *emcSupply = new AliEMCALTenderSupply("EmcTender");
114 emcSupply->SetDefaults();
115 tender->AddSupply(emcSupply);
116 }
117
00a38d07 118 //========= Attach PID supply ======
119 if (usePID) {
120 AliPIDTenderSupply *pidSupply=new AliPIDTenderSupply("PIDtender");
00a38d07 121 tender->AddSupply(pidSupply);
122 }
123
e75408ba 124 //================================================
125 // data containers
126 //================================================
127
128 // define output containers, please use 'username'_'somename'
129 AliAnalysisDataContainer *coutput1 =
130 mgr->CreateContainer("tender_event", AliESDEvent::Class(),
131 AliAnalysisManager::kExchangeContainer,"default_tender");
132
133 // connect containers
134 mgr->ConnectInput (tender, 0, mgr->GetCommonInputContainer() );
aa269eb9 135 mgr->ConnectOutput (tender, 1, coutput1);
e75408ba 136
137 return tender;
138}