]>
Commit | Line | Data |
---|---|---|
7e2bf482 | 1 | |
2 | #include "AliFMDAnaCalibSharingEfficiency.h" | |
3 | #include <TH2F.h> | |
4 | #include <TH1F.h> | |
5 | #include <TBrowser.h> | |
6 | ||
7 | ClassImp(AliFMDAnaCalibSharingEfficiency) | |
8 | #if 0 | |
9 | ; // For Emacs | |
10 | #endif | |
11 | ||
12 | //____________________________________________________________________ | |
13 | AliFMDAnaCalibSharingEfficiency::AliFMDAnaCalibSharingEfficiency() : TObject(), | |
14 | fArray(), | |
15 | fArrayTrVtx(), | |
16 | fIsInit(kFALSE) | |
17 | { | |
18 | ||
19 | ||
20 | ||
21 | } | |
22 | ||
23 | ||
24 | //____________________________________________________________________ | |
25 | AliFMDAnaCalibSharingEfficiency::AliFMDAnaCalibSharingEfficiency(const AliFMDAnaCalibSharingEfficiency& o) | |
26 | : TObject(o), fArray(o.fArray), fArrayTrVtx(o.fArrayTrVtx), fIsInit(o.fIsInit) | |
27 | { | |
28 | // Copy ctor | |
29 | } | |
30 | //____________________________________________________________________ | |
31 | AliFMDAnaCalibSharingEfficiency& | |
32 | AliFMDAnaCalibSharingEfficiency::operator=(const AliFMDAnaCalibSharingEfficiency& o) | |
33 | { | |
34 | // Assignment operator | |
35 | ||
36 | fArray = o.fArray; | |
37 | fArrayTrVtx = o.fArrayTrVtx; | |
38 | ||
39 | return (*this); | |
40 | } | |
41 | //____________________________________________________________________ | |
42 | void 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 | //____________________________________________________________________ | |
74 | TObjArray* 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 | //____________________________________________________________________ | |
84 | void 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 | //____________________________________________________________________ | |
96 | TH1F* 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 | //____________________________________________________________________ | |
105 | TObjArray* 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 | //____________________________________________________________________ | |
115 | void 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 | //____________________________________________________________________ | |
127 | TH1F* 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 | //____________________________________________________________________ | |
136 | void | |
137 | AliFMDAnaCalibSharingEfficiency::Browse(TBrowser* b) | |
138 | { | |
139 | b->Add(&fArray, "Array of histograms w/sharing eff corrections"); | |
140 | } | |
141 | ||
142 | //____________________________________________________________________ | |
143 | // | |
144 | // EOF | |
145 | // |