#include <TMath.h>
#include "AliEMCALCalibData.h"
ClassImp(AliEMCALCalibData)
AliEMCALCalibData::AliEMCALCalibData() :
TNamed(), fADCchannelRef(0)
{
Reset();
}
AliEMCALCalibData::AliEMCALCalibData(const char* name) :
TNamed(name,name),fADCchannelRef(0)
{
Reset();
}
AliEMCALCalibData::AliEMCALCalibData(const AliEMCALCalibData& calibda) :
TNamed(calibda), fADCchannelRef(calibda.fADCchannelRef)
{
SetName (calibda.GetName());
SetTitle(calibda.GetName());
Reset();
Int_t nSMod = AliEMCALGeoParams::fgkEMCALModules;
Int_t nCol = AliEMCALGeoParams::fgkEMCALCols;
Int_t nRow = AliEMCALGeoParams::fgkEMCALRows;
for(Int_t supermodule = 0; supermodule < nSMod; supermodule++)
{
nCol = AliEMCALGeoParams::fgkEMCALCols;
nRow = AliEMCALGeoParams::fgkEMCALRows;
for(Int_t column = 0; column<nCol; column++)
{
for(Int_t row = 0; row<nRow; row++)
{
SetADCchannel (supermodule,column,row, calibda.GetADCchannel (supermodule,column,row));
SetADCchannelOnline(supermodule,column,row, calibda.GetADCchannelOnline(supermodule,column,row));
SetADCchannelDecal (supermodule,column,row, calibda.GetADCchannelDecal (supermodule,column,row));
SetADCpedestal (supermodule,column,row, calibda.GetADCpedestal (supermodule,column,row));
SetTimeChannelDecal(supermodule,column,row, calibda.GetTimeChannelDecal(supermodule,column,row));
for(Int_t bc = 0; bc < 4; bc++)
SetTimeChannel(supermodule,column,row,bc,calibda.GetTimeChannel(supermodule,column,row,bc));
}
}
}
}
AliEMCALCalibData &AliEMCALCalibData::operator =(const AliEMCALCalibData& calibda)
{
SetName (calibda.GetName());
SetTitle(calibda.GetName());
Reset();
fADCchannelRef = calibda.GetADCchannelRef() ;
Int_t nSMod = AliEMCALGeoParams::fgkEMCALModules;
Int_t nCol = AliEMCALGeoParams::fgkEMCALCols;
Int_t nRow = AliEMCALGeoParams::fgkEMCALRows;
for(Int_t supermodule = 0; supermodule < nSMod; supermodule++)
{
nCol = AliEMCALGeoParams::fgkEMCALCols;
nRow = AliEMCALGeoParams::fgkEMCALRows;
for(Int_t column = 0; column<nCol; column++)
{
for(Int_t row = 0; row<nRow; row++)
{
SetADCchannel (supermodule,column,row, calibda.GetADCchannel (supermodule,column,row));
SetADCchannelOnline(supermodule,column,row, calibda.GetADCchannelOnline(supermodule,column,row));
SetADCchannelDecal (supermodule,column,row, calibda.GetADCchannelDecal (supermodule,column,row));
SetADCpedestal (supermodule,column,row, calibda.GetADCpedestal (supermodule,column,row));
SetTimeChannelDecal(supermodule,column,row, calibda.GetTimeChannelDecal(supermodule,column,row));
for(Int_t bc = 0; bc < 4; bc++)
SetTimeChannel(supermodule,column,row,bc,calibda.GetTimeChannel(supermodule,column,row,bc));
}
}
}
return *this;
}
void AliEMCALCalibData::Reset()
{
fADCchannelRef = 0.0162;
Int_t nSMod = AliEMCALGeoParams::fgkEMCALModules;
Int_t nCol = AliEMCALGeoParams::fgkEMCALCols;
Int_t nRow = AliEMCALGeoParams::fgkEMCALRows;
for (Int_t supermodule=0; supermodule<nSMod; supermodule++)
{
nCol = AliEMCALGeoParams::fgkEMCALCols;
nRow = AliEMCALGeoParams::fgkEMCALRows;
for (Int_t column=0; column < nCol; column++)
{
for (Int_t row = 0; row < nRow; row++)
{
SetADCchannel (supermodule,column,row, fADCchannelRef);
SetADCchannelOnline(supermodule,column,row, fADCchannelRef);
SetADCchannelDecal (supermodule,column,row, 1);
SetADCpedestal (supermodule,column,row, 0);
SetTimeChannelDecal(supermodule,column,row, 0);
for(Int_t bc = 0; bc < 4; bc++)
SetTimeChannel(supermodule,column,row, bc, 0);
}
}
}
}
void AliEMCALCalibData::Print(Option_t *option) const
{
Int_t nSMod = AliEMCALGeoParams::fgkEMCALModules;
Int_t nCol = AliEMCALGeoParams::fgkEMCALCols;
Int_t nRow = AliEMCALGeoParams::fgkEMCALRows;
for (Int_t supermodule = 0; supermodule < nSMod; supermodule++)
{
nCol = AliEMCALGeoParams::fgkEMCALCols;
nRow = AliEMCALGeoParams::fgkEMCALRows;
printf("============== Supermodule %d\n",supermodule+1);
for (Int_t column = 0; column < nCol; column++)
{
for (Int_t row = 0; row < nRow; row++)
{
printf("[col %d,row %d] ",column, row);
if (strstr(option,"gain") || strstr(option,"all"))
printf("calib=%2.4f ",GetADCchannel(supermodule,column,row));
if (strstr(option,"online") || strstr(option,"all"))
printf("calib0=%2.4f ", GetADCchannelOnline(supermodule,column,row));
if (strstr(option,"decal") || strstr(option,"all"))
printf("calibDecal=%2.4f ",GetADCchannelDecal(supermodule,column,row));
if (strstr(option,"ped") || strstr(option,"all"))
printf("ped=%2.4f ", GetADCpedestal(supermodule,column,row));
if (strstr(option,"time") || strstr(option,"all"))
printf("time::bc0 =%2.4f, bc1=%2.4f, bc2=%2.4f, bc3=%2.4f ",
GetTimeChannel(supermodule,column,row,0), GetTimeChannel(supermodule,column,row,1), GetTimeChannel(supermodule,column,row,2), GetTimeChannel(supermodule,column,row,3));
if (strstr(option,"timdecal") || strstr(option,"all"))
printf("timeDecal=%2.4f ", GetTimeChannelDecal(supermodule,column,row));
if (strstr(option,"all") || (row%4==3) ) printf("\n");
}
}
}
}
Float_t AliEMCALCalibData::GetADCchannel(Int_t supermodule, Int_t column, Int_t row) const
{
if(supermodule < 12) return fADCchannel [supermodule] [column][row];
else return fADCchannelDCAL[supermodule-12][column][row];
}
Float_t AliEMCALCalibData::GetADCchannelOnline(Int_t supermodule, Int_t column, Int_t row) const
{
if(supermodule < 12) return fADCchannelOnline [supermodule] [column][row];
else return fADCchannelOnlineDCAL[supermodule-12][column][row];
}
Float_t AliEMCALCalibData::GetADCchannelDecal(Int_t supermodule, Int_t column, Int_t row) const
{
if(supermodule < 12) return fADCchannelDecal [supermodule] [column][row];
else return fADCchannelDecalDCAL[supermodule-12][column][row];
}
Float_t AliEMCALCalibData::GetADCpedestal(Int_t supermodule, Int_t column, Int_t row) const
{
if(supermodule < 12) return fADCpedestal [supermodule] [column][row];
else return fADCpedestalDCAL[supermodule-12][column][row];
}
Float_t AliEMCALCalibData::GetTimeChannel(Int_t supermodule, Int_t column, Int_t row, Int_t bc) const
{
if(supermodule < 12) return fTimeChannel [supermodule] [column][row][bc];
else return fTimeChannelDCAL[supermodule-12][column][row][bc];
}
Float_t AliEMCALCalibData::GetTimeChannelDecal(Int_t supermodule, Int_t column, Int_t row) const
{
if(supermodule < 12) return fTimeChannelDecal [supermodule] [column][row];
else return fTimeChannelDecalDCAL[supermodule-12][column][row];
}
void AliEMCALCalibData::SetADCchannel(Int_t supermodule, Int_t column, Int_t row, Float_t value)
{
if(supermodule < 12) fADCchannel [supermodule] [column][row] = value;
else fADCchannelDCAL[supermodule-12][column][row] = value;
}
void AliEMCALCalibData::SetADCchannelOnline(Int_t supermodule, Int_t column, Int_t row, Float_t value)
{
if(supermodule < 12) fADCchannelOnline [supermodule] [column][row] = value;
else fADCchannelOnlineDCAL[supermodule-12][column][row] = value;
}
void AliEMCALCalibData::SetADCchannelDecal(Int_t supermodule, Int_t column, Int_t row, Float_t value)
{
if(supermodule < 12) fADCchannelDecal [supermodule] [column][row] = value;
else fADCchannelDecalDCAL[supermodule-12][column][row] = value;
}
void AliEMCALCalibData::SetADCpedestal(Int_t supermodule, Int_t column, Int_t row, Float_t value)
{
if(supermodule < 12) fADCpedestal [supermodule] [column][row] = value;
else fADCpedestalDCAL[supermodule-12][column][row] = value;
}
void AliEMCALCalibData::SetTimeChannel(Int_t supermodule, Int_t column, Int_t row, Int_t bc, Float_t value)
{
if(supermodule < 12) fTimeChannel [supermodule] [column][row][bc] = value;
else fTimeChannelDCAL[supermodule-12][column][row][bc] = value;
}
void AliEMCALCalibData::SetTimeChannelDecal(Int_t supermodule, Int_t column, Int_t row, Float_t value)
{
if(supermodule < 12) fTimeChannelDecal [supermodule] [column][row] = value;
else fTimeChannelDecalDCAL[supermodule-12][column][row] = value;
}
AliEMCALCalibData.cxx:100 AliEMCALCalibData.cxx:101 AliEMCALCalibData.cxx:102 AliEMCALCalibData.cxx:103 AliEMCALCalibData.cxx:104 AliEMCALCalibData.cxx:105 AliEMCALCalibData.cxx:106 AliEMCALCalibData.cxx:107 AliEMCALCalibData.cxx:108 AliEMCALCalibData.cxx:109 AliEMCALCalibData.cxx:110 AliEMCALCalibData.cxx:111 AliEMCALCalibData.cxx:112 AliEMCALCalibData.cxx:113 AliEMCALCalibData.cxx:114 AliEMCALCalibData.cxx:115 AliEMCALCalibData.cxx:116 AliEMCALCalibData.cxx:117 AliEMCALCalibData.cxx:118 AliEMCALCalibData.cxx:119 AliEMCALCalibData.cxx:120 AliEMCALCalibData.cxx:121 AliEMCALCalibData.cxx:122 AliEMCALCalibData.cxx:123 AliEMCALCalibData.cxx:124 AliEMCALCalibData.cxx:125 AliEMCALCalibData.cxx:126 AliEMCALCalibData.cxx:127 AliEMCALCalibData.cxx:128 AliEMCALCalibData.cxx:129 AliEMCALCalibData.cxx:130 AliEMCALCalibData.cxx:131 AliEMCALCalibData.cxx:132 AliEMCALCalibData.cxx:133 AliEMCALCalibData.cxx:134 AliEMCALCalibData.cxx:135 AliEMCALCalibData.cxx:136 AliEMCALCalibData.cxx:137 AliEMCALCalibData.cxx:138 AliEMCALCalibData.cxx:139 AliEMCALCalibData.cxx:140 AliEMCALCalibData.cxx:141 AliEMCALCalibData.cxx:142 AliEMCALCalibData.cxx:143 AliEMCALCalibData.cxx:144 AliEMCALCalibData.cxx:145 AliEMCALCalibData.cxx:146 AliEMCALCalibData.cxx:147 AliEMCALCalibData.cxx:148 AliEMCALCalibData.cxx:149 AliEMCALCalibData.cxx:150 AliEMCALCalibData.cxx:151 AliEMCALCalibData.cxx:152 AliEMCALCalibData.cxx:153 AliEMCALCalibData.cxx:154 AliEMCALCalibData.cxx:155 AliEMCALCalibData.cxx:156 AliEMCALCalibData.cxx:157 AliEMCALCalibData.cxx:158 AliEMCALCalibData.cxx:159 AliEMCALCalibData.cxx:160 AliEMCALCalibData.cxx:161 AliEMCALCalibData.cxx:162 AliEMCALCalibData.cxx:163 AliEMCALCalibData.cxx:164 AliEMCALCalibData.cxx:165 AliEMCALCalibData.cxx:166 AliEMCALCalibData.cxx:167 AliEMCALCalibData.cxx:168 AliEMCALCalibData.cxx:169 AliEMCALCalibData.cxx:170 AliEMCALCalibData.cxx:171 AliEMCALCalibData.cxx:172 AliEMCALCalibData.cxx:173 AliEMCALCalibData.cxx:174 AliEMCALCalibData.cxx:175 AliEMCALCalibData.cxx:176 AliEMCALCalibData.cxx:177 AliEMCALCalibData.cxx:178 AliEMCALCalibData.cxx:179 AliEMCALCalibData.cxx:180 AliEMCALCalibData.cxx:181 AliEMCALCalibData.cxx:182 AliEMCALCalibData.cxx:183 AliEMCALCalibData.cxx:184 AliEMCALCalibData.cxx:185 AliEMCALCalibData.cxx:186 AliEMCALCalibData.cxx:187 AliEMCALCalibData.cxx:188 AliEMCALCalibData.cxx:189 AliEMCALCalibData.cxx:190 AliEMCALCalibData.cxx:191 AliEMCALCalibData.cxx:192 AliEMCALCalibData.cxx:193 AliEMCALCalibData.cxx:194 AliEMCALCalibData.cxx:195 AliEMCALCalibData.cxx:196 AliEMCALCalibData.cxx:197 AliEMCALCalibData.cxx:198 AliEMCALCalibData.cxx:199 AliEMCALCalibData.cxx:200 AliEMCALCalibData.cxx:201 AliEMCALCalibData.cxx:202 AliEMCALCalibData.cxx:203 AliEMCALCalibData.cxx:204 AliEMCALCalibData.cxx:205 AliEMCALCalibData.cxx:206 AliEMCALCalibData.cxx:207 AliEMCALCalibData.cxx:208 AliEMCALCalibData.cxx:209 AliEMCALCalibData.cxx:210 AliEMCALCalibData.cxx:211 AliEMCALCalibData.cxx:212 AliEMCALCalibData.cxx:213 AliEMCALCalibData.cxx:214 AliEMCALCalibData.cxx:215 AliEMCALCalibData.cxx:216 AliEMCALCalibData.cxx:217 AliEMCALCalibData.cxx:218 AliEMCALCalibData.cxx:219 AliEMCALCalibData.cxx:220 AliEMCALCalibData.cxx:221 AliEMCALCalibData.cxx:222 AliEMCALCalibData.cxx:223 AliEMCALCalibData.cxx:224 AliEMCALCalibData.cxx:225 AliEMCALCalibData.cxx:226 AliEMCALCalibData.cxx:227 AliEMCALCalibData.cxx:228 AliEMCALCalibData.cxx:229 AliEMCALCalibData.cxx:230 AliEMCALCalibData.cxx:231 AliEMCALCalibData.cxx:232 AliEMCALCalibData.cxx:233 AliEMCALCalibData.cxx:234 AliEMCALCalibData.cxx:235 AliEMCALCalibData.cxx:236 AliEMCALCalibData.cxx:237 AliEMCALCalibData.cxx:238 AliEMCALCalibData.cxx:239 AliEMCALCalibData.cxx:240 AliEMCALCalibData.cxx:241 AliEMCALCalibData.cxx:242 AliEMCALCalibData.cxx:243 AliEMCALCalibData.cxx:244 AliEMCALCalibData.cxx:245 AliEMCALCalibData.cxx:246 AliEMCALCalibData.cxx:247 AliEMCALCalibData.cxx:248 AliEMCALCalibData.cxx:249 AliEMCALCalibData.cxx:250 AliEMCALCalibData.cxx:251 AliEMCALCalibData.cxx:252 AliEMCALCalibData.cxx:253 AliEMCALCalibData.cxx:254 AliEMCALCalibData.cxx:255 AliEMCALCalibData.cxx:256 AliEMCALCalibData.cxx:257 AliEMCALCalibData.cxx:258 AliEMCALCalibData.cxx:259 AliEMCALCalibData.cxx:260 AliEMCALCalibData.cxx:261 AliEMCALCalibData.cxx:262 AliEMCALCalibData.cxx:263 AliEMCALCalibData.cxx:264 AliEMCALCalibData.cxx:265 AliEMCALCalibData.cxx:266 AliEMCALCalibData.cxx:267 AliEMCALCalibData.cxx:268 AliEMCALCalibData.cxx:269 AliEMCALCalibData.cxx:270 AliEMCALCalibData.cxx:271 AliEMCALCalibData.cxx:272 AliEMCALCalibData.cxx:273 AliEMCALCalibData.cxx:274 AliEMCALCalibData.cxx:275 AliEMCALCalibData.cxx:276 AliEMCALCalibData.cxx:277 AliEMCALCalibData.cxx:278 AliEMCALCalibData.cxx:279 AliEMCALCalibData.cxx:280 AliEMCALCalibData.cxx:281 AliEMCALCalibData.cxx:282 AliEMCALCalibData.cxx:283 AliEMCALCalibData.cxx:284 AliEMCALCalibData.cxx:285 AliEMCALCalibData.cxx:286 AliEMCALCalibData.cxx:287 AliEMCALCalibData.cxx:288 AliEMCALCalibData.cxx:289 AliEMCALCalibData.cxx:290 AliEMCALCalibData.cxx:291 AliEMCALCalibData.cxx:292 AliEMCALCalibData.cxx:293 AliEMCALCalibData.cxx:294 AliEMCALCalibData.cxx:295 AliEMCALCalibData.cxx:296 AliEMCALCalibData.cxx:297 AliEMCALCalibData.cxx:298 AliEMCALCalibData.cxx:299 AliEMCALCalibData.cxx:300 AliEMCALCalibData.cxx:301 AliEMCALCalibData.cxx:302 AliEMCALCalibData.cxx:303 AliEMCALCalibData.cxx:304 AliEMCALCalibData.cxx:305 AliEMCALCalibData.cxx:306 AliEMCALCalibData.cxx:307 AliEMCALCalibData.cxx:308 AliEMCALCalibData.cxx:309 AliEMCALCalibData.cxx:310 AliEMCALCalibData.cxx:311 AliEMCALCalibData.cxx:312 AliEMCALCalibData.cxx:313 AliEMCALCalibData.cxx:314 AliEMCALCalibData.cxx:315 AliEMCALCalibData.cxx:316 AliEMCALCalibData.cxx:317 AliEMCALCalibData.cxx:318 AliEMCALCalibData.cxx:319 AliEMCALCalibData.cxx:320 AliEMCALCalibData.cxx:321 AliEMCALCalibData.cxx:322 AliEMCALCalibData.cxx:323 AliEMCALCalibData.cxx:324 AliEMCALCalibData.cxx:325 AliEMCALCalibData.cxx:326 AliEMCALCalibData.cxx:327 AliEMCALCalibData.cxx:328 AliEMCALCalibData.cxx:329 AliEMCALCalibData.cxx:330 AliEMCALCalibData.cxx:331 AliEMCALCalibData.cxx:332 AliEMCALCalibData.cxx:333 AliEMCALCalibData.cxx:334 AliEMCALCalibData.cxx:335 AliEMCALCalibData.cxx:336 AliEMCALCalibData.cxx:337 AliEMCALCalibData.cxx:338 AliEMCALCalibData.cxx:339 AliEMCALCalibData.cxx:340