]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/macros/mini/ConfigTOFanalysisKStar.C
Update for centrality patch flag
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / mini / ConfigTOFanalysisKStar.C
CommitLineData
72439a68 1/***************************************************************************
2 fbellini@cern.ch - last modified on 06/08/2012
3
4// *** Configuration script for K*, anti-K* analysis with 2010 PbPb runs ***
5//
6// A configuration script for RSN package needs to define the followings:
7//
8// (1) decay tree of each resonance to be studied, which is needed to select
9// true pairs and to assign the right mass to all candidate daughters
10// (2) cuts at all levels: single daughters, tracks, events
11// (3) output objects: histograms or trees
12****************************************************************************/
13
14Bool_t ConfigTOFanalysisKStar
15(
16 AliRsnMiniAnalysisTask *task,
17 Bool_t isMC,
18 Bool_t isPP,
19 const char *suffix,
20 AliRsnCutSet *cutsPair,
21 Int_t aodFilterBit = 5,
22 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutPiCandidate = AliRsnCutSetDaughterParticle::kTOFpidKstarPbPb2010,
23 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutKaCandidate = AliRsnCutSetDaughterParticle::kTOFpidKstarPbPb2010,
24 Float_t nsigmaPi = 2.0,
25 Float_t nsigmaKa = 2.0,
26 Bool_t enableMonitor = kTRUE,
27 Bool_t IsMcTrueOnly = kFALSE,
eec5d1ed 28 Bool_t useMixLS = 0,
29 Int_t signedPdg = 313
72439a68 30)
31{
32 // manage suffix
33 if (strlen(suffix) > 0) suffix = Form("_%s", suffix);
34
35 // set daughter cuts
36 AliRsnCutSetDaughterParticle * cutSetQ;
37 AliRsnCutSetDaughterParticle * cutSetPi;
38 AliRsnCutSetDaughterParticle * cutSetK;
39
40 cutSetQ = new AliRsnCutSetDaughterParticle("cutQuality", AliRsnCutSetDaughterParticle::kQualityStd2010, AliPID::kPion, -1.0, aodFilterBit);
41 cutSetPi = new AliRsnCutSetDaughterParticle(Form("cutPionTOFPbPb2010_%2.1fsigma",nsigmaPi), cutPiCandidate, AliPID::kPion, nsigmaPi, aodFilterBit);
eec5d1ed 42 cutSetK = new AliRsnCutSetDaughterParticle(Form("cutKaonTOFPbPb2010_%2.1fsigma",nsigmaKa), cutKaCandidate, AliPID::kKaon, nsigmaKa, aodFilterBit);
72439a68 43
44 Int_t iCutQ = task->AddTrackCuts(cutSetQ);
45 Int_t iCutPi = task->AddTrackCuts(cutSetPi);
46 Int_t iCutK = task->AddTrackCuts(cutSetK);
47
48 if(enableMonitor){
49 Printf("======== Monitoring cut AliRsnCutSetDaughterParticle enabled");
da3e2cdb 50 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C");
72439a68 51 AddMonitorOutput(isMC, cutSetQ->GetMonitorOutput());
52 AddMonitorOutput(isMC, cutSetPi->GetMonitorOutput());
53 AddMonitorOutput(isMC, cutSetK->GetMonitorOutput());
54 }
55
56 // -- Values ------------------------------------------------------------------------------------
57 /* invariant mass */ Int_t imID = task->CreateValue(AliRsnMiniValue::kInvMass, kFALSE);
58 /* IM resolution */ Int_t resID = task->CreateValue(AliRsnMiniValue::kInvMassRes, kTRUE);
59 /* transv. momentum */ Int_t ptID = task->CreateValue(AliRsnMiniValue::kPt, kFALSE);
60 /* centrality */ Int_t centID = task->CreateValue(AliRsnMiniValue::kMult, kFALSE);
61 /* pseudorapidity */ Int_t etaID = task->CreateValue(AliRsnMiniValue::kEta, kFALSE);
62 /* rapidity */ Int_t yID = task->CreateValue(AliRsnMiniValue::kY, kFALSE);
63
64 // -- Create all needed outputs -----------------------------------------------------------------
65 // use an array for more compact writing, which are different on mixing and charges
66 // [0] = unlike
67 // [1] = mixing
68 // [2] = like ++
69 // [3] = like --
e042cc89 70 Bool_t use [12] = { !IsMcTrueOnly, !IsMcTrueOnly, !IsMcTrueOnly, !IsMcTrueOnly , !IsMcTrueOnly, !IsMcTrueOnly, isMC , isMC , isMC , isMC , useMixLS, useMixLS };
71 Bool_t useIM [12] = { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 };
72 TString name [12] = {"UnlikePM", "UnlikeMP", "MixingPM", "MixingMP", "LikePP", "LikeMM", "TruesPM", "TruesMP", "ResPM" , "ResMP", "MixingPP", "MixingMM" };
73 TString comp [12] = {"PAIR" , "PAIR" , "MIX" , "MIX" , "PAIR" , "PAIR" , "TRUE" , "TRUE" , "TRUE" , "TRUE", "MIX","MIX"};
72439a68 74 //TString output [10] = {"HIST" , "HIST" , "HIST" , "HIST" , "HIST" , "HIST" , "HIST" , "HIST" , "HIST" , "HIST" };
e042cc89 75 TString output [12] = {"SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE", "SPARSE" , "SPARSE"};
76 Char_t charge1 [12] = {'+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' , '+' , '-'};
77 Char_t charge2 [12] = {'-' , '+' , '-' , '+' , '+' , '-' , '-' , '+' , '-' , '+' ,'+' , '-' };
78 Int_t cutID1 [12] = { iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK, iCutK };
79 Int_t cutID2 [12] = { iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi, iCutPi, iCutPi };
72439a68 80
e042cc89 81 for (Int_t i = 0; i < 12; i++) {
72439a68 82 if (!use[i]) continue;
83 AliRsnMiniOutput *out = task->CreateOutput(Form("kstar_%s%s", name[i].Data(), suffix), output[i].Data(), comp[i].Data());
84 out->SetCutID(0, cutID1[i]);
85 out->SetCutID(1, cutID2[i]);
86 out->SetDaughter(0, AliRsnDaughter::kKaon);
87 out->SetDaughter(1, AliRsnDaughter::kPion);
88 out->SetCharge(0, charge1[i]);
89 out->SetCharge(1, charge2[i]);
eec5d1ed 90 out->SetMotherPDG(signedPdg);
72439a68 91 out->SetMotherMass(0.89594);
92 out->SetPairCuts(cutsPair);
93
94 // axis X: invmass (or resolution)
95 if (useIM[i])
96 out->AddAxis(imID, 90, 0.6, 1.5);
97 else
98 out->AddAxis(resID, 200, -0.02, 0.02);
99
100 // axis Y: transverse momentum
101 out->AddAxis(ptID, 100, 0.0, 10.0);
102
103 // axis Z: centrality-multiplicity
104 if (!isPP)
105 out->AddAxis(centID, 100, 0.0, 100.0);
106 else
107 out->AddAxis(centID, 400, 0.0, 400.0);
108
109 // axis W: pseudorapidity
110 // out->AddAxis(etaID, 20, -1.0, 1.0);
111 // axis J: rapidity
112 // out->AddAxis(yID, 10, -0.5, 0.5);
113
114 }
58a1c9a4 115
116 if (isMC){
117 // create output
118 AliRsnMiniOutput *outm = task->CreateOutput(Form("kstar_Mother%s", suffix), "SPARSE", "MOTHER");
58a1c9a4 119 outm->SetDaughter(0, AliRsnDaughter::kKaon);
120 outm->SetDaughter(1, AliRsnDaughter::kPion);
be71a08d 121 outm->SetMotherPDG(signedPdg);
58a1c9a4 122 outm->SetMotherMass(0.89594);
123 // pair cuts
124 outm->SetPairCuts(cutsPair);
125 // binnings
126 outm->AddAxis(imID, 90, 0.6, 1.5);
127 outm->AddAxis(ptID, 100, 0.0, 10.0);
be71a08d 128 if (!isPP){
58a1c9a4 129 outm->AddAxis(centID, 100, 0.0, 100.0);
be71a08d 130 } else {
58a1c9a4 131 outm->AddAxis(centID, 400, 0.0, 400.0);
be71a08d 132 }
58a1c9a4 133 }
72439a68 134 return kTRUE;
135}