]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C
Added mother histo to Kstar config for TOF analysis + monitor histo binning changed
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / mini / AddMonitorOutput.C
1 /***************************************************************************
2               fbellini@cern.ch - last modified on 06/08/2012
3
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 /***************************************************************************/
7
8
9 void AddMonitorOutput(Bool_t useMCMon = 0, TObjArray *mon=0,TString opt="",AliRsnLoopDaughter *lm=0)
10 {
11   
12   // Multiplicity/centrality
13   AliRsnValueEvent *multi = new AliRsnValueEvent("multi",AliRsnValueEvent::kMult);
14   multi->SetBins(0.0, 400.0, 1);
15   // Momentum
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);
20   // Momentum Pt
21   AliRsnValueDaughter *axisMomPt = new AliRsnValueDaughter("pt", AliRsnValueDaughter::kPt);
22   axisMomPt->SetBins(0.0,10.0,0.01);
23   // Eta
24   AliRsnValueDaughter *axisMomEta = new AliRsnValueDaughter("eta", AliRsnValueDaughter::kEta);
25   axisMomEta->SetBins(-1.0, 1.0, 0.1);
26
27   /* dEdx tpc */
28   AliRsnValueDaughter *axisSigTPC = new AliRsnValueDaughter("sTPC", AliRsnValueDaughter::kTPCsignal);
29   axisSigTPC->SetBins(0.0, 500.0, 2.0);
30   // kTPCnsigmaPi
31   AliRsnValueDaughter *axisTPCnsigmaPi = new AliRsnValueDaughter("pi", AliRsnValueDaughter::kTPCnsigmaPi);
32   axisTPCnsigmaPi->SetBins(-10.,10., 0.1);
33   // kTPCnsigmaK
34   AliRsnValueDaughter *axisTPCnsigmaK = new AliRsnValueDaughter("K", AliRsnValueDaughter::kTPCnsigmaK);
35   axisTPCnsigmaK->SetBins(-10.,10., 0.1);
36   // kTPCnsigmaP
37   AliRsnValueDaughter *axisTPCnsigmaP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kTPCnsigmaP);
38   axisTPCnsigmaP->SetBins(-10.,10., 0.1);
39
40   /* tof signal - time */
41   AliRsnValueDaughter *axisSigTOF = new AliRsnValueDaughter("sTOF", AliRsnValueDaughter::kTOFsignal);
42   axisSigTOF->SetBins(10000.0, 50000.0, 250);//in ps
43   // kTOFnsigmaPi
44   AliRsnValueDaughter *axisTOFnsigmaPi = new AliRsnValueDaughter("pi", AliRsnValueDaughter::kTOFnsigmaPi);
45   axisTOFnsigmaPi->SetBins(-10.,10., 0.1);
46   // kTOFnsigmaK
47   AliRsnValueDaughter *axisTOFnsigmaK = new AliRsnValueDaughter("K", AliRsnValueDaughter::kTOFnsigmaK);
48   axisTOFnsigmaK->SetBins(-10.,10., 0.1);
49   // kTOFnsigmaP
50   AliRsnValueDaughter *axisTOFnsigmaP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kTOFnsigmaP);
51   axisTOFnsigmaP->SetBins(-10.,10., 0.1);
52    
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);
61
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);
71
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);
77
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);
83
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);
93
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);
100
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);
107
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);
114
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);
124
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);
131
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);
139      
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);
146       
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);
153   }
154
155   /****************************************************************/
156   /***************       MONITOR MC            ********************/
157   /****************************************************************/
158   if (useMCMon) {
159     //Momentum 
160     AliRsnValueDaughter *axisMomPMC = new AliRsnValueDaughter("pMC", AliRsnValueDaughter::kP);
161     axisMomPMC->SetUseMCInfo(kTRUE);
162     axisMomPMC->SetBins(0.0,10.0,0.01);
163     // Momentum Pt
164     AliRsnValueDaughter *axisMomPtMC = new AliRsnValueDaughter("ptMC", AliRsnValueDaughter::kPt);
165     axisMomPtMC->SetUseMCInfo(kTRUE);
166     axisMomPtMC->SetBins(0.0,10.0,0.01);
167     // Eta
168     AliRsnValueDaughter *axisEtaMC = new AliRsnValueDaughter("etaMC", AliRsnValueDaughter::kEta);
169     axisEtaMC->SetUseMCInfo(kTRUE);
170     axisEtaMC->SetBins(-1.0,1.0,0.1);
171
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);
178
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);
184  
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);
190
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);
196   }
197  
198 }