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++) fMeanPedestal[t] = calibda.GetMeanPed(t);
55 for(int t=0; t<4; t++) fEnCalibration[t] = calibda.GetEnCalib(t);
59 //________________________________________________________________
60 AliZDCCalibData &AliZDCCalibData::operator =(const AliZDCCalibData& calibda)
62 // assignment operator
63 SetName(calibda.GetName());
64 SetTitle(calibda.GetName());
66 for(int t=0; t<47; t++) fMeanPedestal[t] = calibda.GetMeanPed(t);
67 for(int t=0; t<4; t++) fEnCalibration[t] = calibda.GetEnCalib(t);
72 //________________________________________________________________
73 AliZDCCalibData::~AliZDCCalibData()
78 //________________________________________________________________
79 void AliZDCCalibData::Reset()
81 memset(fMeanPedestal,0,47*sizeof(Float_t));
82 memset(fEnCalibration,0,4*sizeof(Float_t));
85 //________________________________________________________________
86 void AliZDCCalibData::CleanHistos()
88 if (fHistMeanPed) delete fHistMeanPed; fHistMeanPed = 0;
91 //________________________________________________________________
92 void AliZDCCalibData::PrepHistos()
94 // CleanHistos(); // this gives a segm.viol!
95 Int_t kNChannels = 47;
96 Float_t kMaxPedVal = 47.;
97 TString hname = GetName(); hname += "_Pedestals";
98 fHistMeanPed = new TH1F(hname.Data(),hname.Data(),kNChannels,0.,kMaxPedVal);
99 for(int i=0; i<47; i++) fHistMeanPed->SetBinContent(i+1,GetMeanPed(i));
102 //________________________________________________________________
103 void AliZDCCalibData::Print(Option_t *) const
105 printf("\n ---- Mean pedestal values ----\n\n");
106 for(int t=0; t<47; t++){
107 if(t==0 || t==24) printf("\t ZN HighRes -------- ");
108 else if(t==5 || t==29) printf("\t ZN LowRes -------- ");
109 else if(t==10 || t==34) printf("\t ZP HighRes -------- ");
110 else if(t==15 || t==39) printf("\t ZP LowRes -------- ");
111 else if(t==20) printf("\t ZEM1 HighRes -------- ");
112 else if(t==21) printf("\t ZEM1 LowRes -------- ");
113 else if(t==22) printf("\t ZEM2 HighRes -------- ");
114 else if(t==23) printf("\t ZEM2 LowRes -------- ");
115 printf("\t MeanPed[ADC%d] = %.1f\n",t,fMeanPedestal[t]);
118 printf("\n ---- Energy calibration coefficients ----\n\n");
119 for(int t=0; t<3; t++){
120 printf(" En Calib Coeff. [ZDC%d] = %f\n",t,fEnCalibration[t]);
124 //________________________________________________________________
125 void AliZDCCalibData::SetMeanPed(Float_t* MeanPed)
127 if(MeanPed) for(int t=0; t<47; t++) fMeanPedestal[t] = MeanPed[t];
128 else for(int t=0; t<43; t++) fMeanPedestal[t] = 0.;
131 //________________________________________________________________
132 void AliZDCCalibData::SetEnCalib(Float_t* EnCalib)
134 if(EnCalib) for(int t=0; t<4; t++) fEnCalibration[t] = EnCalib[t];
135 else for(int t=0; t<4; t++) fEnCalibration[t] = 0.;