#include "AliMUONCalibParamND.h"
#include "AliLog.h"
#include "Riostream.h"
#include "TMath.h"
#include "TString.h"
using std::cout;
using std::endl;
ClassImp(AliMUONCalibParamND)
AliMUONCalibParamND::AliMUONCalibParamND()
: AliMUONVCalibParam(),
fDimension(0),
fSize(0),
fN(0),
fValues(0x0)
{
}
AliMUONCalibParamND::AliMUONCalibParamND(Int_t dimension, Int_t theSize,
Int_t id0, Int_t id1,
Double_t fillWithValue)
: AliMUONVCalibParam(id0,id1),
fDimension(dimension),
fSize(theSize),
fN(fSize*fDimension),
fValues(0x0)
{
if ( fN > 0 )
{
fValues = new Double_t[fN];
for ( Int_t i = 0; i < fN; ++i )
{
fValues[i] = fillWithValue;
}
}
}
AliMUONCalibParamND::AliMUONCalibParamND(const AliMUONCalibParamND& other)
: AliMUONVCalibParam(),
fDimension(0),
fSize(0),
fN(0),
fValues(0x0)
{
other.CopyTo(*this);
}
AliMUONCalibParamND&
AliMUONCalibParamND::operator=(const AliMUONCalibParamND& other)
{
other.CopyTo(*this);
return *this;
}
AliMUONCalibParamND::~AliMUONCalibParamND()
{
delete[] fValues;
}
void
AliMUONCalibParamND::CopyTo(AliMUONCalibParamND& destination) const
{
TObject::Copy(destination);
delete[] destination.fValues;
destination.fN = fN;
destination.fSize = fSize;
destination.fDimension = fDimension;
if ( fN > 0 )
{
destination.fValues = new Double_t[fN];
for ( Int_t i = 0; i < fN; ++i )
{
destination.fValues[i] = fValues[i];
}
}
}
Int_t
AliMUONCalibParamND::Index(Int_t i, Int_t j) const
{
if ( i >= 0 && i < Size() && j >= 0 && j < Dimension() )
{
return IndexFast(i,j);
}
return -1;
}
Int_t
AliMUONCalibParamND::IndexFast(Int_t i, Int_t j) const
{
return i + Size()*j;
}
void
AliMUONCalibParamND::Print(Option_t* opt) const
{
TString sopt(opt);
sopt.ToUpper();
cout << Form("AliMUONCalibParamND Id=(%d,%d) Size=%d Dimension=%d",ID0(),
ID1(),Size(),Dimension()) << endl;
if ( sopt.Contains("FULL") )
{
for ( Int_t i = 0; i < Size(); ++i )
{
cout << Form("CH %3d",i);
for ( Int_t j = 0; j < Dimension(); ++j )
{
cout << Form(" %g",ValueAsDouble(i,j));
}
cout << endl;
}
}
if ( sopt.Contains("MEAN") )
{
Int_t j(0);
sscanf(sopt.Data(),"MEAN%d",&j);
Double_t mean(0);
Double_t v2(0);
Int_t n = Size();
for ( Int_t i = 0; i < Size(); ++i )
{
Float_t v = ValueAsDouble(i,j);
mean += v;
v2 += v*v;
}
mean /= n;
float sigma = 0;
if ( n > 1 ) sigma = TMath::Sqrt( (v2-n*mean*mean)/(n-1) );
cout << Form(" Mean(j=%d)=%g Sigma(j=%d)=%g",j,mean,j,sigma) << endl;
}
}
void
AliMUONCalibParamND::SetValueAsDouble(Int_t i, Int_t j, Double_t value)
{
Int_t ix = Index(i,j);
if ( ix < 0 )
{
AliError(Form("Invalid (i,j)=(%d,%d) max allowed is (%d,%d)",
i,j,Size()-1,Dimension()-1));
}
else
{
fValues[ix]=value;
}
}
void
AliMUONCalibParamND::SetValueAsDoubleFast(Int_t i, Int_t j, Double_t value)
{
fValues[IndexFast(i,j)] = value;
}
void
AliMUONCalibParamND::SetValueAsFloat(Int_t i, Int_t j, Float_t value)
{
SetValueAsDouble(i,j,static_cast<Double_t>(value));
}
void
AliMUONCalibParamND::SetValueAsFloatFast(Int_t i, Int_t j, Float_t value)
{
SetValueAsDoubleFast(i,j,static_cast<Double_t>(value));
}
void
AliMUONCalibParamND::SetValueAsInt(Int_t i, Int_t j, Int_t value)
{
SetValueAsFloat(i,j,static_cast<Float_t>(value));
}
void
AliMUONCalibParamND::SetValueAsIntFast(Int_t i, Int_t j, Int_t value)
{
SetValueAsFloatFast(i,j,static_cast<Float_t>(value));
}
Double_t
AliMUONCalibParamND::ValueAsDouble(Int_t i, Int_t j) const
{
Int_t ix = Index(i,j);
if ( ix < 0 )
{
AliError(Form("Invalid (i,j)=(%d,%d) max allowed is (%d,%d)",
i,j,Size()-1,Dimension()-1));
return 0.0;
}
else
{
return fValues[ix];
}
}
Double_t
AliMUONCalibParamND::ValueAsDoubleFast(Int_t i, Int_t j) const
{
return fValues[IndexFast(i,j)];
}
Float_t
AliMUONCalibParamND::ValueAsFloat(Int_t i, Int_t j) const
{
return static_cast<Float_t>(ValueAsDouble(i,j));
}
Float_t
AliMUONCalibParamND::ValueAsFloatFast(Int_t i, Int_t j) const
{
return static_cast<Float_t>(ValueAsDoubleFast(i,j));
}
Int_t
AliMUONCalibParamND::ValueAsInt(Int_t i, Int_t j) const
{
Float_t v = ValueAsFloat(i,j);
return TMath::Nint(v);
}
Int_t
AliMUONCalibParamND::ValueAsIntFast(Int_t i, Int_t j) const
{
Float_t v = ValueAsFloatFast(i,j);
return TMath::Nint(v);
}
AliMUONCalibParamND.cxx:1 AliMUONCalibParamND.cxx:2 AliMUONCalibParamND.cxx:3 AliMUONCalibParamND.cxx:4 AliMUONCalibParamND.cxx:5 AliMUONCalibParamND.cxx:6 AliMUONCalibParamND.cxx:7 AliMUONCalibParamND.cxx:8 AliMUONCalibParamND.cxx:9 AliMUONCalibParamND.cxx:10 AliMUONCalibParamND.cxx:11 AliMUONCalibParamND.cxx:12 AliMUONCalibParamND.cxx:13 AliMUONCalibParamND.cxx:14 AliMUONCalibParamND.cxx:15 AliMUONCalibParamND.cxx:16 AliMUONCalibParamND.cxx:17 AliMUONCalibParamND.cxx:18 AliMUONCalibParamND.cxx:19 AliMUONCalibParamND.cxx:20 AliMUONCalibParamND.cxx:21 AliMUONCalibParamND.cxx:22 AliMUONCalibParamND.cxx:23 AliMUONCalibParamND.cxx:24 AliMUONCalibParamND.cxx:25 AliMUONCalibParamND.cxx:26 AliMUONCalibParamND.cxx:27 AliMUONCalibParamND.cxx:28 AliMUONCalibParamND.cxx:29 AliMUONCalibParamND.cxx:30 AliMUONCalibParamND.cxx:31 AliMUONCalibParamND.cxx:32 AliMUONCalibParamND.cxx:33 AliMUONCalibParamND.cxx:34 AliMUONCalibParamND.cxx:35 AliMUONCalibParamND.cxx:36 AliMUONCalibParamND.cxx:37 AliMUONCalibParamND.cxx:38 AliMUONCalibParamND.cxx:39 AliMUONCalibParamND.cxx:40 AliMUONCalibParamND.cxx:41 AliMUONCalibParamND.cxx:42 AliMUONCalibParamND.cxx:43 AliMUONCalibParamND.cxx:44 AliMUONCalibParamND.cxx:45 AliMUONCalibParamND.cxx:46 AliMUONCalibParamND.cxx:47 AliMUONCalibParamND.cxx:48 AliMUONCalibParamND.cxx:49 AliMUONCalibParamND.cxx:50 AliMUONCalibParamND.cxx:51 AliMUONCalibParamND.cxx:52 AliMUONCalibParamND.cxx:53 AliMUONCalibParamND.cxx:54 AliMUONCalibParamND.cxx:55 AliMUONCalibParamND.cxx:56 AliMUONCalibParamND.cxx:57 AliMUONCalibParamND.cxx:58 AliMUONCalibParamND.cxx:59 AliMUONCalibParamND.cxx:60 AliMUONCalibParamND.cxx:61 AliMUONCalibParamND.cxx:62 AliMUONCalibParamND.cxx:63 AliMUONCalibParamND.cxx:64 AliMUONCalibParamND.cxx:65 AliMUONCalibParamND.cxx:66 AliMUONCalibParamND.cxx:67 AliMUONCalibParamND.cxx:68 AliMUONCalibParamND.cxx:69 AliMUONCalibParamND.cxx:70 AliMUONCalibParamND.cxx:71 AliMUONCalibParamND.cxx:72 AliMUONCalibParamND.cxx:73 AliMUONCalibParamND.cxx:74 AliMUONCalibParamND.cxx:75 AliMUONCalibParamND.cxx:76 AliMUONCalibParamND.cxx:77 AliMUONCalibParamND.cxx:78 AliMUONCalibParamND.cxx:79 AliMUONCalibParamND.cxx:80 AliMUONCalibParamND.cxx:81 AliMUONCalibParamND.cxx:82 AliMUONCalibParamND.cxx:83 AliMUONCalibParamND.cxx:84 AliMUONCalibParamND.cxx:85 AliMUONCalibParamND.cxx:86 AliMUONCalibParamND.cxx:87 AliMUONCalibParamND.cxx:88 AliMUONCalibParamND.cxx:89 AliMUONCalibParamND.cxx:90 AliMUONCalibParamND.cxx:91 AliMUONCalibParamND.cxx:92 AliMUONCalibParamND.cxx:93 AliMUONCalibParamND.cxx:94 AliMUONCalibParamND.cxx:95 AliMUONCalibParamND.cxx:96 AliMUONCalibParamND.cxx:97 AliMUONCalibParamND.cxx:98 AliMUONCalibParamND.cxx:99 AliMUONCalibParamND.cxx:100 AliMUONCalibParamND.cxx:101 AliMUONCalibParamND.cxx:102 AliMUONCalibParamND.cxx:103 AliMUONCalibParamND.cxx:104 AliMUONCalibParamND.cxx:105 AliMUONCalibParamND.cxx:106 AliMUONCalibParamND.cxx:107 AliMUONCalibParamND.cxx:108 AliMUONCalibParamND.cxx:109 AliMUONCalibParamND.cxx:110 AliMUONCalibParamND.cxx:111 AliMUONCalibParamND.cxx:112 AliMUONCalibParamND.cxx:113 AliMUONCalibParamND.cxx:114 AliMUONCalibParamND.cxx:115 AliMUONCalibParamND.cxx:116 AliMUONCalibParamND.cxx:117 AliMUONCalibParamND.cxx:118 AliMUONCalibParamND.cxx:119 AliMUONCalibParamND.cxx:120 AliMUONCalibParamND.cxx:121 AliMUONCalibParamND.cxx:122 AliMUONCalibParamND.cxx:123 AliMUONCalibParamND.cxx:124 AliMUONCalibParamND.cxx:125 AliMUONCalibParamND.cxx:126 AliMUONCalibParamND.cxx:127 AliMUONCalibParamND.cxx:128 AliMUONCalibParamND.cxx:129 AliMUONCalibParamND.cxx:130 AliMUONCalibParamND.cxx:131 AliMUONCalibParamND.cxx:132 AliMUONCalibParamND.cxx:133 AliMUONCalibParamND.cxx:134 AliMUONCalibParamND.cxx:135 AliMUONCalibParamND.cxx:136 AliMUONCalibParamND.cxx:137 AliMUONCalibParamND.cxx:138 AliMUONCalibParamND.cxx:139 AliMUONCalibParamND.cxx:140 AliMUONCalibParamND.cxx:141 AliMUONCalibParamND.cxx:142 AliMUONCalibParamND.cxx:143 AliMUONCalibParamND.cxx:144 AliMUONCalibParamND.cxx:145 AliMUONCalibParamND.cxx:146 AliMUONCalibParamND.cxx:147 AliMUONCalibParamND.cxx:148 AliMUONCalibParamND.cxx:149 AliMUONCalibParamND.cxx:150 AliMUONCalibParamND.cxx:151 AliMUONCalibParamND.cxx:152 AliMUONCalibParamND.cxx:153 AliMUONCalibParamND.cxx:154 AliMUONCalibParamND.cxx:155 AliMUONCalibParamND.cxx:156 AliMUONCalibParamND.cxx:157 AliMUONCalibParamND.cxx:158 AliMUONCalibParamND.cxx:159 AliMUONCalibParamND.cxx:160 AliMUONCalibParamND.cxx:161 AliMUONCalibParamND.cxx:162 AliMUONCalibParamND.cxx:163 AliMUONCalibParamND.cxx:164 AliMUONCalibParamND.cxx:165 AliMUONCalibParamND.cxx:166 AliMUONCalibParamND.cxx:167 AliMUONCalibParamND.cxx:168 AliMUONCalibParamND.cxx:169 AliMUONCalibParamND.cxx:170 AliMUONCalibParamND.cxx:171 AliMUONCalibParamND.cxx:172 AliMUONCalibParamND.cxx:173 AliMUONCalibParamND.cxx:174 AliMUONCalibParamND.cxx:175 AliMUONCalibParamND.cxx:176 AliMUONCalibParamND.cxx:177 AliMUONCalibParamND.cxx:178 AliMUONCalibParamND.cxx:179 AliMUONCalibParamND.cxx:180 AliMUONCalibParamND.cxx:181 AliMUONCalibParamND.cxx:182 AliMUONCalibParamND.cxx:183 AliMUONCalibParamND.cxx:184 AliMUONCalibParamND.cxx:185 AliMUONCalibParamND.cxx:186 AliMUONCalibParamND.cxx:187 AliMUONCalibParamND.cxx:188 AliMUONCalibParamND.cxx:189 AliMUONCalibParamND.cxx:190 AliMUONCalibParamND.cxx:191 AliMUONCalibParamND.cxx:192 AliMUONCalibParamND.cxx:193 AliMUONCalibParamND.cxx:194 AliMUONCalibParamND.cxx:195 AliMUONCalibParamND.cxx:196 AliMUONCalibParamND.cxx:197 AliMUONCalibParamND.cxx:198 AliMUONCalibParamND.cxx:199 AliMUONCalibParamND.cxx:200 AliMUONCalibParamND.cxx:201 AliMUONCalibParamND.cxx:202 AliMUONCalibParamND.cxx:203 AliMUONCalibParamND.cxx:204 AliMUONCalibParamND.cxx:205 AliMUONCalibParamND.cxx:206 AliMUONCalibParamND.cxx:207 AliMUONCalibParamND.cxx:208 AliMUONCalibParamND.cxx:209 AliMUONCalibParamND.cxx:210 AliMUONCalibParamND.cxx:211 AliMUONCalibParamND.cxx:212 AliMUONCalibParamND.cxx:213 AliMUONCalibParamND.cxx:214 AliMUONCalibParamND.cxx:215 AliMUONCalibParamND.cxx:216 AliMUONCalibParamND.cxx:217 AliMUONCalibParamND.cxx:218 AliMUONCalibParamND.cxx:219 AliMUONCalibParamND.cxx:220 AliMUONCalibParamND.cxx:221 AliMUONCalibParamND.cxx:222 AliMUONCalibParamND.cxx:223 AliMUONCalibParamND.cxx:224 AliMUONCalibParamND.cxx:225 AliMUONCalibParamND.cxx:226 AliMUONCalibParamND.cxx:227 AliMUONCalibParamND.cxx:228 AliMUONCalibParamND.cxx:229 AliMUONCalibParamND.cxx:230 AliMUONCalibParamND.cxx:231 AliMUONCalibParamND.cxx:232 AliMUONCalibParamND.cxx:233 AliMUONCalibParamND.cxx:234 AliMUONCalibParamND.cxx:235 AliMUONCalibParamND.cxx:236 AliMUONCalibParamND.cxx:237 AliMUONCalibParamND.cxx:238 AliMUONCalibParamND.cxx:239 AliMUONCalibParamND.cxx:240 AliMUONCalibParamND.cxx:241 AliMUONCalibParamND.cxx:242 AliMUONCalibParamND.cxx:243 AliMUONCalibParamND.cxx:244 AliMUONCalibParamND.cxx:245 AliMUONCalibParamND.cxx:246 AliMUONCalibParamND.cxx:247 AliMUONCalibParamND.cxx:248 AliMUONCalibParamND.cxx:249 AliMUONCalibParamND.cxx:250 AliMUONCalibParamND.cxx:251 AliMUONCalibParamND.cxx:252 AliMUONCalibParamND.cxx:253 AliMUONCalibParamND.cxx:254 AliMUONCalibParamND.cxx:255 AliMUONCalibParamND.cxx:256 AliMUONCalibParamND.cxx:257 AliMUONCalibParamND.cxx:258 AliMUONCalibParamND.cxx:259 AliMUONCalibParamND.cxx:260 AliMUONCalibParamND.cxx:261 AliMUONCalibParamND.cxx:262 AliMUONCalibParamND.cxx:263 AliMUONCalibParamND.cxx:264 AliMUONCalibParamND.cxx:265 AliMUONCalibParamND.cxx:266 AliMUONCalibParamND.cxx:267 AliMUONCalibParamND.cxx:268 AliMUONCalibParamND.cxx:269 AliMUONCalibParamND.cxx:270 AliMUONCalibParamND.cxx:271 AliMUONCalibParamND.cxx:272 AliMUONCalibParamND.cxx:273 AliMUONCalibParamND.cxx:274 AliMUONCalibParamND.cxx:275 AliMUONCalibParamND.cxx:276 AliMUONCalibParamND.cxx:277 AliMUONCalibParamND.cxx:278 AliMUONCalibParamND.cxx:279 AliMUONCalibParamND.cxx:280 AliMUONCalibParamND.cxx:281 AliMUONCalibParamND.cxx:282 AliMUONCalibParamND.cxx:283 AliMUONCalibParamND.cxx:284 AliMUONCalibParamND.cxx:285 AliMUONCalibParamND.cxx:286 AliMUONCalibParamND.cxx:287 AliMUONCalibParamND.cxx:288 AliMUONCalibParamND.cxx:289 AliMUONCalibParamND.cxx:290 AliMUONCalibParamND.cxx:291 AliMUONCalibParamND.cxx:292 AliMUONCalibParamND.cxx:293 AliMUONCalibParamND.cxx:294 AliMUONCalibParamND.cxx:295 AliMUONCalibParamND.cxx:296 AliMUONCalibParamND.cxx:297 AliMUONCalibParamND.cxx:298 AliMUONCalibParamND.cxx:299 AliMUONCalibParamND.cxx:300 AliMUONCalibParamND.cxx:301 AliMUONCalibParamND.cxx:302 AliMUONCalibParamND.cxx:303 AliMUONCalibParamND.cxx:304 AliMUONCalibParamND.cxx:305 AliMUONCalibParamND.cxx:306 AliMUONCalibParamND.cxx:307 AliMUONCalibParamND.cxx:308 AliMUONCalibParamND.cxx:309 AliMUONCalibParamND.cxx:310 AliMUONCalibParamND.cxx:311 AliMUONCalibParamND.cxx:312 AliMUONCalibParamND.cxx:313 AliMUONCalibParamND.cxx:314 AliMUONCalibParamND.cxx:315 AliMUONCalibParamND.cxx:316 AliMUONCalibParamND.cxx:317 AliMUONCalibParamND.cxx:318 AliMUONCalibParamND.cxx:319 AliMUONCalibParamND.cxx:320 AliMUONCalibParamND.cxx:321 AliMUONCalibParamND.cxx:322 AliMUONCalibParamND.cxx:323 AliMUONCalibParamND.cxx:324 AliMUONCalibParamND.cxx:325 AliMUONCalibParamND.cxx:326 AliMUONCalibParamND.cxx:327