]>
Commit | Line | Data |
---|---|---|
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 | 13 | static AliRsnAnalysisTaskSEBase::EInputType inputType = AliRsnAnalysisTaskSEBase::kESDMC; |
14 | static const char* outputFileName = "rsn.root"; | |
15 | ||
8a6b5ac8 | 16 | static Bool_t useAutoHandler = kFALSE; |
cc781f3d | 17 | static Int_t bufferSize = 3000; |
18 | static Int_t pidArraySize = 2000; | |
19 | static Int_t nMixedEvents = 5; | |
20 | ||
21 | static Bool_t useRsnTrackCuts = kFALSE; | |
22 | static Double_t etaRange = 10.0; | |
23 | static Double_t rsnImpactParam = 3.0; | |
24 | static Double_t ptMin = 0.0; | |
25 | ||
26 | static Bool_t useESDTrackCuts = kFALSE; | |
27 | static Double_t cov11 = 2; | |
28 | static Double_t cov22 = 2; | |
29 | static Double_t cov33 = 0.5; | |
30 | static Double_t cov44 = 0.5; | |
31 | static Double_t cov55 = 2; | |
32 | static Double_t nSigmaToVertex = 4; | |
33 | static Double_t dcaToVertex = 3.0; | |
34 | static Double_t maxChi2PerClusterTPC = 3.5; | |
35 | static Bool_t requireTPCRefit = kTRUE; | |
36 | static Bool_t requireSigmaToVertex = kTRUE; | |
37 | static Bool_t acceptKinkDaughters = kFALSE; | |
38 | static Int_t minNClustersTPC = 50; | |
eae5d3bb | 39 | |
8a6b5ac8 | 40 | Int_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 | } |