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