Line data Source code
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 : // -> values for energy calibration and relative sector calibration //
22 : // //
23 : ///////////////////////////////////////////////////////////////////////////////
24 :
25 : #include "AliZDCCalib.h"
26 :
27 12 : ClassImp(AliZDCCalib)
28 :
29 : //________________________________________________________________
30 : AliZDCCalib::AliZDCCalib():
31 0 : TNamed()
32 0 : {
33 0 : Reset();
34 0 : }
35 :
36 : //________________________________________________________________
37 : AliZDCCalib::AliZDCCalib(const char* name):
38 0 : TNamed()
39 0 : {
40 : // Constructor
41 0 : TString namst = "Calib_";
42 0 : namst += name;
43 0 : SetName(namst.Data());
44 0 : SetTitle(namst.Data());
45 0 : Reset();
46 0 : for(Int_t i=0; i<6; i++){
47 0 : fEnCalibration[i] = 0.;
48 0 : if(i<5){
49 0 : fZN1EqualCoeff[i] = 0.;
50 0 : fZP1EqualCoeff[i] = 0.;
51 0 : fZN2EqualCoeff[i] = 0.;
52 0 : fZP2EqualCoeff[i] = 0.;
53 0 : }
54 : }
55 0 : }
56 :
57 : //________________________________________________________________
58 : AliZDCCalib::AliZDCCalib(const AliZDCCalib& calibda) :
59 0 : TNamed(calibda)
60 0 : {
61 : // Copy constructor
62 0 : SetName(calibda.GetName());
63 0 : SetTitle(calibda.GetName());
64 0 : Reset();
65 0 : for(int i=0; i<6; i++){
66 0 : fEnCalibration[i] = calibda.GetEnCalib(i);
67 0 : if(i<5){
68 0 : fZN1EqualCoeff[i] = calibda.GetZN1EqualCoeff(i);
69 0 : fZP1EqualCoeff[i] = calibda.GetZP1EqualCoeff(i);
70 0 : fZN2EqualCoeff[i] = calibda.GetZN2EqualCoeff(i);
71 0 : fZP2EqualCoeff[i] = calibda.GetZP2EqualCoeff(i);
72 0 : }
73 : }
74 0 : }
75 :
76 : //________________________________________________________________
77 : AliZDCCalib &AliZDCCalib::operator =(const AliZDCCalib& calibda)
78 : {
79 : // assignment operator
80 0 : SetName(calibda.GetName());
81 0 : SetTitle(calibda.GetName());
82 0 : Reset();
83 0 : for(int i=0; i<6; i++){
84 0 : fEnCalibration[i] = calibda.GetEnCalib(i);
85 0 : if(i<5){
86 0 : fZN1EqualCoeff[i] = calibda.GetZN1EqualCoeff(i);
87 0 : fZP1EqualCoeff[i] = calibda.GetZP1EqualCoeff(i);
88 0 : fZN2EqualCoeff[i] = calibda.GetZN2EqualCoeff(i);
89 0 : fZP2EqualCoeff[i] = calibda.GetZP2EqualCoeff(i);
90 0 : }
91 : }
92 :
93 0 : return *this;
94 : }
95 :
96 : //________________________________________________________________
97 : AliZDCCalib::~AliZDCCalib()
98 0 : {
99 0 : }
100 :
101 : //________________________________________________________________
102 : void AliZDCCalib::Reset()
103 : {
104 : // Reset
105 0 : memset(fEnCalibration,0,6*sizeof(Float_t));
106 0 : memset(fZN1EqualCoeff,0,5*sizeof(Float_t));
107 0 : memset(fZP1EqualCoeff,0,5*sizeof(Float_t));
108 0 : memset(fZN2EqualCoeff,0,5*sizeof(Float_t));
109 0 : memset(fZP2EqualCoeff,0,5*sizeof(Float_t));
110 0 : }
111 :
112 :
113 : //________________________________________________________________
114 : void AliZDCCalib::Print(Option_t *) const
115 : {
116 : // Printing of calibration object
117 0 : printf("\n\n ####### Energy calibration coefficients ####### \n");
118 0 : printf(" ZN1 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[0]);
119 0 : printf(" ZP1 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[1]);
120 0 : printf(" ZN2 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[2]);
121 0 : printf(" ZP2 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[3]);
122 0 : printf(" ZEM1 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[4]);
123 0 : printf(" ZEM2 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[5]);
124 :
125 0 : printf("\n\n ####### Equalization coefficients ####### \n");
126 0 : printf(" ZN1 -> %1.2f %1.2f %1.2f %1.2f %1.2f \n",
127 0 : fZN1EqualCoeff[0],fZN1EqualCoeff[1],fZN1EqualCoeff[2],fZN1EqualCoeff[3],fZN1EqualCoeff[4]);
128 0 : printf(" ZP1 -> %1.2f %1.2f %1.2f %1.2f %1.2f \n",
129 0 : fZP1EqualCoeff[0],fZP1EqualCoeff[1],fZP1EqualCoeff[2],fZP1EqualCoeff[3],fZP1EqualCoeff[4]);
130 0 : printf(" ZN2 -> %1.2f %1.2f %1.2f %1.2f %1.2f \n",
131 0 : fZN2EqualCoeff[0],fZN2EqualCoeff[1],fZN2EqualCoeff[2],fZN2EqualCoeff[3],fZN2EqualCoeff[4]);
132 0 : printf(" ZP2 -> %1.2f %1.2f %1.2f %1.2f %1.2f \n",
133 0 : fZP2EqualCoeff[0],fZP2EqualCoeff[1],fZP2EqualCoeff[2],fZP2EqualCoeff[3],fZP2EqualCoeff[4]);
134 :
135 0 : }
136 :
137 : //________________________________________________________________
138 : void AliZDCCalib::SetEnCalib(Float_t* EnCalib)
139 : {
140 : // Set energy calibration coefficients
141 0 : if(EnCalib) for(int t=0; t<6; t++) fEnCalibration[t] = EnCalib[t];
142 0 : else for(int t=0; t<6; t++) fEnCalibration[t] = 0.;
143 0 : }
144 :
145 : //________________________________________________________________
146 : void AliZDCCalib::SetZN1EqualCoeff(Float_t* EqualCoeff)
147 : {
148 : // Set ZN1 equalization coefficients
149 0 : if(EqualCoeff) for(int t=0; t<5; t++) fZN1EqualCoeff[t] = EqualCoeff[t];
150 0 : else for(int t=0; t<5; t++) fZN1EqualCoeff[t] = 1.;
151 0 : }
152 :
153 : //________________________________________________________________
154 : void AliZDCCalib::SetZP1EqualCoeff(Float_t* EqualCoeff)
155 : {
156 : // Set ZP1 equalization coefficients
157 0 : if(EqualCoeff) for(int t=0; t<5; t++) fZP1EqualCoeff[t] = EqualCoeff[t];
158 0 : else for(int t=0; t<5; t++) fZP1EqualCoeff[t] = 1.;
159 0 : }
160 : //________________________________________________________________
161 : void AliZDCCalib::SetZN2EqualCoeff(Float_t* EqualCoeff)
162 : {
163 : // Set ZN2 equalization coefficients
164 0 : if(EqualCoeff) for(int t=0; t<5; t++) fZN2EqualCoeff[t] = EqualCoeff[t];
165 0 : else for(int t=0; t<5; t++) fZN2EqualCoeff[t] = 1.;
166 0 : }
167 :
168 : //________________________________________________________________
169 : void AliZDCCalib::SetZP2EqualCoeff(Float_t* EqualCoeff)
170 : {
171 : // Set ZN1 equalization coefficients
172 0 : if(EqualCoeff) for(int t=0; t<5; t++) fZP2EqualCoeff[t] = EqualCoeff[t];
173 0 : else for(int t=0; t<5; t++) fZP2EqualCoeff[t] = 1.;
174 0 : }
175 :
|