]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ZDC/AliZDCCalibData.cxx
Protection against special particle types.
[u/mrichter/AliRoot.git] / ZDC / AliZDCCalibData.cxx
CommitLineData
8af17dba 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
26ClassImp(AliZDCCalibData)
27
28//________________________________________________________________
29AliZDCCalibData::AliZDCCalibData()
30{
8831501a 31// fHistMeanPed=0;
8af17dba 32 Reset();
33}
34
35//________________________________________________________________
36AliZDCCalibData::AliZDCCalibData(const char* name)
37{
8a2624cc 38 // Constructor
8af17dba 39 TString namst = "Calib_";
40 namst += name;
41 SetName(namst.Data());
42 SetTitle(namst.Data());
8831501a 43// fHistMeanPed=0;
8af17dba 44 Reset();
45}
46
8599f95e 47//________________________________________________________________
48AliZDCCalibData::AliZDCCalibData(const AliZDCCalibData& calibda) :
49 TNamed(calibda)
50{
51// copy constructor
52 SetName(calibda.GetName());
53 SetTitle(calibda.GetName());
54 Reset();
8831501a 55 for(int t=0; t<47; t++){
56 fMeanPedestal[t] = calibda.GetMeanPed(t);
57 fMeanPedWidth[t] = calibda.GetMeanPedWidth(t);
58 }
59 for(int t=0; t<44; t++){
60 fOOTPedestal[t] = calibda.GetOOTPed(t);
61 fOOTPedWidth[t] = calibda.GetOOTPedWidth(t);
62 fPedCorrCoeff[0][t] = calibda.GetPedCorrCoeff0(t);
63 fPedCorrCoeff[1][t] = calibda.GetPedCorrCoeff1(t);
64 }
72bde173 65 for(int t=0; t<6; t++) fEnCalibration[t] = calibda.GetEnCalib(t);
8831501a 66// PrepHistos();
8599f95e 67}
68
69//________________________________________________________________
70AliZDCCalibData &AliZDCCalibData::operator =(const AliZDCCalibData& calibda)
71{
72// assignment operator
73 SetName(calibda.GetName());
74 SetTitle(calibda.GetName());
75 Reset();
8831501a 76 for(int t=0; t<47; t++){
77 fMeanPedestal[t] = calibda.GetMeanPed(t);
78 fMeanPedWidth[t] = calibda.GetMeanPedWidth(t);
79 }
80 for(int t=0; t<44; t++){
81 fOOTPedestal[t] = calibda.GetOOTPed(t);
82 fOOTPedWidth[t] = calibda.GetOOTPedWidth(t);
83 fPedCorrCoeff[0][t] = calibda.GetPedCorrCoeff0(t);
84 fPedCorrCoeff[1][t] = calibda.GetPedCorrCoeff1(t);
85 }
72bde173 86 for(int t=0; t<6; t++) fEnCalibration[t] = calibda.GetEnCalib(t);
8831501a 87// PrepHistos();
8599f95e 88 return *this;
89}
90
8af17dba 91//________________________________________________________________
92AliZDCCalibData::~AliZDCCalibData()
93{
8831501a 94// CleanHistos();
8af17dba 95}
96
97//________________________________________________________________
98void AliZDCCalibData::Reset()
99{
8a2624cc 100 // Reset
8af17dba 101 memset(fMeanPedestal,0,47*sizeof(Float_t));
8831501a 102 memset(fMeanPedWidth,0,47*sizeof(Float_t));
72bde173 103 memset(fOOTPedestal,0,44*sizeof(Float_t));
8831501a 104 memset(fOOTPedWidth,0,44*sizeof(Float_t));
72bde173 105 memset(fEnCalibration,0,6*sizeof(Float_t));
8af17dba 106}
107
8831501a 108/*
8af17dba 109//________________________________________________________________
110void AliZDCCalibData::CleanHistos()
111{
112 if (fHistMeanPed) delete fHistMeanPed; fHistMeanPed = 0;
113}
114
115//________________________________________________________________
116void AliZDCCalibData::PrepHistos()
117{
8599f95e 118// CleanHistos(); // this gives a segm.viol!
119 Int_t kNChannels = 47;
120 Float_t kMaxPedVal = 47.;
8af17dba 121 TString hname = GetName(); hname += "_Pedestals";
78d18275 122 fHistMeanPed = new TH1F(hname.Data(),hname.Data(),kNChannels,0.,kMaxPedVal);
123 for(int i=0; i<47; i++) fHistMeanPed->SetBinContent(i+1,GetMeanPed(i));
8af17dba 124}
8831501a 125*/
8af17dba 126
127//________________________________________________________________
5bc762ca 128void AliZDCCalibData::Print(Option_t *) const
8af17dba 129{
8a2624cc 130 // Printing of calibration object
e1ea0c63 131 printf("\n ####### In-time pedestal values (mean value, sigma) ####### \n");
132 for(int t=0; t<44; t++){
133 if(t==0 || t==24) printf("\n-------- ZN HighRes -------- \n");
134 else if(t==5 || t==29) printf("\n-------- ZN LowRes -------- \n");
135 else if(t==10 || t==34) printf("\n-------- ZP HighRes -------- \n");
136 else if(t==15 || t==39) printf("\n-------- ZP LowRes -------- \n");
137 else if(t==20) printf("\n-------- ZEM1 HighRes -------- \n");
138 else if(t==21) printf("\n-------- ZEM1 LowRes -------- \n");
139 else if(t==22) printf("\n-------- ZEM2 HighRes -------- \n");
140 else if(t==23) printf("\n-------- ZEM2 LowRes -------- \n");
141 printf("ADC%d (%.1f, %.1f)\t",t,fMeanPedestal[t],fMeanPedWidth[t]);
31af5828 142 }
e1ea0c63 143 //
144 printf("\n\n\n ####### Out-of-time pedestal values (mean value, sigma) ####### \n");
72bde173 145 for(int t=0; t<44; t++){
e1ea0c63 146 if(t==0 || t==24) printf("\n-------- ZN HighRes -------- \n");
147 else if(t==5 || t==29) printf("\n-------- ZN LowRes -------- \n");
148 else if(t==10 || t==34) printf("\n-------- ZP HighRes -------- \n");
149 else if(t==15 || t==39) printf("\n-------- ZP LowRes -------- \n");
150 else if(t==20) printf("\n-------- ZEM1 HighRes -------- \n");
151 else if(t==21) printf("\n-------- ZEM1 LowRes -------- \n");
152 else if(t==22) printf("\n-------- ZEM2 HighRes -------- \n");
153 else if(t==23) printf("\n-------- ZEM2 LowRes -------- \n");
154 printf("ADC%d (%.1f, %.1f)\t",t,fOOTPedestal[t],fOOTPedWidth[t]);
8af17dba 155 }
72bde173 156
e1ea0c63 157 printf("\n\n\n ####### Energy calibration coefficients ####### \n");
158 printf(" ZN1 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[0]);
159 printf(" ZP1 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[1]);
160 printf(" ZN2 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[2]);
161 printf(" ZP2 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[3]);
162 printf(" ZEM1 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[4]);
163 printf(" ZEM2 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[5]);
8af17dba 164}
165
166//________________________________________________________________
167void AliZDCCalibData::SetMeanPed(Float_t* MeanPed)
168{
169 if(MeanPed) for(int t=0; t<47; t++) fMeanPedestal[t] = MeanPed[t];
72bde173 170 else for(int t=0; t<47; t++) fMeanPedestal[t] = 0.;
171}
8831501a 172//________________________________________________________________
173void AliZDCCalibData::SetMeanPedWidth(Float_t* MeanPedWidth)
174{
175 if(MeanPedWidth) for(int t=0; t<47; t++) fMeanPedWidth[t] = MeanPedWidth[t];
176 else for(int t=0; t<47; t++) fMeanPedWidth[t] = 0.;
177}
72bde173 178
179//________________________________________________________________
180void AliZDCCalibData::SetOOTPed(Float_t* OOTPed)
181{
182 if(OOTPed) for(int t=0; t<44; t++) fOOTPedestal[t] = OOTPed[t];
183 else for(int t=0; t<44; t++) fOOTPedestal[t] = 0.;
8af17dba 184}
185
6a03966b 186//________________________________________________________________
187void AliZDCCalibData::SetOOTPedWidth(Float_t* OOTPedWidth)
188{
189 if(OOTPedWidth) for(int t=0; t<44; t++) fOOTPedWidth[t] = OOTPedWidth[t];
190 else for(int t=0; t<44; t++) fOOTPedWidth[t] = 0.;
191}
192
8831501a 193//________________________________________________________________
31af5828 194void AliZDCCalibData:: SetPedCorrCoeff(Float_t* PedCorrCoeff)
195{
196 // Set coefficients for pedestal correlations
197 if(PedCorrCoeff){
198 for(Int_t j=0; j<2; j++){
199 for(int t=0; t<44; t++)
200 fPedCorrCoeff[j][t] = PedCorrCoeff[t];
201 }
202 }
203 else{
204 for(Int_t j=0; j<2; j++){
205 for(int t=0; t<44; t++)
206 fPedCorrCoeff[j][t] = 0.;
207 }
208 }
209
210}
211
212//________________________________________________________________
213void AliZDCCalibData:: SetPedCorrCoeff(Float_t* PedCorrCoeff0, Float_t* PedCorrCoeff1)
8831501a 214{
8a2624cc 215 // Set coefficients for pedestal correlations
31af5828 216 if(PedCorrCoeff0 && PedCorrCoeff1){
217 for(int t=0; t<44; t++){
218 fPedCorrCoeff[0][t] = PedCorrCoeff0[t];
219 fPedCorrCoeff[0][t] = PedCorrCoeff1[t];
220 }
8831501a 221 }
31af5828 222 else{
223 for(int t=0; t<44; t++){
224 fPedCorrCoeff[0][t] = 0.;
225 fPedCorrCoeff[1][t] = 0.;
226 }
8831501a 227 }
31af5828 228
8831501a 229}
230
8af17dba 231//________________________________________________________________
232void AliZDCCalibData::SetEnCalib(Float_t* EnCalib)
233{
31af5828 234 // Set energy calibration coefficients
72bde173 235 if(EnCalib) for(int t=0; t<6; t++) fEnCalibration[t] = EnCalib[t];
236 else for(int t=0; t<6; t++) fEnCalibration[t] = 0.;
8af17dba 237}
238
31af5828 239//________________________________________________________________
240void AliZDCCalibData::SetPMTHVVal(Float_t* HVVal)
241{
242 // Set PMTs HV values
243 if(HVVal) for(int t=0; t<22; t++) fPMTHVVal[t] = HVVal[t];
244 else for(int t=0; t<22; t++) fPMTHVVal[t] = 0.;
245}
246