#include "AliFMDCalibPedestal.h"
#include <iostream>
#include <TString.h>
#include <AliLog.h>
#include "AliFMDDebug.h"
#include "AliFMDBoolMap.h"
ClassImp(AliFMDCalibPedestal)
#if 0
;
#endif
AliFMDCalibPedestal::AliFMDCalibPedestal()
: fValue(0),
fWidth(0)
{
fValue.Reset(-1.);
fWidth.Reset(-1.);
}
AliFMDCalibPedestal::AliFMDCalibPedestal(const AliFMDCalibPedestal& o)
: TObject(o),
fValue(o.fValue),
fWidth(o.fWidth)
{
}
AliFMDCalibPedestal&
AliFMDCalibPedestal::operator=(const AliFMDCalibPedestal& o)
{
if (&o == this) return *this;
fValue = o.fValue;
fWidth = o.fWidth;
return (*this);
}
void
AliFMDCalibPedestal::Set(UShort_t det, Char_t ring, UShort_t sec,
UShort_t str, Float_t ped, Float_t pedW)
{
if (fValue.CheckIndex(det, ring, sec, str) < 0) return;
fValue(det, ring, sec, str) = ped;
fWidth(det, ring, sec, str) = pedW;
}
Float_t
AliFMDCalibPedestal::Value(UShort_t det, Char_t ring, UShort_t sec,
UShort_t str)
{
return fValue(det, ring, sec, str);
}
Float_t
AliFMDCalibPedestal::Width(UShort_t det, Char_t ring, UShort_t sec,
UShort_t str)
{
return fWidth(det, ring, sec, str);
}
namespace {
struct MakeDead : public AliFMDMap::ForOne
{
MakeDead(AliFMDBoolMap* dead, Float_t max)
: fDead(dead), fMax(max), fCount(0)
{}
MakeDead(const MakeDead& other)
: AliFMDMap::ForOne(other),
fDead(other.fDead), fMax(other.fMax), fCount(other.fCount)
{}
MakeDead& operator=(const MakeDead& other)
{
if (&other == this) return *this;
fDead = other.fDead;
fMax = other.fMax;
fCount = other.fCount;
return *this;
}
Bool_t operator()(UShort_t d, Char_t r, UShort_t s, UShort_t t, Float_t v)
{
AliDebugGeneral("AliFMDCalibPedestal::MakeDeadMap", 100,
Form("Checking if noise of FMD%d%c[%2d,%3d]=%f "
"is larger than %f", d, r, s, t, v, fMax));
if (v > fMax) {
fDead->operator()(d,r,s,t) = kTRUE;
fCount++;
}
return kTRUE;
}
Bool_t operator()(UShort_t, Char_t, UShort_t, UShort_t, Int_t)
{ return kFALSE; }
Bool_t operator()(UShort_t, Char_t, UShort_t, UShort_t, UShort_t)
{ return kFALSE; }
Bool_t operator()(UShort_t, Char_t, UShort_t, UShort_t, Bool_t)
{ return kFALSE; }
AliFMDBoolMap* fDead;
Float_t fMax;
Int_t fCount;
};
}
AliFMDBoolMap*
AliFMDCalibPedestal::MakeDeadMap(Float_t maxW, AliFMDBoolMap* dead) const
{
if (!dead) {
dead = new AliFMDBoolMap(0,0,0,0);
dead->Reset(kFALSE);
}
MakeDead dm(dead, maxW);
fWidth.ForEach(dm);
AliFMDDebug(1, ("Found a total of %d dead channels", dm.fCount));
return dead;
}
Bool_t
AliFMDCalibPedestal::ReadFromFile(std::istream& in)
{
TString header;
header.ReadLine(in);
header.ToLower();
if(!header.Contains("pedestals")) {
AliError("File does not contain pedestals!");
return kFALSE;
}
int lineno = 2;
header.ReadLine(in);
while(in.peek()!=EOF) {
if(in.bad()) {
AliError(Form("Bad read at line %d in input", lineno));
break;
}
UShort_t det, sec, strip;
Char_t ring;
Float_t ped, noise, mu, sigma, chi2ndf;
Char_t c[8];
in >> det >> c[0]
>> ring >> c[1]
>> sec >> c[2]
>> strip >> c[3]
>> ped >> c[4]
>> noise >> c[5]
>> mu >> c[6]
>> sigma >> c[7]
>> chi2ndf;
lineno++;
Set(det,ring,sec,strip,ped,noise);
}
return kTRUE;
}
AliFMDCalibPedestal.cxx:1 AliFMDCalibPedestal.cxx:2 AliFMDCalibPedestal.cxx:3 AliFMDCalibPedestal.cxx:4 AliFMDCalibPedestal.cxx:5 AliFMDCalibPedestal.cxx:6 AliFMDCalibPedestal.cxx:7 AliFMDCalibPedestal.cxx:8 AliFMDCalibPedestal.cxx:9 AliFMDCalibPedestal.cxx:10 AliFMDCalibPedestal.cxx:11 AliFMDCalibPedestal.cxx:12 AliFMDCalibPedestal.cxx:13 AliFMDCalibPedestal.cxx:14 AliFMDCalibPedestal.cxx:15 AliFMDCalibPedestal.cxx:16 AliFMDCalibPedestal.cxx:17 AliFMDCalibPedestal.cxx:18 AliFMDCalibPedestal.cxx:19 AliFMDCalibPedestal.cxx:20 AliFMDCalibPedestal.cxx:21 AliFMDCalibPedestal.cxx:22 AliFMDCalibPedestal.cxx:23 AliFMDCalibPedestal.cxx:24 AliFMDCalibPedestal.cxx:25 AliFMDCalibPedestal.cxx:26 AliFMDCalibPedestal.cxx:27 AliFMDCalibPedestal.cxx:28 AliFMDCalibPedestal.cxx:29 AliFMDCalibPedestal.cxx:30 AliFMDCalibPedestal.cxx:31 AliFMDCalibPedestal.cxx:32 AliFMDCalibPedestal.cxx:33 AliFMDCalibPedestal.cxx:34 AliFMDCalibPedestal.cxx:35 AliFMDCalibPedestal.cxx:36 AliFMDCalibPedestal.cxx:37 AliFMDCalibPedestal.cxx:38 AliFMDCalibPedestal.cxx:39 AliFMDCalibPedestal.cxx:40 AliFMDCalibPedestal.cxx:41 AliFMDCalibPedestal.cxx:42 AliFMDCalibPedestal.cxx:43 AliFMDCalibPedestal.cxx:44 AliFMDCalibPedestal.cxx:45 AliFMDCalibPedestal.cxx:46 AliFMDCalibPedestal.cxx:47 AliFMDCalibPedestal.cxx:48 AliFMDCalibPedestal.cxx:49 AliFMDCalibPedestal.cxx:50 AliFMDCalibPedestal.cxx:51 AliFMDCalibPedestal.cxx:52 AliFMDCalibPedestal.cxx:53 AliFMDCalibPedestal.cxx:54 AliFMDCalibPedestal.cxx:55 AliFMDCalibPedestal.cxx:56 AliFMDCalibPedestal.cxx:57 AliFMDCalibPedestal.cxx:58 AliFMDCalibPedestal.cxx:59 AliFMDCalibPedestal.cxx:60 AliFMDCalibPedestal.cxx:61 AliFMDCalibPedestal.cxx:62 AliFMDCalibPedestal.cxx:63 AliFMDCalibPedestal.cxx:64 AliFMDCalibPedestal.cxx:65 AliFMDCalibPedestal.cxx:66 AliFMDCalibPedestal.cxx:67 AliFMDCalibPedestal.cxx:68 AliFMDCalibPedestal.cxx:69 AliFMDCalibPedestal.cxx:70 AliFMDCalibPedestal.cxx:71 AliFMDCalibPedestal.cxx:72 AliFMDCalibPedestal.cxx:73 AliFMDCalibPedestal.cxx:74 AliFMDCalibPedestal.cxx:75 AliFMDCalibPedestal.cxx:76 AliFMDCalibPedestal.cxx:77 AliFMDCalibPedestal.cxx:78 AliFMDCalibPedestal.cxx:79 AliFMDCalibPedestal.cxx:80 AliFMDCalibPedestal.cxx:81 AliFMDCalibPedestal.cxx:82 AliFMDCalibPedestal.cxx:83 AliFMDCalibPedestal.cxx:84 AliFMDCalibPedestal.cxx:85 AliFMDCalibPedestal.cxx:86 AliFMDCalibPedestal.cxx:87 AliFMDCalibPedestal.cxx:88 AliFMDCalibPedestal.cxx:89 AliFMDCalibPedestal.cxx:90 AliFMDCalibPedestal.cxx:91 AliFMDCalibPedestal.cxx:92 AliFMDCalibPedestal.cxx:93 AliFMDCalibPedestal.cxx:94 AliFMDCalibPedestal.cxx:95 AliFMDCalibPedestal.cxx:96 AliFMDCalibPedestal.cxx:97 AliFMDCalibPedestal.cxx:98 AliFMDCalibPedestal.cxx:99 AliFMDCalibPedestal.cxx:100 AliFMDCalibPedestal.cxx:101 AliFMDCalibPedestal.cxx:102 AliFMDCalibPedestal.cxx:103 AliFMDCalibPedestal.cxx:104 AliFMDCalibPedestal.cxx:105 AliFMDCalibPedestal.cxx:106 AliFMDCalibPedestal.cxx:107 AliFMDCalibPedestal.cxx:108 AliFMDCalibPedestal.cxx:109 AliFMDCalibPedestal.cxx:110 AliFMDCalibPedestal.cxx:111 AliFMDCalibPedestal.cxx:112 AliFMDCalibPedestal.cxx:113 AliFMDCalibPedestal.cxx:114 AliFMDCalibPedestal.cxx:115 AliFMDCalibPedestal.cxx:116 AliFMDCalibPedestal.cxx:117 AliFMDCalibPedestal.cxx:118 AliFMDCalibPedestal.cxx:119 AliFMDCalibPedestal.cxx:120 AliFMDCalibPedestal.cxx:121 AliFMDCalibPedestal.cxx:122 AliFMDCalibPedestal.cxx:123 AliFMDCalibPedestal.cxx:124 AliFMDCalibPedestal.cxx:125 AliFMDCalibPedestal.cxx:126 AliFMDCalibPedestal.cxx:127 AliFMDCalibPedestal.cxx:128 AliFMDCalibPedestal.cxx:129 AliFMDCalibPedestal.cxx:130 AliFMDCalibPedestal.cxx:131 AliFMDCalibPedestal.cxx:132 AliFMDCalibPedestal.cxx:133 AliFMDCalibPedestal.cxx:134 AliFMDCalibPedestal.cxx:135 AliFMDCalibPedestal.cxx:136 AliFMDCalibPedestal.cxx:137 AliFMDCalibPedestal.cxx:138 AliFMDCalibPedestal.cxx:139 AliFMDCalibPedestal.cxx:140 AliFMDCalibPedestal.cxx:141 AliFMDCalibPedestal.cxx:142 AliFMDCalibPedestal.cxx:143 AliFMDCalibPedestal.cxx:144 AliFMDCalibPedestal.cxx:145 AliFMDCalibPedestal.cxx:146 AliFMDCalibPedestal.cxx:147 AliFMDCalibPedestal.cxx:148 AliFMDCalibPedestal.cxx:149 AliFMDCalibPedestal.cxx:150 AliFMDCalibPedestal.cxx:151 AliFMDCalibPedestal.cxx:152 AliFMDCalibPedestal.cxx:153 AliFMDCalibPedestal.cxx:154 AliFMDCalibPedestal.cxx:155 AliFMDCalibPedestal.cxx:156 AliFMDCalibPedestal.cxx:157 AliFMDCalibPedestal.cxx:158 AliFMDCalibPedestal.cxx:159 AliFMDCalibPedestal.cxx:160 AliFMDCalibPedestal.cxx:161 AliFMDCalibPedestal.cxx:162 AliFMDCalibPedestal.cxx:163 AliFMDCalibPedestal.cxx:164 AliFMDCalibPedestal.cxx:165 AliFMDCalibPedestal.cxx:166 AliFMDCalibPedestal.cxx:167 AliFMDCalibPedestal.cxx:168 AliFMDCalibPedestal.cxx:169 AliFMDCalibPedestal.cxx:170 AliFMDCalibPedestal.cxx:171 AliFMDCalibPedestal.cxx:172 AliFMDCalibPedestal.cxx:173 AliFMDCalibPedestal.cxx:174 AliFMDCalibPedestal.cxx:175 AliFMDCalibPedestal.cxx:176 AliFMDCalibPedestal.cxx:177 AliFMDCalibPedestal.cxx:178 AliFMDCalibPedestal.cxx:179 AliFMDCalibPedestal.cxx:180 AliFMDCalibPedestal.cxx:181 AliFMDCalibPedestal.cxx:182 AliFMDCalibPedestal.cxx:183 AliFMDCalibPedestal.cxx:184 AliFMDCalibPedestal.cxx:185 AliFMDCalibPedestal.cxx:186 AliFMDCalibPedestal.cxx:187 AliFMDCalibPedestal.cxx:188 AliFMDCalibPedestal.cxx:189 AliFMDCalibPedestal.cxx:190 AliFMDCalibPedestal.cxx:191 AliFMDCalibPedestal.cxx:192 AliFMDCalibPedestal.cxx:193 AliFMDCalibPedestal.cxx:194 AliFMDCalibPedestal.cxx:195 AliFMDCalibPedestal.cxx:196 AliFMDCalibPedestal.cxx:197 AliFMDCalibPedestal.cxx:198 AliFMDCalibPedestal.cxx:199 AliFMDCalibPedestal.cxx:200 AliFMDCalibPedestal.cxx:201 AliFMDCalibPedestal.cxx:202 AliFMDCalibPedestal.cxx:203 AliFMDCalibPedestal.cxx:204 AliFMDCalibPedestal.cxx:205 AliFMDCalibPedestal.cxx:206 AliFMDCalibPedestal.cxx:207 AliFMDCalibPedestal.cxx:208 AliFMDCalibPedestal.cxx:209 AliFMDCalibPedestal.cxx:210 AliFMDCalibPedestal.cxx:211 AliFMDCalibPedestal.cxx:212 AliFMDCalibPedestal.cxx:213 AliFMDCalibPedestal.cxx:214 AliFMDCalibPedestal.cxx:215 AliFMDCalibPedestal.cxx:216 AliFMDCalibPedestal.cxx:217 AliFMDCalibPedestal.cxx:218 AliFMDCalibPedestal.cxx:219 AliFMDCalibPedestal.cxx:220 AliFMDCalibPedestal.cxx:221 AliFMDCalibPedestal.cxx:222 AliFMDCalibPedestal.cxx:223 AliFMDCalibPedestal.cxx:224 AliFMDCalibPedestal.cxx:225 AliFMDCalibPedestal.cxx:226 AliFMDCalibPedestal.cxx:227 AliFMDCalibPedestal.cxx:228 AliFMDCalibPedestal.cxx:229 AliFMDCalibPedestal.cxx:230