]>
Commit | Line | Data |
---|---|---|
4fbb2459 | 1 | Bool_t AddAnalysisTaskRsnEffNoPID |
2 | ( | |
3 | const char *outFile = "eff_nopid.root", // output file name | |
4 | ) | |
5 | { | |
6 | // retrieve analysis manager | |
7 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
8 | ||
9 | // create task | |
10 | AliRsnAnalysisEffSE *task = new AliRsnAnalysisEffSE("EffNoPID"); | |
11 | ||
12 | // set prior probabilities for PID | |
13 | task->SetPriorProbability(AliPID::kElectron, 0.02); | |
14 | task->SetPriorProbability(AliPID::kMuon, 0.02); | |
15 | task->SetPriorProbability(AliPID::kPion, 0.83); | |
16 | task->SetPriorProbability(AliPID::kKaon, 0.07); | |
17 | task->SetPriorProbability(AliPID::kProton, 0.06); | |
18 | task->DumpPriors(); | |
19 | ||
20 | // pair definition | |
21 | AliRsnPairDef *pairDef1 = new AliRsnPairDef('+', AliPID::kKaon, '-', AliPID::kKaon, 333); | |
22 | AliRsnPairDef *pairDef2 = new AliRsnPairDef('-', AliPID::kKaon, '+', AliPID::kPion, 313); | |
23 | AliRsnPairDef *pairDef3 = new AliRsnPairDef('+', AliPID::kKaon, '-', AliPID::kPion, 313); | |
24 | task->AddPairDef(pairDef1); | |
25 | task->AddPairDef(pairDef2); | |
26 | task->AddPairDef(pairDef3); | |
27 | ||
28 | // axis definition | |
eca224a3 | 29 | //AliRsnFunctionAxis *axisIM = new AliRsnFunctionAxis(AliRsnFunctionAxis::kPairInvMass, 1000, 0.0, 2.0); |
30 | AliRsnFunctionAxis *axisPt = new AliRsnFunctionAxis(AliRsnFunctionAxis::kPairPt, 100, 0.0, 10.0); | |
31 | AliRsnFunctionAxis *axisEta = new AliRsnFunctionAxis(AliRsnFunctionAxis::kPairEta, 10, -1.0, 1.0); | |
32 | AliRsnFunctionAxis *axisMult = new AliRsnFunctionAxis(AliRsnFunctionAxis::kEventMult, 8, 0.0, 200.0); | |
33 | //task->AddAxis(axisIM); | |
4fbb2459 | 34 | task->AddAxis(axisMult); |
35 | task->AddAxis(axisPt); | |
36 | task->AddAxis(axisEta); | |
37 | ||
38 | // setup cuts for events (good primary vertex) | |
39 | AliRsnCutPrimaryVertex *cutVertex = new AliRsnCutPrimaryVertex("cutVertex", 3); | |
40 | AliRsnCutSet *cutSetEvent = new AliRsnCutSet("eventCuts"); | |
41 | cutSetEvent->AddCut(cutVertex); | |
42 | cutSetEvent->SetCutScheme("cutVertex"); | |
43 | task->SetEventCuts(cutSetEvent); | |
44 | ||
45 | // *** STEP 0 - All resonances | |
46 | ||
47 | AliRsnCutMgr *cutMgr0 = new AliRsnCutMgr("step0", ""); | |
48 | AliRsnCutSet *cutSetTrack0 = new AliRsnCutSet("step0_tracks"); | |
49 | AliRsnCutSet *cutSetPair0 = new AliRsnCutSet("step0_pairs"); | |
50 | ||
51 | cutMgr0->SetCutSet(AliRsnCut::kParticle, cutSetTrack0); | |
52 | cutMgr0->SetCutSet(AliRsnCut::kPair , cutSetPair0 ); | |
53 | ||
54 | task->AddStepMC(cutMgr0); | |
55 | ||
56 | // *** STEP 1 - Acceptance | |
57 | ||
58 | AliRsnCutMgr *cutMgr1 = new AliRsnCutMgr("step1", ""); | |
59 | AliRsnCutSet *cutSetTrack1 = new AliRsnCutSet("step1_tracks"); | |
60 | AliRsnCutSet *cutSetPair1 = new AliRsnCutSet("step1_pairs"); | |
61 | ||
62 | AliRsnCutStd *cutEta = new AliRsnCutStd("cutEta", AliRsnCutStd::kEta, -0.9, 0.9); | |
63 | ||
64 | cutSetTrack1->AddCut(cutEta); | |
65 | cutSetTrack1->SetCutScheme("cutEta"); | |
66 | ||
67 | cutMgr1->SetCutSet(AliRsnCut::kParticle, cutSetTrack1); | |
68 | cutMgr1->SetCutSet(AliRsnCut::kPair , cutSetPair1 ); | |
69 | ||
70 | task->AddStepMC(cutMgr1); | |
71 | ||
72 | // *** STEP 2 - Reconstruction & quality | |
73 | ||
74 | AliRsnCutMgr *cutMgr2 = new AliRsnCutMgr("step2", ""); | |
75 | AliRsnCutSet *cutSetTrack2 = new AliRsnCutSet("step2_tracks"); | |
76 | AliRsnCutSet *cutSetPair2 = new AliRsnCutSet("step2_pairs"); | |
77 | ||
78 | // cuts for tracks: | |
79 | // -- primary track quality | |
80 | AliRsnCutESDPrimary *cutESDPrimary = new AliRsnCutESDPrimary("cutESDPrimary"); | |
81 | cutESDPrimary->GetCuts()->SetMaxCovDiagonalElements(2.0, 2.0, 0.5, 0.5, 2.0); | |
82 | cutESDPrimary->GetCuts()->SetRequireSigmaToVertex(kTRUE); | |
83 | cutESDPrimary->GetCuts()->SetMaxNsigmaToVertex(4.0); | |
84 | cutESDPrimary->GetCuts()->SetRequireTPCRefit(kTRUE); | |
85 | cutESDPrimary->GetCuts()->SetAcceptKinkDaughters(kFALSE); | |
86 | cutESDPrimary->GetCuts()->SetMinNClustersTPC(50); | |
87 | cutESDPrimary->GetCuts()->SetMaxChi2PerClusterTPC(3.5); | |
88 | ||
89 | cutSetTrack2->AddCut(cutESDPrimary); | |
90 | cutSetTrack2->SetCutScheme("cutESDPrimary"); | |
91 | ||
92 | cutMgr2->SetCutSet(AliRsnCut::kParticle, cutSetTrack2); | |
93 | cutMgr2->SetCutSet(AliRsnCut::kPair , cutSetPair2 ); | |
94 | ||
95 | task->AddStepESD(cutMgr2); | |
96 | ||
97 | // *** STEP 3 - Bethe-Bloch cut (0.2) | |
98 | ||
99 | AliRsnCutMgr *cutMgr3 = new AliRsnCutMgr("step3", ""); | |
100 | AliRsnCutSet *cutSetTrack3 = new AliRsnCutSet("step3_tracks"); | |
101 | AliRsnCutSet *cutSetPair3 = new AliRsnCutSet("step3_pairs"); | |
102 | ||
103 | // cuts for tracks: | |
104 | // -- Bethe-Bloch with kaon mass hypothesis | |
105 | AliRsnCutBetheBloch *cutKaonBB = new AliRsnCutBetheBloch("cutKaonBB", 0.2, AliPID::kKaon); | |
106 | cutKaonBB->SetCalibConstant(0, 0.76176e-1); | |
107 | cutKaonBB->SetCalibConstant(1, 10.632); | |
108 | cutKaonBB->SetCalibConstant(2, 0.13279e-4); | |
109 | cutKaonBB->SetCalibConstant(3, 1.8631); | |
110 | cutKaonBB->SetCalibConstant(4, 1.9479); | |
111 | ||
112 | cutSetTrack3->AddCut(cutKaonBB); | |
113 | cutSetTrack3->SetCutScheme("cutKaonBB"); | |
114 | //AliLog::SetClassDebugLevel("AliRsnCut", AliLog::kDebug+3); | |
115 | //AliLog::SetClassDebugLevel("AliRsnCutStd", AliLog::kDebug+3); | |
116 | //AliLog::SetClassDebugLevel("AliRsnCutBetheBloch", AliLog::kDebug+3); | |
117 | ||
118 | cutMgr3->SetCutSet(AliRsnCut::kParticle, cutSetTrack3); | |
119 | cutMgr3->SetCutSet(AliRsnCut::kPair , cutSetPair3 ); | |
120 | ||
121 | task->AddStepESD(cutMgr3); | |
122 | ||
123 | // add the task to manager | |
124 | mgr->AddTask(task); | |
125 | ||
126 | // connect input container according to source choice | |
127 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
128 | ||
129 | // initialize and connect container for the output | |
eca224a3 | 130 | AliAnalysisDataContainer *outputInfo = mgr->CreateContainer("EffNoPIDInfo", TList::Class(), AliAnalysisManager::kOutputContainer, "info.root"); |
131 | AliAnalysisDataContainer *out = mgr->CreateContainer("EFF_NOPID", TList::Class(), AliAnalysisManager::kOutputContainer, outFile); | |
4fbb2459 | 132 | mgr->ConnectOutput(task, 1, outputInfo); |
133 | mgr->ConnectOutput(task, 2, out); | |
134 | ||
135 | return kTRUE; | |
136 | } |