]>
Commit | Line | Data |
---|---|---|
59e49925 | 1 | AliAnalysisTaskTOFSpectraPbPb * |
2 | AddAnalysisTaskTOFSpectraPbPb(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 | } |