]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ZDC/AliZDCCalibData.cxx
calibration function added
[u/mrichter/AliRoot.git] / ZDC / AliZDCCalibData.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id$ */
17
18 ///////////////////////////////////////////////////////////////////////////////
19 //                                                                           //
20 // class for ZDC calibration                                                 //
21 //                                                                           //
22 ///////////////////////////////////////////////////////////////////////////////
23
24 #include "AliZDCCalibData.h"
25
26 ClassImp(AliZDCCalibData)
27
28 //________________________________________________________________
29 AliZDCCalibData::AliZDCCalibData()
30 {
31 //  fHistMeanPed=0;
32   Reset();
33 }
34
35 //________________________________________________________________
36 AliZDCCalibData::AliZDCCalibData(const char* name)
37 {
38   TString namst = "Calib_";
39   namst += name;
40   SetName(namst.Data());
41   SetTitle(namst.Data());
42 //  fHistMeanPed=0;
43   Reset();
44 }
45
46 //________________________________________________________________
47 AliZDCCalibData::AliZDCCalibData(const AliZDCCalibData& calibda) :
48   TNamed(calibda)
49 {
50 // copy constructor
51   SetName(calibda.GetName());
52   SetTitle(calibda.GetName());
53   Reset();
54   for(int t=0; t<47; t++){
55      fMeanPedestal[t] = calibda.GetMeanPed(t);
56      fMeanPedWidth[t] = calibda.GetMeanPedWidth(t);
57   }
58   for(int t=0; t<44; t++){
59      fOOTPedestal[t]  = calibda.GetOOTPed(t);
60      fOOTPedWidth[t]  = calibda.GetOOTPedWidth(t);
61      fPedCorrCoeff[0][t] = calibda.GetPedCorrCoeff0(t);
62      fPedCorrCoeff[1][t] = calibda.GetPedCorrCoeff1(t);
63   }
64   for(int t=0; t<6; t++)  fEnCalibration[t] = calibda.GetEnCalib(t);
65 //  PrepHistos();
66 }
67
68 //________________________________________________________________
69 AliZDCCalibData &AliZDCCalibData::operator =(const AliZDCCalibData& calibda)
70 {
71 // assignment operator
72   SetName(calibda.GetName());
73   SetTitle(calibda.GetName());
74   Reset();
75   for(int t=0; t<47; t++){
76      fMeanPedestal[t] = calibda.GetMeanPed(t);
77      fMeanPedWidth[t] = calibda.GetMeanPedWidth(t);
78   }
79   for(int t=0; t<44; t++){
80      fOOTPedestal[t]  = calibda.GetOOTPed(t);
81      fOOTPedWidth[t]  = calibda.GetOOTPedWidth(t);
82      fPedCorrCoeff[0][t] = calibda.GetPedCorrCoeff0(t);
83      fPedCorrCoeff[1][t] = calibda.GetPedCorrCoeff1(t);
84   }
85   for(int t=0; t<6; t++) fEnCalibration[t] = calibda.GetEnCalib(t);
86 //  PrepHistos();
87   return *this;
88 }
89
90 //________________________________________________________________
91 AliZDCCalibData::~AliZDCCalibData()
92 {
93 //  CleanHistos();
94 }
95
96 //________________________________________________________________
97 void AliZDCCalibData::Reset()
98 {
99   memset(fMeanPedestal,0,47*sizeof(Float_t));
100   memset(fMeanPedWidth,0,47*sizeof(Float_t));
101   memset(fOOTPedestal,0,44*sizeof(Float_t));
102   memset(fOOTPedWidth,0,44*sizeof(Float_t));
103   memset(fEnCalibration,0,6*sizeof(Float_t));
104 }                                                                                       
105
106 /*
107 //________________________________________________________________
108 void AliZDCCalibData::CleanHistos()
109 {
110   if (fHistMeanPed) delete fHistMeanPed; fHistMeanPed = 0;
111 }
112
113 //________________________________________________________________
114 void AliZDCCalibData::PrepHistos()
115 {
116 //  CleanHistos(); // this gives a segm.viol!
117   Int_t   kNChannels = 47;
118   Float_t kMaxPedVal = 47.;
119   TString hname = GetName();  hname += "_Pedestals";
120   fHistMeanPed = new TH1F(hname.Data(),hname.Data(),kNChannels,0.,kMaxPedVal);
121   for(int i=0; i<47; i++)  fHistMeanPed->SetBinContent(i+1,GetMeanPed(i));
122 }
123 */
124
125 //________________________________________________________________
126 void  AliZDCCalibData::Print(Option_t *) const
127 {
128    printf("\n   ####### Mean pedestal values    ####### \n");
129    for(int t=0; t<47; t++){
130      if(t==0 || t==24) printf("\n\t -------- ZN HighRes -------- \n");
131      else if(t==5 || t==29) printf("\n\t -------- ZN LowRes -------- \n");
132      else if(t==10 || t==34) printf("\n\t -------- ZP HighRes -------- \n");
133      else if(t==15 || t==39) printf("\n\t -------- ZP LowRes -------- \n");
134      else if(t==20) printf("\n\t -------- ZEM1 HighRes -------- ");
135      else if(t==21) printf("\n\t -------- ZEM1 LowRes -------- ");
136      else if(t==22) printf("\n\t -------- ZEM2 HighRes -------- ");
137      else if(t==23) printf("\n\t -------- ZEM2 LowRes -------- ");
138      printf("   MeanPed[ADC%d] = %.1f   ",t,fMeanPedestal[t]);
139    }
140    
141    printf("\n\n\n       ####### Out Of Time pedestal values     ####### \n");
142    for(int t=0; t<44; t++){
143      if(t==0 || t==24) printf("\n\t -------- ZN HighRes -------- \n");
144      else if(t==5 || t==29) printf("\n\t -------- ZN LowRes -------- \n");
145      else if(t==10 || t==34) printf("\n\t -------- ZP HighRes -------- \n");
146      else if(t==15 || t==39) printf("\n\t -------- ZP LowRes -------- \n");
147      else if(t==20) printf("\n\t -------- ZEM1 HighRes -------- ");
148      else if(t==21) printf("\n\t -------- ZEM1 LowRes -------- ");
149      else if(t==22) printf("\n\t -------- ZEM2 HighRes -------- ");
150      else if(t==23) printf("\n\t -------- ZEM2 LowRes -------- ");
151      printf("   OOTPed[ADC%d] = %.1f   ",t,fOOTPedestal[t]);
152    }
153  
154    printf("\n\n\n       ####### Energy calibration coefficients ####### \n");
155    printf("     ZN1 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[0]);
156    printf("     ZP1 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[1]);
157    printf("     ZN2 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[2]);
158    printf("     ZP2 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[3]);
159    printf("     ZEM1 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[4]);
160    printf("     ZEM2 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[5]);
161
162
163 //________________________________________________________________
164 void AliZDCCalibData::SetMeanPed(Float_t* MeanPed)
165 {
166   if(MeanPed) for(int t=0; t<47; t++) fMeanPedestal[t] = MeanPed[t];
167   else for(int t=0; t<47; t++) fMeanPedestal[t] = 0.;
168 }
169 //________________________________________________________________
170 void AliZDCCalibData::SetMeanPedWidth(Float_t* MeanPedWidth)
171 {
172   if(MeanPedWidth) for(int t=0; t<47; t++) fMeanPedWidth[t] = MeanPedWidth[t];
173   else for(int t=0; t<47; t++) fMeanPedWidth[t] = 0.;
174 }
175
176 //________________________________________________________________
177 void AliZDCCalibData::SetOOTPed(Float_t* OOTPed)
178 {
179   if(OOTPed) for(int t=0; t<44; t++) fOOTPedestal[t] = OOTPed[t];
180   else for(int t=0; t<44; t++) fOOTPedestal[t] = 0.;
181 }
182
183 //________________________________________________________________
184 void AliZDCCalibData::SetOOTPedWidth(Float_t* OOTPedWidth)
185 {
186   if(OOTPedWidth) for(int t=0; t<44; t++) fOOTPedWidth[t] = OOTPedWidth[t];
187   else for(int t=0; t<44; t++) fOOTPedWidth[t] = 0.;
188 }
189
190 //________________________________________________________________
191 void AliZDCCalibData:: SetPedCorrCoeff(Float_t* PedCorrCoeff0, 
192         Float_t* PedCorrCoeff1)
193 {
194   if(PedCorrCoeff0 && PedCorrCoeff1) for(int t=0; t<44; t++){
195     fPedCorrCoeff[0][t] = PedCorrCoeff0[t];
196     fPedCorrCoeff[1][t] = PedCorrCoeff1[t];
197   }
198   else for(int t=0; t<44; t++){
199     fPedCorrCoeff[0][t] = 0.;
200     fPedCorrCoeff[1][t] = 0.;
201   }
202 }
203
204 //________________________________________________________________
205 void AliZDCCalibData::SetEnCalib(Float_t* EnCalib) 
206 {
207   if(EnCalib) for(int t=0; t<6; t++) fEnCalibration[t] = EnCalib[t];
208   else for(int t=0; t<6; t++) fEnCalibration[t] = 0.;
209 }
210