1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 ///////////////////////////////////////////////////////////////////////////////
20 // class for ZDC calibration //
22 ///////////////////////////////////////////////////////////////////////////////
24 #include "AliZDCCalibData.h"
26 ClassImp(AliZDCCalibData)
28 //________________________________________________________________
29 AliZDCCalibData::AliZDCCalibData()
35 //________________________________________________________________
36 AliZDCCalibData::AliZDCCalibData(const char* name)
38 TString namst = "Calib_";
40 SetName(namst.Data());
41 SetTitle(namst.Data());
46 //________________________________________________________________
47 AliZDCCalibData::AliZDCCalibData(const AliZDCCalibData& calibda) :
51 SetName(calibda.GetName());
52 SetTitle(calibda.GetName());
54 for(int t=0; t<47; t++){
55 fMeanPedestal[t] = calibda.GetMeanPed(t);
56 fMeanPedWidth[t] = calibda.GetMeanPedWidth(t);
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);
64 for(int t=0; t<6; t++) fEnCalibration[t] = calibda.GetEnCalib(t);
68 //________________________________________________________________
69 AliZDCCalibData &AliZDCCalibData::operator =(const AliZDCCalibData& calibda)
71 // assignment operator
72 SetName(calibda.GetName());
73 SetTitle(calibda.GetName());
75 for(int t=0; t<47; t++){
76 fMeanPedestal[t] = calibda.GetMeanPed(t);
77 fMeanPedWidth[t] = calibda.GetMeanPedWidth(t);
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);
85 for(int t=0; t<6; t++) fEnCalibration[t] = calibda.GetEnCalib(t);
90 //________________________________________________________________
91 AliZDCCalibData::~AliZDCCalibData()
96 //________________________________________________________________
97 void AliZDCCalibData::Reset()
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));
107 //________________________________________________________________
108 void AliZDCCalibData::CleanHistos()
110 if (fHistMeanPed) delete fHistMeanPed; fHistMeanPed = 0;
113 //________________________________________________________________
114 void AliZDCCalibData::PrepHistos()
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));
125 //________________________________________________________________
126 void AliZDCCalibData::Print(Option_t *) const
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]);
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]);
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]);
163 //________________________________________________________________
164 void AliZDCCalibData::SetMeanPed(Float_t* MeanPed)
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.;
169 //________________________________________________________________
170 void AliZDCCalibData::SetMeanPedWidth(Float_t* MeanPedWidth)
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.;
176 //________________________________________________________________
177 void AliZDCCalibData::SetOOTPed(Float_t* OOTPed)
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.;
183 //________________________________________________________________
184 void AliZDCCalibData::SetOOTPedWidth(Float_t* OOTPedWidth)
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.;
190 //________________________________________________________________
191 void AliZDCCalibData:: SetPedCorrCoeff(Float_t* PedCorrCoeff0,
192 Float_t* PedCorrCoeff1)
194 if(PedCorrCoeff0 && PedCorrCoeff1) for(int t=0; t<44; t++){
195 fPedCorrCoeff[0][t] = PedCorrCoeff0[t];
196 fPedCorrCoeff[1][t] = PedCorrCoeff1[t];
198 else for(int t=0; t<44; t++){
199 fPedCorrCoeff[0][t] = 0.;
200 fPedCorrCoeff[1][t] = 0.;
204 //________________________________________________________________
205 void AliZDCCalibData::SetEnCalib(Float_t* EnCalib)
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.;