]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis/AliFMDAnaCalibSharingEfficiency.cxx
Adding NSD analysis as well as new features and removing warnings
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis / AliFMDAnaCalibSharingEfficiency.cxx
CommitLineData
7e2bf482 1
2#include "AliFMDAnaCalibSharingEfficiency.h"
3#include <TH2F.h>
4#include <TH1F.h>
5#include <TBrowser.h>
6
7ClassImp(AliFMDAnaCalibSharingEfficiency)
8#if 0
9; // For Emacs
10#endif
11
12//____________________________________________________________________
13AliFMDAnaCalibSharingEfficiency::AliFMDAnaCalibSharingEfficiency() : TObject(),
14 fArray(),
15 fArrayTrVtx(),
16 fIsInit(kFALSE)
17{
18
19
20
21}
22
23
24//____________________________________________________________________
25AliFMDAnaCalibSharingEfficiency::AliFMDAnaCalibSharingEfficiency(const AliFMDAnaCalibSharingEfficiency& o)
26 : TObject(o), fArray(o.fArray), fArrayTrVtx(o.fArrayTrVtx), fIsInit(o.fIsInit)
27{
28 // Copy ctor
29}
30//____________________________________________________________________
31AliFMDAnaCalibSharingEfficiency&
32AliFMDAnaCalibSharingEfficiency::operator=(const AliFMDAnaCalibSharingEfficiency& o)
33{
34 // Assignment operator
35
36 fArray = o.fArray;
37 fArrayTrVtx = o.fArrayTrVtx;
38
39 return (*this);
40}
41//____________________________________________________________________
42void AliFMDAnaCalibSharingEfficiency::Init() {
43
44 fArray.SetOwner();
45 for(Int_t det = 1; det<=3;det++) {
46 TObjArray* detArray = new TObjArray();
47 detArray->SetOwner();
48 fArray.AddAtAndExpand(detArray,det);
49 Int_t nRings = (det == 1 ? 1 : 2);
50 for(Int_t ring = 0;ring<nRings;ring++) {
51 TObjArray* ringArray = new TObjArray();
52 ringArray->SetOwner();
53 detArray->AddAtAndExpand(ringArray,ring);
54
55 }
56 }
57 fArrayTrVtx.SetOwner();
58 for(Int_t det = 1; det<=3;det++) {
59 TObjArray* detArrayTrVtx = new TObjArray();
60 detArrayTrVtx->SetOwner();
61 fArrayTrVtx.AddAtAndExpand(detArrayTrVtx,det);
62 Int_t nRings = (det == 1 ? 1 : 2);
63 for(Int_t ring = 0;ring<nRings;ring++) {
64 TObjArray* ringArrayTrVtx = new TObjArray();
65 ringArrayTrVtx->SetOwner();
66 detArrayTrVtx->AddAtAndExpand(ringArrayTrVtx,ring);
67
68 }
69 }
70 fIsInit = kTRUE;
71
72}
73//____________________________________________________________________
74TObjArray* AliFMDAnaCalibSharingEfficiency::GetRingArrayTrVtx(Int_t det,
75 Char_t ring) {
76
77 Int_t ringNumber = (ring == 'I' ? 0 : 1);
78 TObjArray* detArray = (TObjArray*)fArrayTrVtx.At(det);
79 TObjArray* ringArray = (TObjArray*)detArray->At(ringNumber);
80
81 return ringArray;
82}
83//____________________________________________________________________
84void AliFMDAnaCalibSharingEfficiency::SetSharingEffTrVtx(Int_t det,
85 Char_t ring,
86 Int_t vtxbin,
87 TH1F* hCorrection) {
88 if(!fIsInit)
89 Init();
90
91 TObjArray* ringArray = GetRingArrayTrVtx(det,ring);
92 ringArray->AddAtAndExpand(hCorrection,vtxbin);
93
94}
95//____________________________________________________________________
96TH1F* AliFMDAnaCalibSharingEfficiency::GetSharingEffTrVtx(Int_t det,
97 Char_t ring,
98 Int_t vtxbin) {
99 TObjArray* ringArray = GetRingArrayTrVtx(det,ring);
100 TH1F* hCorrection = (TH1F*)ringArray->At(vtxbin);
101 return hCorrection;
102}
103
104//____________________________________________________________________
105TObjArray* AliFMDAnaCalibSharingEfficiency::GetRingArray(Int_t det,
106 Char_t ring) {
107
108 Int_t ringNumber = (ring == 'I' ? 0 : 1);
109 TObjArray* detArray = (TObjArray*)fArray.At(det);
110 TObjArray* ringArray = (TObjArray*)detArray->At(ringNumber);
111
112 return ringArray;
113}
114//____________________________________________________________________
115void AliFMDAnaCalibSharingEfficiency::SetSharingEff(Int_t det,
116 Char_t ring,
117 Int_t vtxbin,
118 TH1F* hCorrection) {
119 if(!fIsInit)
120 Init();
121
122 TObjArray* ringArray = GetRingArray(det,ring);
123 ringArray->AddAtAndExpand(hCorrection,vtxbin);
124
125}
126//____________________________________________________________________
127TH1F* AliFMDAnaCalibSharingEfficiency::GetSharingEff(Int_t det,
128 Char_t ring,
129 Int_t vtxbin) {
130 TObjArray* ringArray = GetRingArray(det,ring);
131 TH1F* hCorrection = (TH1F*)ringArray->At(vtxbin);
132 return hCorrection;
133}
134
135//____________________________________________________________________
136void
137AliFMDAnaCalibSharingEfficiency::Browse(TBrowser* b)
138{
139 b->Add(&fArray, "Array of histograms w/sharing eff corrections");
140}
141
142//____________________________________________________________________
143//
144// EOF
145//