]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/macros/train/AddAnalysisTaskRsnEffNoPID.C
Added a CORRFW analysis task for selection of single tracks with the same style as...
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / macros / train / AddAnalysisTaskRsnEffNoPID.C
CommitLineData
4fbb2459 1Bool_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}