New implementation of the forward multiplicity analysis.
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / AliAODForwardMult.cxx
1 #include "AliAODForwardMult.h"
2 #include <TBrowser.h>
3 #include <iostream>
4 #include <TMath.h>
5 #include <TObjString.h>
6
7 ClassImp(AliAODForwardMult)
8 #if 0 
9 ; // For Emacs 
10 #endif
11
12 //____________________________________________________________________
13 const Float_t AliAODForwardMult::fgkInvalidIpZ = 1e6;
14
15 //____________________________________________________________________
16 AliAODForwardMult::AliAODForwardMult()
17   : fHist(),
18     fTriggers(0),
19     fIpZ(fgkInvalidIpZ)
20 {}
21
22 //____________________________________________________________________
23 AliAODForwardMult::AliAODForwardMult(Bool_t) 
24   : fHist("forwardMult", "d^{2}N_{ch}/d#etad#varphi in the forward regions", 
25           200, -4, 6, 20, 0, 2*TMath::Pi()),
26     fTriggers(0),
27     fIpZ(fgkInvalidIpZ)
28 {
29   fHist.SetXTitle("#eta");
30   fHist.SetYTitle("#varphi [radians]");
31   fHist.SetZTitle("#frac{d^{2}N_{ch}}{d#etad#varphi}");
32   fHist.Sumw2();
33 }
34
35 //____________________________________________________________________
36 void
37 AliAODForwardMult::Init(const TAxis& etaAxis)
38 {
39   fHist.SetBins(etaAxis.GetNbins(), etaAxis.GetXmin(), etaAxis.GetXmax(), 
40                 20, 0, 2*TMath::Pi());
41 }
42
43 //____________________________________________________________________
44 void
45 AliAODForwardMult::Clear(Option_t* option)
46 {
47   fHist.Reset(option);
48   fTriggers = 0;
49   fIpZ      = fgkInvalidIpZ;
50 }
51 //____________________________________________________________________
52 Bool_t
53 AliAODForwardMult::HasIpZ() const
54 {
55   return TMath::Abs(fIpZ - fgkInvalidIpZ) > 1;
56 }
57
58 //____________________________________________________________________
59 void
60 AliAODForwardMult::Browse(TBrowser* b)
61 {
62   static TObjString ipz;
63   static TObjString trg;
64   ipz = Form("ip_z=%fcm", fIpZ);
65   trg = GetTriggerString(fTriggers);
66   b->Add(&fHist);
67   b->Add(&ipz);
68   b->Add(&trg);
69 }
70
71 //____________________________________________________________________
72 const Char_t*
73 AliAODForwardMult::GetTriggerString(UInt_t mask)
74 {
75   static TString trg;
76   trg = "";
77   if ((mask & kInel)    != 0x0) trg.Append("INEL ");
78   if ((mask & kInelGt0) != 0x0) trg.Append("INEL>0 ");
79   if ((mask & kNSD)     != 0x0) trg.Append("NSD ");
80   if ((mask & kA)       != 0x0) trg.Append("A ");
81   if ((mask & kB)       != 0x0) trg.Append("B ");
82   if ((mask & kC)       != 0x0) trg.Append("C ");
83   if ((mask & kE)       != 0x0) trg.Append("E ");
84   return trg.Data();
85 }
86   
87 //____________________________________________________________________
88 void
89 AliAODForwardMult::Print(Option_t* option) const
90 {
91   fHist.Print(option);
92   std::cout << "Ipz:      " << fIpZ << "cm " << (HasIpZ() ? "" : "in") 
93             << "valid\n"
94             << "Triggers: " << GetTriggerString(fTriggers) << std::endl;
95 }
96
97 //____________________________________________________________________
98 //
99 // EOF
100 //