]> git.uio.no Git - u/mrichter/AliRoot.git/blob - 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
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
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);
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
130   AliAnalysisDataContainer *outputInfo = mgr->CreateContainer("EffNoPIDInfo", TList::Class(), AliAnalysisManager::kOutputContainer, "info.root");
131   AliAnalysisDataContainer *out = mgr->CreateContainer("EFF_NOPID", TList::Class(), AliAnalysisManager::kOutputContainer, outFile);
132   mgr->ConnectOutput(task, 1, outputInfo);
133   mgr->ConnectOutput(task, 2, out);
134
135   return kTRUE;
136 }