#include "AliMUONGainSubprocessor.h"
#include "AliCDBMetaData.h"
#include "AliLog.h"
#include "AliMUON2DMap.h"
#include "AliMUON2DStoreValidator.h"
#include "AliMUONCalibParamNF.h"
#include "AliMUONConstants.h"
#include "AliMUONPreprocessor.h"
#include "AliMUONTrackerIO.h"
#include "AliMpConstants.h"
#include "AliMpDDLStore.h"
#include <Riostream.h>
#include <TList.h>
#include <TObjString.h>
#include <TObjString.h>
#include <TSystem.h>
#include <sstream>
ClassImp(AliMUONGainSubprocessor)
AliMUONGainSubprocessor::AliMUONGainSubprocessor(AliMUONPreprocessor* master)
: AliMUONVSubprocessor(master,
"Gains",
"Upload MUON Tracker Gains to OCDB"),
fGains(0x0),
fSkip(kFALSE),
fComment("")
{
}
AliMUONGainSubprocessor::~AliMUONGainSubprocessor()
{
delete fGains;
}
Bool_t
AliMUONGainSubprocessor::Initialize(Int_t run, UInt_t startTime, UInt_t endTime)
{
const Int_t kSystem = AliMUONPreprocessor::kDAQ;
const char* kId = "GAINS";
fComment = "";
fSkip = kFALSE;
delete fGains;
fGains = new AliMUON2DMap(kTRUE);
Master()->Log(Form("Reading Gain files for Run %d startTime %u endTime %u",
run,startTime,endTime));
TList* sources = Master()->GetFileSources(kSystem,kId);
TIter next(sources);
TObjString* o(0x0);
Int_t n(0);
while ( ( o = static_cast<TObjString*>(next()) ) )
{
TString fileName(Master()->GetFile(kSystem,kId,o->GetName()));
Int_t ok = ReadFile(fileName.Data());
if (ok>0)
{
n += ok;
}
else if ( ok == AliMUONTrackerIO::kDummyFile )
{
fSkip = kTRUE;
break;
}
}
delete sources;
if ( fSkip )
{
delete fGains;
fGains = 0x0;
}
if (!n && !fSkip)
{
Master()->Log("Failed to read any Gains");
delete fGains;
fGains = 0x0;
return kFALSE;
}
return kTRUE;
}
UInt_t
AliMUONGainSubprocessor::Process(TMap* )
{
if (!fGains)
{
if ( fSkip )
{
return 0;
}
else
{
return 1;
}
}
AliMUON2DStoreValidator validator;
Master()->Log("Validating");
TObjArray* chambers = validator.Validate(*fGains);
if (chambers)
{
TList lines;
lines.SetOwner(kTRUE);
validator.Report(lines,*chambers);
TIter next(&lines);
TObjString* line;
while ( ( line = static_cast<TObjString*>(next()) ) )
{
Master()->Log(line->String().Data());
}
}
Master()->Log("Storing Gains");
AliCDBMetaData metaData;
metaData.SetBeamPeriod(0);
metaData.SetResponsible("MUON TRK");
metaData.SetComment(Form("Computed by AliMUONGainSubprocessor "
"$Id$ ; %s",fComment.Data()));
Bool_t validToInfinity = kTRUE;
Bool_t result = Master()->Store("Calib", "Gains", fGains, &metaData, 0, validToInfinity);
return ( result != kTRUE );
}
Int_t
AliMUONGainSubprocessor::ReadFile(const char* filename)
{
TString sFilename(gSystem->ExpandPathName(filename));
Master()->Log(Form("Reading %s",sFilename.Data()));
Int_t n = AliMUONTrackerIO::ReadGains(sFilename.Data(),*fGains,fComment);
switch (n)
{
case AliMUONTrackerIO::kCannotOpenFile:
Master()->Log(Form("Could not open %s",sFilename.Data()));
break;
case AliMUONTrackerIO::kFormatError:
Master()->Log(Form("File %s is not of the expected format",sFilename.Data()));
break;
case AliMUONTrackerIO::kDummyFile:
Master()->Log(Form("File %s is a dummy one. That's fine. I won't do anything then ;-)",sFilename.Data()));
break;
default:
break;
}
return n;
}
AliMUONGainSubprocessor.cxx:1 AliMUONGainSubprocessor.cxx:2 AliMUONGainSubprocessor.cxx:3 AliMUONGainSubprocessor.cxx:4 AliMUONGainSubprocessor.cxx:5 AliMUONGainSubprocessor.cxx:6 AliMUONGainSubprocessor.cxx:7 AliMUONGainSubprocessor.cxx:8 AliMUONGainSubprocessor.cxx:9 AliMUONGainSubprocessor.cxx:10 AliMUONGainSubprocessor.cxx:11 AliMUONGainSubprocessor.cxx:12 AliMUONGainSubprocessor.cxx:13 AliMUONGainSubprocessor.cxx:14 AliMUONGainSubprocessor.cxx:15 AliMUONGainSubprocessor.cxx:16 AliMUONGainSubprocessor.cxx:17 AliMUONGainSubprocessor.cxx:18 AliMUONGainSubprocessor.cxx:19 AliMUONGainSubprocessor.cxx:20 AliMUONGainSubprocessor.cxx:21 AliMUONGainSubprocessor.cxx:22 AliMUONGainSubprocessor.cxx:23 AliMUONGainSubprocessor.cxx:24 AliMUONGainSubprocessor.cxx:25 AliMUONGainSubprocessor.cxx:26 AliMUONGainSubprocessor.cxx:27 AliMUONGainSubprocessor.cxx:28 AliMUONGainSubprocessor.cxx:29 AliMUONGainSubprocessor.cxx:30 AliMUONGainSubprocessor.cxx:31 AliMUONGainSubprocessor.cxx:32 AliMUONGainSubprocessor.cxx:33 AliMUONGainSubprocessor.cxx:34 AliMUONGainSubprocessor.cxx:35 AliMUONGainSubprocessor.cxx:36 AliMUONGainSubprocessor.cxx:37 AliMUONGainSubprocessor.cxx:38 AliMUONGainSubprocessor.cxx:39 AliMUONGainSubprocessor.cxx:40 AliMUONGainSubprocessor.cxx:41 AliMUONGainSubprocessor.cxx:42 AliMUONGainSubprocessor.cxx:43 AliMUONGainSubprocessor.cxx:44 AliMUONGainSubprocessor.cxx:45 AliMUONGainSubprocessor.cxx:46 AliMUONGainSubprocessor.cxx:47 AliMUONGainSubprocessor.cxx:48 AliMUONGainSubprocessor.cxx:49 AliMUONGainSubprocessor.cxx:50 AliMUONGainSubprocessor.cxx:51 AliMUONGainSubprocessor.cxx:52 AliMUONGainSubprocessor.cxx:53 AliMUONGainSubprocessor.cxx:54 AliMUONGainSubprocessor.cxx:55 AliMUONGainSubprocessor.cxx:56 AliMUONGainSubprocessor.cxx:57 AliMUONGainSubprocessor.cxx:58 AliMUONGainSubprocessor.cxx:59 AliMUONGainSubprocessor.cxx:60 AliMUONGainSubprocessor.cxx:61 AliMUONGainSubprocessor.cxx:62 AliMUONGainSubprocessor.cxx:63 AliMUONGainSubprocessor.cxx:64 AliMUONGainSubprocessor.cxx:65 AliMUONGainSubprocessor.cxx:66 AliMUONGainSubprocessor.cxx:67 AliMUONGainSubprocessor.cxx:68 AliMUONGainSubprocessor.cxx:69 AliMUONGainSubprocessor.cxx:70 AliMUONGainSubprocessor.cxx:71 AliMUONGainSubprocessor.cxx:72 AliMUONGainSubprocessor.cxx:73 AliMUONGainSubprocessor.cxx:74 AliMUONGainSubprocessor.cxx:75 AliMUONGainSubprocessor.cxx:76 AliMUONGainSubprocessor.cxx:77 AliMUONGainSubprocessor.cxx:78 AliMUONGainSubprocessor.cxx:79 AliMUONGainSubprocessor.cxx:80 AliMUONGainSubprocessor.cxx:81 AliMUONGainSubprocessor.cxx:82 AliMUONGainSubprocessor.cxx:83 AliMUONGainSubprocessor.cxx:84 AliMUONGainSubprocessor.cxx:85 AliMUONGainSubprocessor.cxx:86 AliMUONGainSubprocessor.cxx:87 AliMUONGainSubprocessor.cxx:88 AliMUONGainSubprocessor.cxx:89 AliMUONGainSubprocessor.cxx:90 AliMUONGainSubprocessor.cxx:91 AliMUONGainSubprocessor.cxx:92 AliMUONGainSubprocessor.cxx:93 AliMUONGainSubprocessor.cxx:94 AliMUONGainSubprocessor.cxx:95 AliMUONGainSubprocessor.cxx:96 AliMUONGainSubprocessor.cxx:97 AliMUONGainSubprocessor.cxx:98 AliMUONGainSubprocessor.cxx:99 AliMUONGainSubprocessor.cxx:100 AliMUONGainSubprocessor.cxx:101 AliMUONGainSubprocessor.cxx:102 AliMUONGainSubprocessor.cxx:103 AliMUONGainSubprocessor.cxx:104 AliMUONGainSubprocessor.cxx:105 AliMUONGainSubprocessor.cxx:106 AliMUONGainSubprocessor.cxx:107 AliMUONGainSubprocessor.cxx:108 AliMUONGainSubprocessor.cxx:109 AliMUONGainSubprocessor.cxx:110 AliMUONGainSubprocessor.cxx:111 AliMUONGainSubprocessor.cxx:112 AliMUONGainSubprocessor.cxx:113 AliMUONGainSubprocessor.cxx:114 AliMUONGainSubprocessor.cxx:115 AliMUONGainSubprocessor.cxx:116 AliMUONGainSubprocessor.cxx:117 AliMUONGainSubprocessor.cxx:118 AliMUONGainSubprocessor.cxx:119 AliMUONGainSubprocessor.cxx:120 AliMUONGainSubprocessor.cxx:121 AliMUONGainSubprocessor.cxx:122 AliMUONGainSubprocessor.cxx:123 AliMUONGainSubprocessor.cxx:124 AliMUONGainSubprocessor.cxx:125 AliMUONGainSubprocessor.cxx:126 AliMUONGainSubprocessor.cxx:127 AliMUONGainSubprocessor.cxx:128 AliMUONGainSubprocessor.cxx:129 AliMUONGainSubprocessor.cxx:130 AliMUONGainSubprocessor.cxx:131 AliMUONGainSubprocessor.cxx:132 AliMUONGainSubprocessor.cxx:133 AliMUONGainSubprocessor.cxx:134 AliMUONGainSubprocessor.cxx:135 AliMUONGainSubprocessor.cxx:136 AliMUONGainSubprocessor.cxx:137 AliMUONGainSubprocessor.cxx:138 AliMUONGainSubprocessor.cxx:139 AliMUONGainSubprocessor.cxx:140 AliMUONGainSubprocessor.cxx:141 AliMUONGainSubprocessor.cxx:142 AliMUONGainSubprocessor.cxx:143 AliMUONGainSubprocessor.cxx:144 AliMUONGainSubprocessor.cxx:145 AliMUONGainSubprocessor.cxx:146 AliMUONGainSubprocessor.cxx:147 AliMUONGainSubprocessor.cxx:148 AliMUONGainSubprocessor.cxx:149 AliMUONGainSubprocessor.cxx:150 AliMUONGainSubprocessor.cxx:151 AliMUONGainSubprocessor.cxx:152 AliMUONGainSubprocessor.cxx:153 AliMUONGainSubprocessor.cxx:154 AliMUONGainSubprocessor.cxx:155 AliMUONGainSubprocessor.cxx:156 AliMUONGainSubprocessor.cxx:157 AliMUONGainSubprocessor.cxx:158 AliMUONGainSubprocessor.cxx:159 AliMUONGainSubprocessor.cxx:160 AliMUONGainSubprocessor.cxx:161 AliMUONGainSubprocessor.cxx:162 AliMUONGainSubprocessor.cxx:163 AliMUONGainSubprocessor.cxx:164 AliMUONGainSubprocessor.cxx:165 AliMUONGainSubprocessor.cxx:166 AliMUONGainSubprocessor.cxx:167 AliMUONGainSubprocessor.cxx:168 AliMUONGainSubprocessor.cxx:169 AliMUONGainSubprocessor.cxx:170 AliMUONGainSubprocessor.cxx:171 AliMUONGainSubprocessor.cxx:172 AliMUONGainSubprocessor.cxx:173 AliMUONGainSubprocessor.cxx:174 AliMUONGainSubprocessor.cxx:175 AliMUONGainSubprocessor.cxx:176 AliMUONGainSubprocessor.cxx:177 AliMUONGainSubprocessor.cxx:178 AliMUONGainSubprocessor.cxx:179 AliMUONGainSubprocessor.cxx:180 AliMUONGainSubprocessor.cxx:181 AliMUONGainSubprocessor.cxx:182 AliMUONGainSubprocessor.cxx:183 AliMUONGainSubprocessor.cxx:184 AliMUONGainSubprocessor.cxx:185 AliMUONGainSubprocessor.cxx:186 AliMUONGainSubprocessor.cxx:187 AliMUONGainSubprocessor.cxx:188 AliMUONGainSubprocessor.cxx:189 AliMUONGainSubprocessor.cxx:190 AliMUONGainSubprocessor.cxx:191 AliMUONGainSubprocessor.cxx:192 AliMUONGainSubprocessor.cxx:193 AliMUONGainSubprocessor.cxx:194 AliMUONGainSubprocessor.cxx:195 AliMUONGainSubprocessor.cxx:196 AliMUONGainSubprocessor.cxx:197 AliMUONGainSubprocessor.cxx:198 AliMUONGainSubprocessor.cxx:199 AliMUONGainSubprocessor.cxx:200 AliMUONGainSubprocessor.cxx:201 AliMUONGainSubprocessor.cxx:202 AliMUONGainSubprocessor.cxx:203 AliMUONGainSubprocessor.cxx:204 AliMUONGainSubprocessor.cxx:205 AliMUONGainSubprocessor.cxx:206 AliMUONGainSubprocessor.cxx:207 AliMUONGainSubprocessor.cxx:208 AliMUONGainSubprocessor.cxx:209 AliMUONGainSubprocessor.cxx:210 AliMUONGainSubprocessor.cxx:211 AliMUONGainSubprocessor.cxx:212 AliMUONGainSubprocessor.cxx:213 AliMUONGainSubprocessor.cxx:214 AliMUONGainSubprocessor.cxx:215 AliMUONGainSubprocessor.cxx:216 AliMUONGainSubprocessor.cxx:217 AliMUONGainSubprocessor.cxx:218 AliMUONGainSubprocessor.cxx:219 AliMUONGainSubprocessor.cxx:220 AliMUONGainSubprocessor.cxx:221 AliMUONGainSubprocessor.cxx:222 AliMUONGainSubprocessor.cxx:223 AliMUONGainSubprocessor.cxx:224 AliMUONGainSubprocessor.cxx:225 AliMUONGainSubprocessor.cxx:226 AliMUONGainSubprocessor.cxx:227 AliMUONGainSubprocessor.cxx:228