]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/macros/AddRsnAnalysisTask.C
Completion of previous checkin
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / macros / AddRsnAnalysisTask.C
CommitLineData
eae5d3bb 1//=============================================================================
2//
3// *** AliRsnAnalysisTask.C ***
4//
5// This macro initialize a complete AnalysisTask object for resonances.
6// All the possibilities are made available through enumerations,
7// with the same style of the Config.C file used for simulation.
8//
9//=============================================================================
10
11
12
cc781f3d 13static AliRsnAnalysisTaskSEBase::EInputType inputType = AliRsnAnalysisTaskSEBase::kESDMC;
14static const char* outputFileName = "rsn.root";
15
8a6b5ac8 16static Bool_t useAutoHandler = kFALSE;
cc781f3d 17static Int_t bufferSize = 3000;
18static Int_t pidArraySize = 2000;
19static Int_t nMixedEvents = 5;
20
21static Bool_t useRsnTrackCuts = kFALSE;
22static Double_t etaRange = 10.0;
23static Double_t rsnImpactParam = 3.0;
24static Double_t ptMin = 0.0;
25
26static Bool_t useESDTrackCuts = kFALSE;
27static Double_t cov11 = 2;
28static Double_t cov22 = 2;
29static Double_t cov33 = 0.5;
30static Double_t cov44 = 0.5;
31static Double_t cov55 = 2;
32static Double_t nSigmaToVertex = 4;
33static Double_t dcaToVertex = 3.0;
34static Double_t maxChi2PerClusterTPC = 3.5;
35static Bool_t requireTPCRefit = kTRUE;
36static Bool_t requireSigmaToVertex = kTRUE;
37static Bool_t acceptKinkDaughters = kFALSE;
38static Int_t minNClustersTPC = 50;
eae5d3bb 39
8a6b5ac8 40Int_t AddRsnAnalysisTask()
eae5d3bb 41{
42//
43// Core method of the macro.
44// Creates and initialized the analysis task object and inserts it
45// into the AnalysisManager object passed as argument.
46//
47
48 // initialize task objects and retrieve managers for PID and reading
49 AliRsnAnalysisSE *task = new AliRsnAnalysisSE("RsnAnalysisTask", bufferSize);
50 AliRsnReader *reader = task->GetReader();
51 AliRsnPID *pid = task->GetPID();
52
53 // set the input type
8a6b5ac8 54 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
eae5d3bb 55 task->SetInputType(inputType, mgr, useAutoHandler);
56
57 // define event-mixing cuts
58 AliRsnCut *cutVz = new AliRsnCut("cutVz" , "", AliRsnCut::kVzDifference, 0.0, 0.5);
59 AliRsnCut *cutMult = new AliRsnCut("cutMult", "", AliRsnCut::kMultiplicityDifference, 0, 10);
60 AliRsnCutSet *cutMixing = new AliRsnCutSet("cutMixing");
61 cutMixing->AddCut(cutVz);
62 cutMixing->AddCut(cutMult);
63 cutMixing->SetCutScheme("cutVz&cutMult");
64 task->SetMixingCut(cutMixing);
65 task->SetMixingNum(nMixedEvents);
66
67 // ESD settings
8a6b5ac8 68 reader->SetCheckSplit(kFALSE);
69 reader->SetPIDArraysSize(pidArraySize);
eae5d3bb 70 pid->SetPriorProbability(AliRsnPID::kElectron, 0.02);
71 pid->SetPriorProbability(AliRsnPID::kMuon, 0.02);
72 pid->SetPriorProbability(AliRsnPID::kPion, 0.83);
73 pid->SetPriorProbability(AliRsnPID::kKaon, 0.07);
74 pid->SetPriorProbability(AliRsnPID::kProton, 0.06);
75 pid->SetMaxPt(100.0);
76 pid->SetMinProb(0.0);
77
78 // default cuts for ITS+TPC
79 AliESDtrackCuts *esdCuts = reader->GetESDTrackCuts();
80 esdCuts->SetMaxCovDiagonalElements(cov11, cov22, cov33, cov44, cov55);
81 esdCuts->SetRequireSigmaToVertex(requireSigmaToVertex);
82 if (requireSigmaToVertex) esdCuts->SetMaxNsigmaToVertex(nSigmaToVertex);
83 else
84 {
85 esdCuts->SetDCAToVertexZ(dcaToVertex);
86 esdCuts->SetDCAToVertexXY(dcaToVertex);
87 }
88 esdCuts->SetRequireTPCRefit(requireTPCRefit);
89 esdCuts->SetAcceptKingDaughters(acceptKinkDaughters);
90 esdCuts->SetMinNClustersTPC(minNClustersTPC);
91 esdCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
92 reader->SetUseESDTrackCuts(useESDTrackCuts);
93
94 // default cuts from package for tracks
95 AliRsnCut *cutPt = new AliRsnCut("cutPt", "", AliRsnCut::kTransMomentumMC, ptMin, 1000000.0);
96 AliRsnCut *cutEta = new AliRsnCut("cutEtaMC", "", AliRsnCut::kEtaMC, -etaRange, etaRange);
97 AliRsnCut *cutDr = new AliRsnCut("cutDr", "", AliRsnCut::kRadialImpactParam, 0.0, rsnImpactParam);
98 AliRsnCutSet *rsnCuts = reader->GetRsnTrackCuts();
99 rsnCuts->AddCut(cutPt);
100 rsnCuts->AddCut(cutEta);
101 rsnCuts->AddCut(cutDr);
102 rsnCuts->SetCutScheme("cutPt&cutEta&cutDr");
103 reader->SetUseRsnTrackCuts(useRsnTrackCuts);
104
105 // add configs for all impact parameters
cc781f3d 106 task->AddPairMgrFromConfig("CreatePairsPhi.C");
eae5d3bb 107
108 // initialize containers
8a546c82 109 AliAnalysisDataContainer *input = mgr->GetCommonInputContainer();
eae5d3bb 110 AliAnalysisDataContainer *dummy = mgr->CreateContainer("dummy1", TTree::Class(), AliAnalysisManager::kOutputContainer, "default");
111 AliAnalysisDataContainer *out = mgr->CreateContainer("RSN", TList::Class(), AliAnalysisManager::kOutputContainer, outputFileName);
112
113 // connect containers to AnalysisManager
114 mgr->AddTask(task);
115 mgr->ConnectInput(task, 0, input);
116 mgr->ConnectOutput(task, 0, dummy);
117 mgr->ConnectOutput(task, 1, out);
118}