#include <iostream>
#include "AliFMDCalibStripRange.h"
#include "TString.h"
ClassImp(AliFMDCalibStripRange)
#if 0
;
#endif
AliFMDCalibStripRange::AliFMDCalibStripRange()
: fRanges(AliFMDMap::kMaxDetectors, AliFMDMap::kMaxRings, 2, 1)
{
fRanges.Reset(1);
}
AliFMDCalibStripRange::AliFMDCalibStripRange(const AliFMDCalibStripRange& o)
: TObject(o), fRanges(o.fRanges)
{
}
AliFMDCalibStripRange&
AliFMDCalibStripRange::operator=(const AliFMDCalibStripRange& o)
{
fRanges = o.fRanges;
return (*this);
}
void
AliFMDCalibStripRange::Set(UShort_t det, Char_t ring,
UShort_t sector, UShort_t, UShort_t min,
UShort_t max)
{
UInt_t nSec = (ring == 'I' ? 10 : 20);
UInt_t board = sector / nSec;
fRanges(det, ring, board, 0) = ((max & 0x7f) << 8) + (min & 0x7f);
}
UShort_t
AliFMDCalibStripRange::Min(UShort_t det, Char_t ring,
UShort_t sec, UShort_t) const
{
UInt_t nSec = (ring == 'I' ? 10 : 20);
UInt_t board = sec / nSec;
return (fRanges(det, ring, board, 0) & 0x7f);
}
UShort_t
AliFMDCalibStripRange::Max(UShort_t det, Char_t ring,
UShort_t sec, UShort_t) const
{
UInt_t nSec = (ring == 'I' ? 10 : 20);
UInt_t board = sec / nSec;
return ((fRanges(det, ring, board, 0) >> 8) & 0x7f);
}
void
AliFMDCalibStripRange::WriteToFile(std::ostream &outFile, Bool_t* detectors)
{
outFile.write("# StripRange \n",14);
for(Int_t det=1;det<=3;det++) {
if (detectors && !detectors[det-1]) {
continue;
}
UShort_t FirstRing = (det == 1 ? 1 : 0);
for (UShort_t ir = FirstRing; ir < 2; ir++) {
Char_t ring = (ir == 0 ? 'O' : 'I');
UInt_t nSec = (ring == 'I' ? 10 : 20);
for(UShort_t board =0; board < 2; board++) {
UShort_t sector = board*nSec;
outFile << det << ','
<< ring << ','
<< board << ','
<< Min(det,ring,sector) << ','
<< Max(det,ring,sector) << "\n";
}
}
}
}
void
AliFMDCalibStripRange::ReadFromFile(std::istream &inFile)
{
TString line;
Bool_t readData=kFALSE;
while(line.ReadLine(inFile)) {
if(line.Contains("striprange",TString::kIgnoreCase)) {
readData = kTRUE;
break;
}
}
UShort_t det, board;
Char_t ring;
UShort_t min, max;
Int_t thisline = inFile.tellg();
Char_t c[4];
while( readData ) {
thisline = inFile.tellg();
line.ReadLine(inFile);
if(line.Contains("# ",TString::kIgnoreCase)) {
readData = kFALSE;
continue;
}
inFile.seekg(thisline);
inFile >> det >> c[0]
>> ring >> c[1]
>> board >> c[2]
>> min >> c[3]
>> max;
UInt_t nSec = (ring == 'I' ? 10 : 20);
UShort_t sector = board*nSec;
Set(det,ring,sector,0,min,max);
}
inFile.seekg(0);
}
AliFMDCalibStripRange.cxx:1 AliFMDCalibStripRange.cxx:2 AliFMDCalibStripRange.cxx:3 AliFMDCalibStripRange.cxx:4 AliFMDCalibStripRange.cxx:5 AliFMDCalibStripRange.cxx:6 AliFMDCalibStripRange.cxx:7 AliFMDCalibStripRange.cxx:8 AliFMDCalibStripRange.cxx:9 AliFMDCalibStripRange.cxx:10 AliFMDCalibStripRange.cxx:11 AliFMDCalibStripRange.cxx:12 AliFMDCalibStripRange.cxx:13 AliFMDCalibStripRange.cxx:14 AliFMDCalibStripRange.cxx:15 AliFMDCalibStripRange.cxx:16 AliFMDCalibStripRange.cxx:17 AliFMDCalibStripRange.cxx:18 AliFMDCalibStripRange.cxx:19 AliFMDCalibStripRange.cxx:20 AliFMDCalibStripRange.cxx:21 AliFMDCalibStripRange.cxx:22 AliFMDCalibStripRange.cxx:23 AliFMDCalibStripRange.cxx:24 AliFMDCalibStripRange.cxx:25 AliFMDCalibStripRange.cxx:26 AliFMDCalibStripRange.cxx:27 AliFMDCalibStripRange.cxx:28 AliFMDCalibStripRange.cxx:29 AliFMDCalibStripRange.cxx:30 AliFMDCalibStripRange.cxx:31 AliFMDCalibStripRange.cxx:32 AliFMDCalibStripRange.cxx:33 AliFMDCalibStripRange.cxx:34 AliFMDCalibStripRange.cxx:35 AliFMDCalibStripRange.cxx:36 AliFMDCalibStripRange.cxx:37 AliFMDCalibStripRange.cxx:38 AliFMDCalibStripRange.cxx:39 AliFMDCalibStripRange.cxx:40 AliFMDCalibStripRange.cxx:41 AliFMDCalibStripRange.cxx:42 AliFMDCalibStripRange.cxx:43 AliFMDCalibStripRange.cxx:44 AliFMDCalibStripRange.cxx:45 AliFMDCalibStripRange.cxx:46 AliFMDCalibStripRange.cxx:47 AliFMDCalibStripRange.cxx:48 AliFMDCalibStripRange.cxx:49 AliFMDCalibStripRange.cxx:50 AliFMDCalibStripRange.cxx:51 AliFMDCalibStripRange.cxx:52 AliFMDCalibStripRange.cxx:53 AliFMDCalibStripRange.cxx:54 AliFMDCalibStripRange.cxx:55 AliFMDCalibStripRange.cxx:56 AliFMDCalibStripRange.cxx:57 AliFMDCalibStripRange.cxx:58 AliFMDCalibStripRange.cxx:59 AliFMDCalibStripRange.cxx:60 AliFMDCalibStripRange.cxx:61 AliFMDCalibStripRange.cxx:62 AliFMDCalibStripRange.cxx:63 AliFMDCalibStripRange.cxx:64 AliFMDCalibStripRange.cxx:65 AliFMDCalibStripRange.cxx:66 AliFMDCalibStripRange.cxx:67 AliFMDCalibStripRange.cxx:68 AliFMDCalibStripRange.cxx:69 AliFMDCalibStripRange.cxx:70 AliFMDCalibStripRange.cxx:71 AliFMDCalibStripRange.cxx:72 AliFMDCalibStripRange.cxx:73 AliFMDCalibStripRange.cxx:74 AliFMDCalibStripRange.cxx:75 AliFMDCalibStripRange.cxx:76 AliFMDCalibStripRange.cxx:77 AliFMDCalibStripRange.cxx:78 AliFMDCalibStripRange.cxx:79 AliFMDCalibStripRange.cxx:80 AliFMDCalibStripRange.cxx:81 AliFMDCalibStripRange.cxx:82 AliFMDCalibStripRange.cxx:83 AliFMDCalibStripRange.cxx:84 AliFMDCalibStripRange.cxx:85 AliFMDCalibStripRange.cxx:86 AliFMDCalibStripRange.cxx:87 AliFMDCalibStripRange.cxx:88 AliFMDCalibStripRange.cxx:89 AliFMDCalibStripRange.cxx:90 AliFMDCalibStripRange.cxx:91 AliFMDCalibStripRange.cxx:92 AliFMDCalibStripRange.cxx:93 AliFMDCalibStripRange.cxx:94 AliFMDCalibStripRange.cxx:95 AliFMDCalibStripRange.cxx:96 AliFMDCalibStripRange.cxx:97 AliFMDCalibStripRange.cxx:98 AliFMDCalibStripRange.cxx:99 AliFMDCalibStripRange.cxx:100 AliFMDCalibStripRange.cxx:101 AliFMDCalibStripRange.cxx:102 AliFMDCalibStripRange.cxx:103 AliFMDCalibStripRange.cxx:104 AliFMDCalibStripRange.cxx:105 AliFMDCalibStripRange.cxx:106 AliFMDCalibStripRange.cxx:107 AliFMDCalibStripRange.cxx:108 AliFMDCalibStripRange.cxx:109 AliFMDCalibStripRange.cxx:110 AliFMDCalibStripRange.cxx:111 AliFMDCalibStripRange.cxx:112 AliFMDCalibStripRange.cxx:113 AliFMDCalibStripRange.cxx:114 AliFMDCalibStripRange.cxx:115 AliFMDCalibStripRange.cxx:116 AliFMDCalibStripRange.cxx:117 AliFMDCalibStripRange.cxx:118 AliFMDCalibStripRange.cxx:119 AliFMDCalibStripRange.cxx:120 AliFMDCalibStripRange.cxx:121 AliFMDCalibStripRange.cxx:122 AliFMDCalibStripRange.cxx:123 AliFMDCalibStripRange.cxx:124 AliFMDCalibStripRange.cxx:125 AliFMDCalibStripRange.cxx:126 AliFMDCalibStripRange.cxx:127 AliFMDCalibStripRange.cxx:128 AliFMDCalibStripRange.cxx:129 AliFMDCalibStripRange.cxx:130 AliFMDCalibStripRange.cxx:131 AliFMDCalibStripRange.cxx:132 AliFMDCalibStripRange.cxx:133 AliFMDCalibStripRange.cxx:134 AliFMDCalibStripRange.cxx:135 AliFMDCalibStripRange.cxx:136 AliFMDCalibStripRange.cxx:137 AliFMDCalibStripRange.cxx:138 AliFMDCalibStripRange.cxx:139 AliFMDCalibStripRange.cxx:140 AliFMDCalibStripRange.cxx:141 AliFMDCalibStripRange.cxx:142 AliFMDCalibStripRange.cxx:143 AliFMDCalibStripRange.cxx:144 AliFMDCalibStripRange.cxx:145 AliFMDCalibStripRange.cxx:146 AliFMDCalibStripRange.cxx:147 AliFMDCalibStripRange.cxx:148 AliFMDCalibStripRange.cxx:149 AliFMDCalibStripRange.cxx:150 AliFMDCalibStripRange.cxx:151 AliFMDCalibStripRange.cxx:152 AliFMDCalibStripRange.cxx:153 AliFMDCalibStripRange.cxx:154 AliFMDCalibStripRange.cxx:155 AliFMDCalibStripRange.cxx:156 AliFMDCalibStripRange.cxx:157 AliFMDCalibStripRange.cxx:158 AliFMDCalibStripRange.cxx:159 AliFMDCalibStripRange.cxx:160 AliFMDCalibStripRange.cxx:161 AliFMDCalibStripRange.cxx:162 AliFMDCalibStripRange.cxx:163 AliFMDCalibStripRange.cxx:164 AliFMDCalibStripRange.cxx:165 AliFMDCalibStripRange.cxx:166 AliFMDCalibStripRange.cxx:167 AliFMDCalibStripRange.cxx:168 AliFMDCalibStripRange.cxx:169 AliFMDCalibStripRange.cxx:170 AliFMDCalibStripRange.cxx:171 AliFMDCalibStripRange.cxx:172 AliFMDCalibStripRange.cxx:173 AliFMDCalibStripRange.cxx:174 AliFMDCalibStripRange.cxx:175 AliFMDCalibStripRange.cxx:176 AliFMDCalibStripRange.cxx:177 AliFMDCalibStripRange.cxx:178 AliFMDCalibStripRange.cxx:179 AliFMDCalibStripRange.cxx:180 AliFMDCalibStripRange.cxx:181 AliFMDCalibStripRange.cxx:182 AliFMDCalibStripRange.cxx:183 AliFMDCalibStripRange.cxx:184 AliFMDCalibStripRange.cxx:185 AliFMDCalibStripRange.cxx:186 AliFMDCalibStripRange.cxx:187 AliFMDCalibStripRange.cxx:188 AliFMDCalibStripRange.cxx:189 AliFMDCalibStripRange.cxx:190 AliFMDCalibStripRange.cxx:191 AliFMDCalibStripRange.cxx:192 AliFMDCalibStripRange.cxx:193 AliFMDCalibStripRange.cxx:194 AliFMDCalibStripRange.cxx:195