X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=FMD%2FAliFMDCalibSampleRate.cxx;h=32ad46c3dc75c78150747aa5ac0a664969700ddc;hb=b85ea106fc895e812397f1f3bab3ce9d20798225;hp=5ac341033e1a8b789033f1ee9fd732b3afc8660b;hpb=02a27b508bdd34a6febe776298cc20b18fdbb2ed;p=u%2Fmrichter%2FAliRoot.git diff --git a/FMD/AliFMDCalibSampleRate.cxx b/FMD/AliFMDCalibSampleRate.cxx index 5ac341033e1..32ad46c3dc7 100644 --- a/FMD/AliFMDCalibSampleRate.cxx +++ b/FMD/AliFMDCalibSampleRate.cxx @@ -27,8 +27,11 @@ // retrived from DCS or the like. // #include "AliFMDCalibSampleRate.h" // ALIFMDCALIBGAIN_H -#include "AliFMDParameters.h" // ALIFMDPARAMETERS_H -#include +// #include "AliFMDParameters.h" // ALIFMDPARAMETERS_H +// #include +#include "TString.h" +#include "AliFMDDebug.h" // Better debug macros +#include //____________________________________________________________________ ClassImp(AliFMDCalibSampleRate) @@ -67,9 +70,10 @@ AliFMDCalibSampleRate::Set(UShort_t det, Char_t ring, UShort_t sector, UShort_t, UShort_t rate) { // Set values. Strip argument is ignored - UInt_t nSec = (ring == 'I' ? 20 : 40); + UInt_t nSec = (ring == 'I' ? 10 : 20); UInt_t board = sector / nSec; fRates(det, ring, board, 0) = rate; + } //____________________________________________________________________ @@ -78,11 +82,85 @@ AliFMDCalibSampleRate::Rate(UShort_t det, Char_t ring, UShort_t sec, UShort_t) const { // Get the sample rate - UInt_t nSec = (ring == 'I' ? 20 : 40); - UInt_t board = sec / nSec; - AliDebug(10, Form("Getting sample rate for FMD%d%c[%2d,0] (board %d)", - det, ring, sec, board)); - return fRates(det, ring, board, 0); + UInt_t nSec = (ring == 'I' ? 10 : 20); + UInt_t board = sec / nSec; + UShort_t ret = fRates(det, ring, board, 0); + AliFMDDebug(15, ("Getting sample rate for FMD%d%c[%2d,0] (board %d): %d", + det, ring, sec, board, ret)); + return ret; +} +//____________________________________________________________________ +void +AliFMDCalibSampleRate::WriteToFile(std::ostream &outFile, Bool_t* detectors) +{ + outFile.write("# SampleRate \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'); + // UShort_t nsec = (ir == 0 ? 40 : 20); + + for(UShort_t board = 0; board < 2; board++) { + outFile << det << ',' + << ring << ',' + << board << ',' + << Rate(det,ring,board) << "\n"; + + + } + } + } + + +} +//____________________________________________________________________ +void +AliFMDCalibSampleRate::ReadFromFile(std::istream &inFile) +{ + TString line; + Bool_t readData=kFALSE; + + while(line.ReadLine(inFile)) { + if(line.Contains("samplerate",TString::kIgnoreCase)) { + readData = kTRUE; + break; + } + + } + + UShort_t det, board; + Char_t ring; + UShort_t sampleRate; + Int_t thisline = inFile.tellg(); + Char_t c[3]; + + 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] + >> sampleRate; + + UInt_t nSec = (ring == 'I' ? 10 : 20); + UShort_t sector = board*nSec; + Set(det,ring,sector,0,sampleRate); + + + } + + inFile.seekg(0); + + } //____________________________________________________________________