1 AliTOFAnalysisTaskCalibTree *AddTOFAnalysisTaskCalibTree()
4 // check analysis manager
5 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 Error("AddTOFAnalysisTaskCalibTree", "cannot get analysis manager");
11 //check input event handler
12 if (!mgr->GetInputEventHandler()) {
13 Error("AddTOFAnalysisTaskCalibTree", "cannot get input event handler");
17 // check input data type
18 TString str = mgr->GetInputEventHandler()->GetDataType();
19 if (str.CompareTo("ESD")) {
20 Error("AddTOFAnalysisTaskCalibTree", "input data type is not \"ESD\"");
24 // get common input data container
25 AliAnalysisDataContainer *inputc = mgr->GetCommonInputContainer();
27 Error("AddTOFAnalysisTaskCalibTree", "cannot get common input container");
31 // setup output event handler
33 // old way: expecting to use AOD tree
34 // AliAODHandler *outputh = (AliAODHandler *)mgr->GetOutputEventHandler();
35 // outputh->SetCreateNonStandardAOD();
36 // outputh->SetOutputFileName("TOFcalibTree.root");
39 AliAnalysisDataContainer *coutput = mgr->CreateContainer(Form("aodTree"), TTree::Class(), AliAnalysisManager::kOutputContainer, "TOFcalibTree.root"); // tree
41 Error("AddTOFAnalysisTaskCalibTree", "cannot create output container");
45 // create task and connect input/output
46 AliTOFAnalysisTaskCalibTree *task = new AliTOFAnalysisTaskCalibTree();
47 mgr->ConnectInput(task, 0, inputc);
48 mgr->ConnectOutput(task, 1, coutput);
51 task->SetEventSelectionFlag(kFALSE);
52 task->SetVertexSelectionFlag(kTRUE);
53 task->SetVertexCut(50.0);
54 task->SetDiscardPileupEventFlag(kFALSE);
55 task->SetPrimaryDCASelectionFlag(kFALSE);
56 task->SetCalibrateTOFsignal(kTRUE);
57 task->SetComputeT0TOF(kTRUE);
58 task->SetUseT0TOF(kFALSE);
59 task->SetUseLHCClockPhase(kFALSE);
60 // task->SetSpecificStorageParOffline("alien://?folder=/alice/cern.ch/user/r/rpreghen/OCDB");
61 // task->SetSpecificStorageRunParams("alien://?folder=/alice/cern.ch/user/r/rpreghen/OCDB");
64 task->GetEventCuts()->SetAnalyzeMC(kFALSE);
67 task->GetTOFcalib()->SetRemoveMeanT0(kFALSE);
68 task->GetTOFcalib()->SetCalibrateTOFsignal(kTRUE);
69 task->GetTOFcalib()->SetCorrectTExp(kFALSE);
72 Double_t timeReso = 100.;
75 //task->GetESDpid()->GetTOFResponse().SetTimeResolution(timeReso);
78 task->GetTOFT0maker()->SetTimeResolution(timeReso);
81 AliESDtrackCuts *trackCuts = task->GetTrackCuts();
82 trackCuts->SetPtRange(0.15, 10.);
83 trackCuts->SetEtaRange(-1.0, 1.0);
84 trackCuts->SetRequireITSRefit(kTRUE);
85 trackCuts->SetMinNClustersITS(1);
86 // trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
87 trackCuts->SetRequireTPCRefit(kTRUE);
88 trackCuts->SetMinNClustersTPC(70);
89 trackCuts->SetMaxChi2PerClusterTPC(4.);
90 trackCuts->SetAcceptKinkDaughters(kFALSE);
91 trackCuts->SetMaxDCAToVertexZ(3.2);
92 trackCuts->SetMaxDCAToVertexXY(2.4);
93 trackCuts->SetDCAToVertex2D(kTRUE);