1 Bool_t AddAnalysisTaskRsnEffNoPID
3 const char *outFile = "eff_nopid.root", // output file name
6 // retrieve analysis manager
7 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
10 AliRsnAnalysisEffSE *task = new AliRsnAnalysisEffSE("EffNoPID");
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);
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);
29 AliRsnFunctionAxis *axisPt = new AliRsnFunctionAxis(AliRsnFunctionAxis::kPairPt, 100, 0.0, 10.0);
30 AliRsnFunctionAxis *axisEta = new AliRsnFunctionAxis(AliRsnFunctionAxis::kPairEta, 10, -1.0, 1.0);
31 AliRsnFunctionAxis *axisMult = new AliRsnFunctionAxis(AliRsnFunctionAxis::kEventMult, 500, 0.0, 500.0);
32 task->AddAxis(axisMult);
33 task->AddAxis(axisPt);
34 task->AddAxis(axisEta);
36 // setup cuts for events (good primary vertex)
37 AliRsnCutPrimaryVertex *cutVertex = new AliRsnCutPrimaryVertex("cutVertex", 3);
38 AliRsnCutSet *cutSetEvent = new AliRsnCutSet("eventCuts");
39 cutSetEvent->AddCut(cutVertex);
40 cutSetEvent->SetCutScheme("cutVertex");
41 task->SetEventCuts(cutSetEvent);
43 // *** STEP 0 - All resonances
45 AliRsnCutMgr *cutMgr0 = new AliRsnCutMgr("step0", "");
46 AliRsnCutSet *cutSetTrack0 = new AliRsnCutSet("step0_tracks");
47 AliRsnCutSet *cutSetPair0 = new AliRsnCutSet("step0_pairs");
49 cutMgr0->SetCutSet(AliRsnCut::kParticle, cutSetTrack0);
50 cutMgr0->SetCutSet(AliRsnCut::kPair , cutSetPair0 );
52 task->AddStepMC(cutMgr0);
54 // *** STEP 1 - Acceptance
56 AliRsnCutMgr *cutMgr1 = new AliRsnCutMgr("step1", "");
57 AliRsnCutSet *cutSetTrack1 = new AliRsnCutSet("step1_tracks");
58 AliRsnCutSet *cutSetPair1 = new AliRsnCutSet("step1_pairs");
60 AliRsnCutStd *cutEta = new AliRsnCutStd("cutEta", AliRsnCutStd::kEta, -0.9, 0.9);
62 cutSetTrack1->AddCut(cutEta);
63 cutSetTrack1->SetCutScheme("cutEta");
65 cutMgr1->SetCutSet(AliRsnCut::kParticle, cutSetTrack1);
66 cutMgr1->SetCutSet(AliRsnCut::kPair , cutSetPair1 );
68 task->AddStepMC(cutMgr1);
70 // *** STEP 2 - Reconstruction & quality
72 AliRsnCutMgr *cutMgr2 = new AliRsnCutMgr("step2", "");
73 AliRsnCutSet *cutSetTrack2 = new AliRsnCutSet("step2_tracks");
74 AliRsnCutSet *cutSetPair2 = new AliRsnCutSet("step2_pairs");
77 // -- primary track quality
78 AliRsnCutESDPrimary *cutESDPrimary = new AliRsnCutESDPrimary("cutESDPrimary");
79 cutESDPrimary->GetCuts()->SetMaxCovDiagonalElements(2.0, 2.0, 0.5, 0.5, 2.0);
80 cutESDPrimary->GetCuts()->SetRequireSigmaToVertex(kTRUE);
81 cutESDPrimary->GetCuts()->SetMaxNsigmaToVertex(4.0);
82 cutESDPrimary->GetCuts()->SetRequireTPCRefit(kTRUE);
83 cutESDPrimary->GetCuts()->SetAcceptKinkDaughters(kFALSE);
84 cutESDPrimary->GetCuts()->SetMinNClustersTPC(50);
85 cutESDPrimary->GetCuts()->SetMaxChi2PerClusterTPC(3.5);
87 cutSetTrack2->AddCut(cutESDPrimary);
88 cutSetTrack2->SetCutScheme("cutESDPrimary");
90 cutMgr2->SetCutSet(AliRsnCut::kParticle, cutSetTrack2);
91 cutMgr2->SetCutSet(AliRsnCut::kPair , cutSetPair2 );
93 task->AddStepESD(cutMgr2);
95 // *** STEP 3 - Bethe-Bloch cut (0.2)
97 AliRsnCutMgr *cutMgr3 = new AliRsnCutMgr("step3", "");
98 AliRsnCutSet *cutSetTrack3 = new AliRsnCutSet("step3_tracks");
99 AliRsnCutSet *cutSetPair3 = new AliRsnCutSet("step3_pairs");
102 // -- Bethe-Bloch with kaon mass hypothesis
103 AliRsnCutBetheBloch *cutKaonBB = new AliRsnCutBetheBloch("cutKaonBB", 0.2, AliPID::kKaon);
104 cutKaonBB->SetCalibConstant(0, 0.76176e-1);
105 cutKaonBB->SetCalibConstant(1, 10.632);
106 cutKaonBB->SetCalibConstant(2, 0.13279e-4);
107 cutKaonBB->SetCalibConstant(3, 1.8631);
108 cutKaonBB->SetCalibConstant(4, 1.9479);
110 cutSetTrack3->AddCut(cutKaonBB);
111 cutSetTrack3->SetCutScheme("cutKaonBB");
112 //AliLog::SetClassDebugLevel("AliRsnCut", AliLog::kDebug+3);
113 //AliLog::SetClassDebugLevel("AliRsnCutStd", AliLog::kDebug+3);
114 //AliLog::SetClassDebugLevel("AliRsnCutBetheBloch", AliLog::kDebug+3);
116 cutMgr3->SetCutSet(AliRsnCut::kParticle, cutSetTrack3);
117 cutMgr3->SetCutSet(AliRsnCut::kPair , cutSetPair3 );
119 task->AddStepESD(cutMgr3);
121 // add the task to manager
124 // connect input container according to source choice
125 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
127 // initialize and connect container for the output
128 AliAnalysisDataContainer *outputInfo = mgr->CreateContainer("EffNoPIDInfo", TList::Class(), AliAnalysisManager::kOutputContainer, "info.root");
129 AliAnalysisDataContainer *out = mgr->CreateContainer("EFF_NOPID", TList::Class(), AliAnalysisManager::kOutputContainer, outFile);
130 mgr->ConnectOutput(task, 1, outputInfo);
131 mgr->ConnectOutput(task, 2, out);