]>
Commit | Line | Data |
---|---|---|
b5d9a24d | 1 | AliTOFAnalysisTaskCalibTree *AddTOFAnalysisTaskCalibTree() { |
2 | ||
3 | /* check analysis manager */ | |
4 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
5 | if (!mgr) { | |
6 | Error("AddAnalysisTaskEventTime", "cannot get analysis manager"); | |
7 | return NULL; | |
8 | } | |
9 | ||
10 | /* check input event handler */ | |
11 | if (!mgr->GetInputEventHandler()) { | |
12 | Error("AddAnalysisTaskEventTime", "cannot get input event handler"); | |
13 | return NULL; | |
14 | } | |
15 | ||
16 | /* check input data type */ | |
17 | TString str = mgr->GetInputEventHandler()->GetDataType(); | |
18 | if (str.CompareTo("ESD")) { | |
19 | Error("AddAnalysisTaskEventTime", "input data type is not \"ESD\""); | |
20 | return NULL; | |
21 | } | |
22 | ||
23 | /* get common input data container */ | |
24 | AliAnalysisDataContainer *inputc = mgr->GetCommonInputContainer(); | |
25 | if (!inputc) { | |
26 | Error("AddAnalysisTaskEventTime", "cannot get common input container"); | |
27 | return NULL; | |
28 | } | |
29 | ||
30 | /* create output data container */ | |
31 | // setup output event handler | |
32 | AliAnalysisDataContainer *coutput = mgr->CreateContainer(Form("aodTree"), TTree::Class(), AliAnalysisManager::kOutputContainer, "TOFcalibTree.root"); // tree | |
33 | if (!coutput) { | |
34 | Error("AddTOFAnalysisTaskCalibTree", "cannot create output container"); | |
35 | return NULL; | |
36 | } | |
37 | ||
38 | /* create task and connect input/output */ | |
39 | AliTOFAnalysisTaskCalibTree *task = new AliTOFAnalysisTaskCalibTree(); | |
40 | Printf("After initializing the TOF task: task = %p", task); | |
41 | // adding the task | |
42 | mgr->AddTask(task); | |
43 | ||
44 | mgr->ConnectInput(task, 0, inputc); | |
45 | mgr->ConnectOutput(task, 1, coutput); | |
46 | ||
47 | // setup task | |
48 | task->SetEventSelectionFlag(kFALSE); | |
49 | task->SetVertexSelectionFlag(kTRUE); | |
50 | task->SetVertexCut(50.0); | |
51 | task->SetDiscardPileupEventFlag(kFALSE); | |
52 | task->SetPrimaryDCASelectionFlag(kFALSE); | |
53 | task->SetCalibrateTOFsignal(kTRUE); | |
54 | task->SetComputeT0TOF(kTRUE); | |
55 | task->SetUseT0TOF(kFALSE); | |
56 | task->SetUseLHCClockPhase(kFALSE); | |
57 | // task->SetSpecificStorageParOffline("alien://?folder=/alice/cern.ch/user/r/rpreghen/OCDB"); | |
58 | // task->SetSpecificStorageRunParams("alien://?folder=/alice/cern.ch/user/r/rpreghen/OCDB"); | |
59 | ||
60 | // setup event cuts | |
61 | task->GetEventCuts()->SetAnalyzeMC(kFALSE); | |
62 | ||
63 | // setup TOF calib | |
64 | task->GetTOFcalib()->SetRemoveMeanT0(kFALSE); | |
65 | task->GetTOFcalib()->SetCalibrateTOFsignal(kTRUE); | |
66 | task->GetTOFcalib()->SetCorrectTExp(kFALSE); | |
67 | ||
68 | //setup resolution | |
69 | Double_t timeReso = 100.; | |
70 | ||
71 | // setup TOF response | |
72 | //task->GetESDpid()->GetTOFResponse().SetTimeResolution(timeReso); | |
73 | ||
74 | // setup TOF-T0 maker | |
75 | task->GetTOFT0maker()->SetTimeResolution(timeReso); | |
76 | ||
77 | // setup track cuts | |
78 | AliESDtrackCuts *trackCuts = task->GetTrackCuts(); | |
79 | trackCuts->SetPtRange(0.15, 10.); | |
80 | trackCuts->SetEtaRange(-1.0, 1.0); | |
81 | trackCuts->SetRequireITSRefit(kTRUE); | |
82 | trackCuts->SetMinNClustersITS(1); | |
83 | // trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny); | |
84 | trackCuts->SetRequireTPCRefit(kTRUE); | |
85 | trackCuts->SetMinNClustersTPC(70); | |
86 | trackCuts->SetMaxChi2PerClusterTPC(4.); | |
87 | trackCuts->SetAcceptKinkDaughters(kFALSE); | |
88 | trackCuts->SetMaxDCAToVertexZ(3.2); | |
89 | trackCuts->SetMaxDCAToVertexXY(2.4); | |
90 | trackCuts->SetDCAToVertex2D(kTRUE); | |
91 | ||
92 | /* return task */ | |
93 | return task; | |
94 | ||
95 | } |