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