1 /***************************************************************************
2 fbellini@cern.ch - last modified on 06/08/2012
4 Macro to add monitoring histograms for track and PID cuts to the rsn task
5 Tuned for monitoring TOF KStar analysis of PbPb 2010 data
6 /***************************************************************************/
9 void AddMonitorOutput(Bool_t useMCMon = 0, TObjArray *mon=0,TString opt="",AliRsnLoopDaughter *lm=0)
12 // Multiplicity/centrality
13 AliRsnValueEvent *multi = new AliRsnValueEvent("multi",AliRsnValueEvent::kMult);
14 multi->SetBins(0.0, 400.0, 1);
16 AliRsnValueDaughter *axisMomTPC = new AliRsnValueDaughter("pTPC", AliRsnValueDaughter::kPtpc);
17 axisMomTPC->SetBins(0.0, 10.0, 0.01);
18 AliRsnValueDaughter *axisMomP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kP);
19 axisMomP->SetBins(0.0, 10.0, 0.01);
21 AliRsnValueDaughter *axisMomPt = new AliRsnValueDaughter("pt", AliRsnValueDaughter::kPt);
22 axisMomPt->SetBins(0.0,10.0,0.01);
24 AliRsnValueDaughter *axisMomEta = new AliRsnValueDaughter("eta", AliRsnValueDaughter::kEta);
25 axisMomEta->SetBins(-1.0, 1.0, 0.1);
28 AliRsnValueDaughter *axisSigTPC = new AliRsnValueDaughter("sTPC", AliRsnValueDaughter::kTPCsignal);
29 axisSigTPC->SetBins(0.0, 500.0, 2.0);
31 AliRsnValueDaughter *axisTPCnsigmaPi = new AliRsnValueDaughter("pi", AliRsnValueDaughter::kTPCnsigmaPi);
32 axisTPCnsigmaPi->SetBins(-10.,10., 0.1);
34 AliRsnValueDaughter *axisTPCnsigmaK = new AliRsnValueDaughter("K", AliRsnValueDaughter::kTPCnsigmaK);
35 axisTPCnsigmaK->SetBins(-10.,10., 0.1);
37 AliRsnValueDaughter *axisTPCnsigmaP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kTPCnsigmaP);
38 axisTPCnsigmaP->SetBins(-10.,10., 0.1);
40 /* tof signal - time */
41 AliRsnValueDaughter *axisSigTOF = new AliRsnValueDaughter("sTOF", AliRsnValueDaughter::kTOFsignal);
42 axisSigTOF->SetBins(10000.0, 50000.0, 250);//in ps
44 AliRsnValueDaughter *axisTOFnsigmaPi = new AliRsnValueDaughter("pi", AliRsnValueDaughter::kTOFnsigmaPi);
45 axisTOFnsigmaPi->SetBins(-10.,10., 0.1);
47 AliRsnValueDaughter *axisTOFnsigmaK = new AliRsnValueDaughter("K", AliRsnValueDaughter::kTOFnsigmaK);
48 axisTOFnsigmaK->SetBins(-10.,10., 0.1);
50 AliRsnValueDaughter *axisTOFnsigmaP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kTOFnsigmaP);
51 axisTOFnsigmaP->SetBins(-10.,10., 0.1);
53 /****************************************************************/
54 /*************** MONITOR AOB ********************/
55 /****************************************************************/
56 AliRsnListOutput *outMonitorPTvsMult = new AliRsnListOutput("PtVsMult",AliRsnListOutput::kHistoDefault);
57 outMonitorPTvsMult->AddValue(axisMomPt);
58 outMonitorPTvsMult->AddValue(multi);
59 if (mon) mon->Add(outMonitorPTvsMult);
60 if (lm) lm->AddOutput(outMonitorPTvsMult);
62 // if (lm) lm->SetTrueMC(kTRUE);
63 /****************************************************************/
64 /*************** MONITOR kinematics ********************/
65 /****************************************************************/
66 // output: TH1D for momentum
67 AliRsnListOutput *outMonitorP = new AliRsnListOutput("P", AliRsnListOutput::kHistoDefault);
68 outMonitorP->AddValue(axisMomP);
69 if (mon) mon->Add(outMonitorP);
70 if (lm) lm->AddOutput(outMonitorP);
72 // output: TH1D for pt
73 AliRsnListOutput *outMonitorPt = new AliRsnListOutput("Pt", AliRsnListOutput::kHistoDefault);
74 outMonitorPt->AddValue(axisMomPt);
75 if (mon) mon->Add(outMonitorPt);
76 if (lm) lm->AddOutput(outMonitorPt);
78 // output: TH1D for pseudorapidity
79 AliRsnListOutput *outMonitorEta = new AliRsnListOutput("Eta", AliRsnListOutput::kHistoDefault);
80 outMonitorEta->AddValue(axisMomEta);
81 if (mon) mon->Add(outMonitorEta);
82 if (lm) lm->AddOutput(outMonitorEta);
84 /****************************************************************/
85 /*************** MONITOR TPC ********************/
86 /****************************************************************/
87 // output: 2D histogram of TPC signal vs. TPC momentum
88 AliRsnListOutput *outMonitordEdxTPC = new AliRsnListOutput("dEdx_VsPtpc", AliRsnListOutput::kHistoDefault);
89 outMonitordEdxTPC->AddValue(axisMomTPC);
90 outMonitordEdxTPC->AddValue(axisSigTPC);
91 if (mon) mon->Add(outMonitordEdxTPC);
92 if (lm) lm->AddOutput(outMonitordEdxTPC);
94 // output: 2D histogram of TPC nsigma pi vs. TPC momentum
95 AliRsnListOutput *outMonitorTPCnsigmaPi = new AliRsnListOutput("TPC_nsigmaPi_VsPtpc", AliRsnListOutput::kHistoDefault);
96 outMonitorTPCnsigmaPi->AddValue(axisMomTPC);
97 outMonitorTPCnsigmaPi->AddValue(axisTPCnsigmaPi);
98 if (mon) mon->Add(outMonitorTPCnsigmaPi);
99 if (lm) lm->AddOutput(outMonitorTPCnsigmaPi);
101 // output: 2D histogram of TPC nsigma K vs. TPC momentum
102 AliRsnListOutput *outMonitorTPCnsigmaK = new AliRsnListOutput("TPC_nsigmaK_VsPtpc", AliRsnListOutput::kHistoDefault);
103 outMonitorTPCnsigmaK->AddValue(axisMomTPC);
104 outMonitorTPCnsigmaK->AddValue(axisTPCnsigmaK);
105 if (mon) mon->Add(outMonitorTPCnsigmaK);
106 if (lm) lm->AddOutput(outMonitorTPCnsigmaK);
108 // output: 2D histogram of TPC nsigma pro vs. TPC momentum
109 AliRsnListOutput *outMonitorTPCnsigmaP = new AliRsnListOutput("TPC_nsigmaPro_VsPtpc", AliRsnListOutput::kHistoDefault);
110 outMonitorTPCnsigmaP->AddValue(axisMomTPC);
111 outMonitorTPCnsigmaP->AddValue(axisTPCnsigmaP);
112 if (mon) mon->Add(outMonitorTPCnsigmaP);
113 if (lm) lm->AddOutput(outMonitorTPCnsigmaP);
115 /****************************************************************/
116 /*************** MONITOR TOF ********************/
117 /****************************************************************/
118 // output: 2D histogram of TOF signal vs. momentum
119 AliRsnListOutput *outMonitorTimeTOF = new AliRsnListOutput("time_VsP", AliRsnListOutput::kHistoDefault);
120 outMonitorTimeTOF->AddValue(axisMomP);
121 outMonitorTimeTOF->AddValue(axisSigTOF);
122 if (mon) mon->Add(outMonitorTimeTOF);
123 if (lm) lm->AddOutput(outMonitorTimeTOF);
125 // output: 2D histogram of TOF signal vs. pt
126 AliRsnListOutput *outMonitorTimeTOFPt = new AliRsnListOutput("time_VsPt", AliRsnListOutput::kHistoDefault);
127 outMonitorTimeTOFPt->AddValue(axisMomPt);
128 outMonitorTimeTOFPt->AddValue(axisSigTOF);
129 if (mon) mon->Add(outMonitorTimeTOFPt);
130 if (lm) lm->AddOutput(outMonitorTimeTOFPt);
132 if (!opt.Contains("NoTOFSIGMA")) {
133 // output: 2D histogram of TOF Nsigma pi vs. TPC momentum
134 AliRsnListOutput *outMonitorTOFnsigmaPi = new AliRsnListOutput("TOF_nsigmaPi_vsP", AliRsnListOutput::kHistoDefault);
135 outMonitorTOFnsigmaPi->AddValue(axisMomP);
136 outMonitorTOFnsigmaPi->AddValue(axisTOFnsigmaPi);
137 if (mon) mon->Add(outMonitorTOFnsigmaPi);
138 if (lm) lm->AddOutput(outMonitorTOFnsigmaPi);
140 // output: 2D histogram of TOF signal vs. TOF momentum
141 AliRsnListOutput *outMonitorTOFnsigmaK = new AliRsnListOutput("TOF_nsigmaK_vsP", AliRsnListOutput::kHistoDefault);
142 outMonitorTOFnsigmaK->AddValue(axisMomP);
143 outMonitorTOFnsigmaK->AddValue(axisTOFnsigmaK);
144 if (mon) mon->Add(outMonitorTOFnsigmaK);
145 if (lm) lm->AddOutput(outMonitorTOFnsigmaK);
147 // output: 2D histogram of TOF signal vs. TOF momentum
148 AliRsnListOutput *outMonitorTOFnsigmaP = new AliRsnListOutput("TOF_nsigmaPro_vsP", AliRsnListOutput::kHistoDefault);
149 outMonitorTOFnsigmaP->AddValue(axisMomP);
150 outMonitorTOFnsigmaP->AddValue(axisTOFnsigmaP);
151 if (mon) mon->Add(outMonitorTOFnsigmaP);
152 if (lm) lm->AddOutput(outMonitorTOFnsigmaP);
155 /****************************************************************/
156 /*************** MONITOR MC ********************/
157 /****************************************************************/
160 AliRsnValueDaughter *axisMomPMC = new AliRsnValueDaughter("pMC", AliRsnValueDaughter::kP);
161 axisMomPMC->SetUseMCInfo(kTRUE);
162 axisMomPMC->SetBins(0.0,10.0,0.01);
164 AliRsnValueDaughter *axisMomPtMC = new AliRsnValueDaughter("ptMC", AliRsnValueDaughter::kPt);
165 axisMomPtMC->SetUseMCInfo(kTRUE);
166 axisMomPtMC->SetBins(0.0,10.0,0.01);
168 AliRsnValueDaughter *axisEtaMC = new AliRsnValueDaughter("etaMC", AliRsnValueDaughter::kEta);
169 axisEtaMC->SetUseMCInfo(kTRUE);
170 axisEtaMC->SetBins(-1.0,1.0,0.1);
172 // output: 2D histo for kine acceptance
173 AliRsnListOutput *outMonitorPtVsEtaMC = new AliRsnListOutput("Pt_VsEtaMC", AliRsnListOutput::kHistoDefault);
174 outMonitorPtVsEtaMC->AddValue(axisMomPtMC);
175 outMonitorPtVsEtaMC->AddValue(axisEtaMC);
176 if (mon) mon->Add(outMonitorPtVsEtaMC);
177 if (lm) lm->AddOutput(outMonitorPtVsEtaMC);
179 // output: 1D histo pt from MC
180 AliRsnListOutput *outMonitorPtMC = new AliRsnListOutput("PtMC", AliRsnListOutput::kHistoDefault);
181 outMonitorPtMC->AddValue(axisMomPtMC);
182 if (mon) mon->Add(outMonitorPtMC);
183 if (lm) lm->AddOutput(outMonitorPtMC);
185 // output: 1D histo eta from MC
186 AliRsnListOutput *outMonitorEtaMC = new AliRsnListOutput("EtaMC", AliRsnListOutput::kHistoDefault);
187 outMonitorEtaMC->AddValue(axisEtaMC);
188 if (mon) mon->Add(outMonitorEtaMC);
189 if (lm) lm->AddOutput(outMonitorEtaMC);
191 // output: 1D histo pt from MC
192 AliRsnListOutput *outMonitorPtMC = new AliRsnListOutput("PtMC", AliRsnListOutput::kHistoDefault);
193 outMonitorPtMC->AddValue(axisMomPtMC);
194 if (mon) mon->Add(outMonitorPtMC);
195 if (lm) lm->AddOutput(outMonitorPtMC);