]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/macros/mini/ConfigLambdaStarPbPb.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / mini / ConfigLambdaStarPbPb.C
CommitLineData
e455cba6 1/***************************************************************************
2
3/
4// A configuration script for RSN package needs to define the followings:
5//
6// (1) decay tree of each resonance to be studied, which is needed to select
7// true pairs and to assign the right mass to all candidate daughters
8// (2) cuts at all levels: single daughters, tracks, events
9// (3) output objects: histograms or trees
10****************************************************************************/
11
12Bool_t ConfigLambdaStarPbPb
13(
14 AliRsnMiniAnalysisTask *task,
15 Bool_t isMC ,
16 Bool_t isPP ,
17 const char *suffix,
18 AliRsnCutSet *cutsPair,
19 Int_t aodFilterBit = 5,
e455cba6 20 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutPrCandidate = AliRsnCutSetDaughterParticle::kTPCTOFpidKstarPP2010,
21 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutKaCandidate = AliRsnCutSetDaughterParticle::kTPCTOFpidKstarPP2010,
e455cba6 22 Float_t nsigmaPr = 2.0,
23 Float_t nsigmaKa = 2.0,
24 Bool_t enableMonitor = kTRUE,
25 Bool_t IsMcTrueOnly = kFALSE,
26 Int_t aodN = 0
27)
28{
29 // manage suffix
30 if (strlen(suffix) > 0) suffix = Form("_%s", suffix);
31
32 // set daughter cuts
33 AliRsnCutSetDaughterParticle * cutSetQ;
34 AliRsnCutSetDaughterParticle * cutSetPr;
35 AliRsnCutSetDaughterParticle * cutSetK;
36
37 cutSetQ = new AliRsnCutSetDaughterParticle("cutQuality", AliRsnCutSetDaughterParticle::kQualityStd2011, AliPID::kKaon, -1.0, aodFilterBit);
ad4155d3 38 cutSetPr = new AliRsnCutSetDaughterParticle(Form("cutProtonTPCPbPb_%2.1fsigma",nsigmaPr), cutPrCandidate, AliPID::kProton, nsigmaPr, aodFilterBit);
39 cutSetK = new AliRsnCutSetDaughterParticle(Form("cutKaonTPCPbPb_%2.1f2sigma",nsigmaKa), cutKaCandidate, AliPID::kKaon, nsigmaKa, aodFilterBit);
e455cba6 40
41 Int_t iCutQ = task->AddTrackCuts(cutSetQ);
42 Int_t iCutPr = task->AddTrackCuts(cutSetPr);
43 Int_t iCutK = task->AddTrackCuts(cutSetK);
44
45 if(enableMonitor){
46 Printf("======== Monitoring cut AliRsnCutSetDaughterParticle enabled");
ad4155d3 47 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C");
e455cba6 48 AddMonitorOutput(isMC, cutSetQ->GetMonitorOutput());
49 AddMonitorOutput(isMC, cutSetPr->GetMonitorOutput());
50 AddMonitorOutput(isMC, cutSetK->GetMonitorOutput());
51 }
52
53 // -- Values ------------------------------------------------------------------------------------
54 /* invariant mass */ Int_t imID = task->CreateValue(AliRsnMiniValue::kInvMass, kFALSE);
55 /* IM resolution */ Int_t resID = task->CreateValue(AliRsnMiniValue::kInvMassRes, kTRUE);
56 /* transv. momentum */ Int_t ptID = task->CreateValue(AliRsnMiniValue::kPt, kFALSE);
57 /* centrality */ Int_t centID = task->CreateValue(AliRsnMiniValue::kMult, kFALSE);
58 /* pseudorapidity */ Int_t etaID = task->CreateValue(AliRsnMiniValue::kEta, kFALSE);
59 /* rapidity */ Int_t yID = task->CreateValue(AliRsnMiniValue::kY, kFALSE);
60
61 // -- Create all needed outputs -----------------------------------------------------------------
62 // use an array for more compact writing, which are different on mixing and charges
63 // [0] = unlike
64 // [1] = mixing
65 // [2] = like ++
66 // [3] = like --
67 Bool_t use [10] = { !IsMcTrueOnly, !IsMcTrueOnly, !IsMcTrueOnly, !IsMcTrueOnly , !IsMcTrueOnly, !IsMcTrueOnly, isMC , isMC , isMC , isMC };
68 Bool_t useIM [10] = { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 };
69 TString name [10] = {"UnlikePM", "UnlikeMP", "MixingPM", "MixingMP", "LikePP", "LikeMM", "TruesPM", "TruesMP", "ResPM" , "ResMP" };
70 TString comp [10] = {"PAIR" , "PAIR" , "MIX" , "MIX" , "PAIR" , "PAIR" , "TRUE" , "TRUE" , "TRUE" , "TRUE" };
71 //TString output [10] = {"HIST" , "HIST" , "HIST" , "HIST" , "HIST" , "HIST" , "HIST" , "HIST" , "HIST" , "HIST" };
72 TString output [10] = {"SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" };
73 Char_t charge1 [10] = {'+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' };
74 Char_t charge2 [10] = {'-' , '+' , '-' , '+' , '+' , '-' , '-' , '+' , '-' , '+' };
75 Int_t cutID1 [10] = { iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK };
76 Int_t cutID2 [10] = { iCutPr , iCutPr , iCutPr , iCutPr ,iCutPr , iCutPr , iCutPr , iCutPr , iCutPr , iCutPr };
77
78 for (Int_t i = 0; i < 10; i++) {
79 if (!use[i]) continue;
80 AliRsnMiniOutput *out = task->CreateOutput(Form("lstar_%s%s", name[i].Data(), suffix), output[i].Data(), comp[i].Data());
81 out->SetCutID(0, cutID1[i]);
82 out->SetCutID(1, cutID2[i]);
83 out->SetDaughter(0, AliRsnDaughter::kKaon);
84 out->SetDaughter(1, AliRsnDaughter::kProton);
85 out->SetCharge(0, charge1[i]);
86 out->SetCharge(1, charge2[i]);
87 out->SetMotherPDG(3124);
88 out->SetMotherMass(1.520);
89 out->SetPairCuts(cutsPair);
90
91 // axis X: invmass (or resolution)
92 if (useIM[i])
93 out->AddAxis(imID, 900, 1.3, 2.2);
94 //else
95 //out->AddAxis(resID, 200, -0.02, 0.02);
96
97 // axis Y: transverse momentum
d2af2fde 98 out->AddAxis(ptID, 500, 0.0, 50.0);
e455cba6 99
100 // axis Z: centrality-multiplicity
101 if (!isPP)
102 out->AddAxis(centID, 100, 0.0, 100.0);
103 else
104 out->AddAxis(centID, 400, 0.0, 400.0);
105
106 // axis W: pseudorapidity
107 // out->AddAxis(etaID, 20, -1.0, 1.0);
108 // axis J: rapidity
109 // out->AddAxis(yID, 10, -0.5, 0.5);
110
111 }
112 return kTRUE;
113}