]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/PiKaPr/TOF/pPb502/task/AddAnalysisTaskTOFSpectraPbPb.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TOF / pPb502 / task / AddAnalysisTaskTOFSpectraPbPb.C
CommitLineData
59e49925 1AliAnalysisTaskTOFSpectraPbPb *
2AddAnalysisTaskTOFSpectraPbPb(Bool_t mcFlag = kFALSE, Bool_t mcTuneFlag = kFALSE, Bool_t pbpbFlag = kFALSE)
3{
4
5 /* check analysis manager */
6 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 if (!mgr) {
8 Error("AddAnalysisTaskTOFSpectraPbPb", "cannot get analysis manager");
9 return NULL;
10 }
11
12 /* check input event handler */
13 if (!mgr->GetInputEventHandler()) {
14 Error("AddAnalysisTaskTOFSpectraPbPb", "cannot get input event handler");
15 return NULL;
16 }
17
18 /* check input data type */
19 TString str = mgr->GetInputEventHandler()->GetDataType();
20 if (str.CompareTo("ESD")) {
21 Error("AddAnalysisTaskTOFSpectraPbPb", "input data type is not \"ESD\"");
22 return NULL;
23 }
24
25 /* check MC truth event handler */
26 if (mcFlag) {
27 if (!mgr->GetMCtruthEventHandler()) {
28 Error("AddAnalysisTaskTOFSpectraPbPb", "cannot get MC truth event handler");
29 return NULL;
30 }
31 }
32
33 /* get common input data container */
34 AliAnalysisDataContainer *inputc = mgr->GetCommonInputContainer();
35 if (!inputc) {
36 Error("AddAnalysisTaskTOFSpectraPbPb", "cannot get common input container");
37 return NULL;
38 }
39
40 /* setup output event handler */
41 AliAODHandler *outputh = (AliAODHandler *)mgr->GetOutputEventHandler();
42 outputh->SetCreateNonStandardAOD();
43 outputh->SetOutputFileName("TOFSpectraPbPb.root");
44
45 /* create task and connect input/output */
46 AliAnalysisTaskTOFSpectraPbPb *task = new AliAnalysisTaskTOFSpectraPbPb();
47 mgr->ConnectInput(task, 0, inputc);
48
49 /* setup task */
50 task->SetMCFlag(mcFlag);
51 task->SetMCTuneFlag(mcTuneFlag);
52 task->SetPbPbFlag(pbpbFlag);
53 task->SelectCollisionCandidates(AliVEvent::kAny);
54 task->SetVertexSelectionFlag(kTRUE);
55 task->SetVertexCut(15.0);
56 task->SetRapidityCut(1.0);
57 /* setup TOF calib */
58 task->GetTOFcalib()->SetRemoveMeanT0(!mcFlag);
59 task->GetTOFcalib()->SetCalibrateTOFsignal(!mcFlag);
60 task->GetTOFcalib()->SetCorrectTExp(kFALSE);
61 /* setup resolution */
62 Double_t timeReso = 85.;
63 if (mcFlag && !mcTuneFlag) timeReso = 80.;
64 task->SetTimeResolution(timeReso);
65 task->GetESDpid()->GetTOFResponse().SetTimeResolution(timeReso);
66 task->GetTOFT0maker()->SetTimeResolution(timeReso);
67 /* setup track cuts */
68 AliESDtrackCuts *trackCuts = new AliESDtrackCuts;
69 trackCuts->SetMaxChi2PerClusterTPC(4.5);
70 trackCuts->SetAcceptKinkDaughters(kFALSE);
71 trackCuts->SetRequireTPCRefit(kTRUE);
72 trackCuts->SetRequireITSRefit(kTRUE);
73 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
74 AliESDtrackCuts::kAny);
75 trackCuts->SetMaxDCAToVertexZ(2);
76 trackCuts->SetDCAToVertex2D(kFALSE);
77 trackCuts->SetRequireSigmaToVertex(kFALSE);
78 trackCuts->SetMaxChi2PerClusterITS(36);
79 trackCuts->SetPtRange(0.15, 10.);
80 trackCuts->SetEtaRange(-0.9, 0.9);
81 task->SetTrackCuts(trackCuts);
82
83 /* return task */
84 return task;
85
86}