]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/macros/mini/AddTaskKStar_pAPileUp.C
Added trigger selection for ESD analysis in mini task + added computation of leadin...
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / mini / AddTaskKStar_pAPileUp.C
CommitLineData
f37a3937 1/***************************************************************************
2 fbellini@cern.ch - created and last modified on 20/09/2012
3//
4//Lauches KStar analysis with rsn mini package
5//Allows basic configuration of pile-up check
6//
7****************************************************************************/
8
9AliRsnMiniAnalysisTask * AddTaskKStar_pAPileUp
10(
11 Bool_t isMC,
12 Bool_t isPP,
13 TString outNameSuffix = "tof2s_pileup",
4fb0dfa3 14 Bool_t rmFirstEvtChunk = kTRUE,
f37a3937 15 Bool_t rejectPileUp = kTRUE,
4fb0dfa3 16 Int_t MinPlpContribSPD = 5,
f37a3937 17 Bool_t useMVPileUpSelection = kFALSE,
18 Int_t MinPlpContribMV = 5,
19 Int_t aodFilterBit = 5,
20 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutPiCandidate = AliRsnCutSetDaughterParticle::kTOFpidKstarPPB2011,
21 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutKaCandidate = AliRsnCutSetDaughterParticle::kTOFpidKstarPPB2011,
22 Float_t nsigmaPi = 2.0,
23 Float_t nsigmaKa = 2.0,
24 Bool_t enableMonitor = kTRUE,
25 Bool_t IsMcTrueOnly = kFALSE,
26 Double_t minYlab = -0.465,
27 Double_t maxYlab = 0.035,
28 Int_t nmix = 10,
29 Float_t maxDiffVzMix = 1.0,
30 Float_t maxDiffMultMix = 10.0,
31 Int_t signedPdg = 313,
32 TString monitorOpt = "",
33 Bool_t useMixLS = 0,
34 AliRsnMiniValue::EType yaxisvar = AliRsnMiniValue::kPt
35 )
36{
37 //
38 // -- INITIALIZATION ----------------------------------------------------------------------------
39 // retrieve analysis manager
40 //
41
42 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
43 if (!mgr) {
44 ::Error("AddAnalysisTaskTOFKStar", "No analysis manager to connect to.");
45 return NULL;
46 }
47
48 // create the task and configure
49 TString taskName = Form("TOFKStar%s%s_%i%i", (isPP? "pp" : "PbPb"), (isMC ? "MC" : "Data"), (Int_t)cutPiCandidate,(Int_t)cutKaCandidate );
50 AliRsnMiniAnalysisTask *task = new AliRsnMiniAnalysisTask(taskName.Data(), isMC);
4fb0dfa3 51 //task->UseESDTriggerMask(AliVEvent::kINT7); //ESD
52 task->SelectCollisionCandidates(AliVEvent::kINT7); //AOD
53
f37a3937 54 if (isPP)
55 task->UseMultiplicity("QUALITY");
56 else
57 task->UseCentrality("V0A");
58 // set event mixing options
59 task->UseContinuousMix();
60 //task->UseBinnedMix();
61 task->SetNMix(nmix);
62 task->SetMaxDiffVz(maxDiffVzMix);
63 task->SetMaxDiffMult(maxDiffMultMix);
64 ::Info("AddAnalysisTaskTOFKStar", Form("Event mixing configuration: \n events to mix = %i \n max diff. vtxZ = cm %5.3f \n max diff multi = %5.3f", nmix, maxDiffVzMix, maxDiffMultMix));
65
66 mgr->AddTask(task);
67
68 //
69 // -- EVENT CUTS (same for all configs) ---------------------------------------------------------
70 //
71 // cut on primary vertex:
72 // - 2nd argument --> |Vz| range
73 // - 3rd argument --> minimum required number of contributors
74 // - 4th argument --> tells if TPC stand-alone vertexes must be accepted
75 AliRsnCutPrimaryVertex *cutVertex = new AliRsnCutPrimaryVertex("cutVertex", 10.0, 0, kFALSE);
76 //if (isPP) cutVertex->SetCheckPileUp(kTRUE); // set the check for pileup
77
78 //set check for pileup in 2013
79 AliRsnCutEventUtils *cutEventUtils = new AliRsnCutEventUtils("cutEventUtils", rmFirstEvtChunk, rejectPileUp);
80 if (useMVPileUpSelection){
81 cutEventUtils->SetUseMVPlpSelection(useMVPileUpSelection);
82 cutEventUtils->SetMinPlpContribMV(MinPlpContribMV);
83 cutEventUtils->SetMinPlpContribSPD(MinPlpContribSPD);
84 ::Info("AddAnalysisTaskTOFKStar", Form("Multiple-vtx Pile-up rejection settings: MinPlpContribMV = %i, MinPlpContribSPD = %i", MinPlpContribMV, MinPlpContribSPD));
85 } else {
86 cutEventUtils->SetMinPlpContribSPD(MinPlpContribSPD);
87 ::Info("AddAnalysisTaskTOFKStar", Form("SPD Pile-up rejection settings: MinPlpContribSPD = %i", MinPlpContribSPD));
88 }
89 ::Info("AddAnalysisTaskTOFKStar", Form(":::::::::::::::::: Pile-up rejection mode: %s", (rejectPileUp?"ON":"OFF")));
90 ::Info("AddAnalysisTaskTOFKStar", Form("::::::::::::: Remove first event in chunk: %s", (rmFirstEvtChunk?"ON":"OFF")));
91
92 // define and fill cut set for event cut
93 AliRsnCutSet *eventCuts = new AliRsnCutSet("eventCuts", AliRsnTarget::kEvent);
94 eventCuts->AddCut(cutVertex);
95 eventCuts->AddCut(cutEventUtils);
96 eventCuts->SetCutScheme(Form("%s&%s", cutEventUtils->GetName(), cutVertex->GetName()));
97 // set cuts in task
98 task->SetEventCuts(eventCuts);
99
100 //
101 // -- EVENT-ONLY COMPUTATIONS -------------------------------------------------------------------
102 //
103 //vertex
104 Int_t vtxID = task->CreateValue(AliRsnMiniValue::kVz, kFALSE);
105 AliRsnMiniOutput *outVtx = task->CreateOutput("eventVtx", "HIST", "EVENT");
106 outVtx->AddAxis(vtxID, 400, -20.0, 20.0);
107
108 //multiplicity or centrality
109 Int_t multID = task->CreateValue(AliRsnMiniValue::kMult, kFALSE);
110 AliRsnMiniOutput *outMult = task->CreateOutput("eventMult", "HIST", "EVENT");
111 if (isPP)
112 outMult->AddAxis(multID, 400, 0.0, 400.0);
113 else
114 outMult->AddAxis(multID, 100, 0.0, 100.0);
115
116 TH2F* hvz=new TH2F("hVzVsCent","",100,0.,100., 220,-11.,11.);
117 task->SetEventQAHist("vz",hvz);//plugs this histogram into the fHAEventVz data member
118
119 TH2F* hmc=new TH2F("MultiVsCent","",100,0.,100.,4000,0.,4000.);
120 hmc->GetYaxis()->SetTitle("QUALITY");
121 task->SetEventQAHist("multicent",hmc);//plugs this histogram into the fHAEventMultiCent data member
122
123 //
124 // -- PAIR CUTS (common to all resonances) ------------------------------------------------------
125 //
126 AliRsnCutMiniPair *cutY = new AliRsnCutMiniPair("cutRapidity", AliRsnCutMiniPair::kRapidityRange);
127 cutY->SetRangeD(minYlab, maxYlab);
128
129 AliRsnCutSet *cutsPair = new AliRsnCutSet("pairCuts", AliRsnTarget::kMother);
130 cutsPair->AddCut(cutY);
131 cutsPair->SetCutScheme(cutY->GetName());
132
133 //
134 // -- CONFIG ANALYSIS --------------------------------------------------------------------------
135 //
136 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/RESONANCES/macros/mini/ConfigTOFanalysisKStar.C");
137 if (!ConfigTOFanalysisKStar(task, isMC, isPP, "", cutsPair, aodFilterBit, cutPiCandidate, cutKaCandidate, nsigmaPi, nsigmaKa, enableMonitor, isMC&IsMcTrueOnly, useMixLS, signedPdg, monitorOpt.Data(), yaxisvar)) return 0x0;
138
139
140 //
141 // -- CONTAINERS --------------------------------------------------------------------------------
142 //
143 TString outputFileName = AliAnalysisManager::GetCommonFileName();
144 // outputFileName += ":Rsn";
145 Printf("AddAnalysisTaskTOFKStar - Set OutputFileName : \n %s\n", outputFileName.Data() );
146
147 AliAnalysisDataContainer *output = mgr->CreateContainer(Form("RsnOut_%s",outNameSuffix.Data()),
148 TList::Class(),
149 AliAnalysisManager::kOutputContainer,
150 outputFileName);
151 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
152 mgr->ConnectOutput(task, 1, output);
153
154 return task;
155}