]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FORWARD/analysis/AliFMDAnaCalibSharingEfficiency.cxx
Adding new macro, loadFromOCDB.C, for loading magnetic field, mapping and
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis / AliFMDAnaCalibSharingEfficiency.cxx
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 //