#include "AliMUONOccupancySubprocessor.h"
#include "AliCDBMetaData.h"
#include "AliMUON2DMap.h"
#include "AliMUONPreprocessor.h"
#include "AliMUONTrackerIO.h"
#include "TObjString.h"
#include "TSystem.h"
ClassImp(AliMUONOccupancySubprocessor)
AliMUONOccupancySubprocessor::AliMUONOccupancySubprocessor(AliMUONPreprocessor* master)
: AliMUONVSubprocessor(master,"Occupancy","Upload MUON Tracker occupancy to OCDB"),
fOccupancyMap(0x0)
{
}
AliMUONOccupancySubprocessor::~AliMUONOccupancySubprocessor()
{
delete fOccupancyMap;
}
Bool_t
AliMUONOccupancySubprocessor::Initialize(Int_t run, UInt_t startTime, UInt_t endTime)
{
const Int_t kSystem = AliMUONPreprocessor::kDAQ;
const char* kId = "OCCUPANCY";
delete fOccupancyMap;
fOccupancyMap = new AliMUON2DMap(kTRUE);
Master()->Log(Form("Reading occupancy file 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 || ok == AliMUONTrackerIO::kNoInfoFile )
{
n += ok;
}
}
delete sources;
if (!n)
{
Master()->Log("Failed to read any occupancy");
delete fOccupancyMap;
fOccupancyMap = 0;
return kFALSE;
}
return kTRUE;
}
UInt_t
AliMUONOccupancySubprocessor::Process(TMap* )
{
if (!fOccupancyMap)
{
return 1;
}
if ( fOccupancyMap->GetSize() )
{
Master()->Log("Storing occupancy map");
AliCDBMetaData metaData;
metaData.SetBeamPeriod(0);
metaData.SetResponsible("MUON TRK");
TString comment("Computed by AliMUONOccupancySubprocessor $Id$");
comment.ReplaceAll("$","");
metaData.SetComment(comment.Data());
Bool_t validToInfinity = kFALSE;
Bool_t result = Master()->Store("Calib", "OccupancyMap", fOccupancyMap, &metaData, 0, validToInfinity);
return ( result != kTRUE );
}
else
{
Master()->Log("No occupancy map to store");
return 0;
}
}
Int_t
AliMUONOccupancySubprocessor::ReadFile(const char* filename)
{
TString sFilename(gSystem->ExpandPathName(filename));
Master()->Log(Form("Reading %s",sFilename.Data()));
Int_t n = AliMUONTrackerIO::ReadOccupancy(sFilename.Data(),*fOccupancyMap);
switch (n)
{
case -1:
Master()->Log(Form("Could not open %s",sFilename.Data()));
break;
}
return n;
}
void
AliMUONOccupancySubprocessor::Print(Option_t* opt) const
{
if (fOccupancyMap) fOccupancyMap->Print("",opt);
}
AliMUONOccupancySubprocessor.cxx:1 AliMUONOccupancySubprocessor.cxx:2 AliMUONOccupancySubprocessor.cxx:3 AliMUONOccupancySubprocessor.cxx:4 AliMUONOccupancySubprocessor.cxx:5 AliMUONOccupancySubprocessor.cxx:6 AliMUONOccupancySubprocessor.cxx:7 AliMUONOccupancySubprocessor.cxx:8 AliMUONOccupancySubprocessor.cxx:9 AliMUONOccupancySubprocessor.cxx:10 AliMUONOccupancySubprocessor.cxx:11 AliMUONOccupancySubprocessor.cxx:12 AliMUONOccupancySubprocessor.cxx:13 AliMUONOccupancySubprocessor.cxx:14 AliMUONOccupancySubprocessor.cxx:15 AliMUONOccupancySubprocessor.cxx:16 AliMUONOccupancySubprocessor.cxx:17 AliMUONOccupancySubprocessor.cxx:18 AliMUONOccupancySubprocessor.cxx:19 AliMUONOccupancySubprocessor.cxx:20 AliMUONOccupancySubprocessor.cxx:21 AliMUONOccupancySubprocessor.cxx:22 AliMUONOccupancySubprocessor.cxx:23 AliMUONOccupancySubprocessor.cxx:24 AliMUONOccupancySubprocessor.cxx:25 AliMUONOccupancySubprocessor.cxx:26 AliMUONOccupancySubprocessor.cxx:27 AliMUONOccupancySubprocessor.cxx:28 AliMUONOccupancySubprocessor.cxx:29 AliMUONOccupancySubprocessor.cxx:30 AliMUONOccupancySubprocessor.cxx:31 AliMUONOccupancySubprocessor.cxx:32 AliMUONOccupancySubprocessor.cxx:33 AliMUONOccupancySubprocessor.cxx:34 AliMUONOccupancySubprocessor.cxx:35 AliMUONOccupancySubprocessor.cxx:36 AliMUONOccupancySubprocessor.cxx:37 AliMUONOccupancySubprocessor.cxx:38 AliMUONOccupancySubprocessor.cxx:39 AliMUONOccupancySubprocessor.cxx:40 AliMUONOccupancySubprocessor.cxx:41 AliMUONOccupancySubprocessor.cxx:42 AliMUONOccupancySubprocessor.cxx:43 AliMUONOccupancySubprocessor.cxx:44 AliMUONOccupancySubprocessor.cxx:45 AliMUONOccupancySubprocessor.cxx:46 AliMUONOccupancySubprocessor.cxx:47 AliMUONOccupancySubprocessor.cxx:48 AliMUONOccupancySubprocessor.cxx:49 AliMUONOccupancySubprocessor.cxx:50 AliMUONOccupancySubprocessor.cxx:51 AliMUONOccupancySubprocessor.cxx:52 AliMUONOccupancySubprocessor.cxx:53 AliMUONOccupancySubprocessor.cxx:54 AliMUONOccupancySubprocessor.cxx:55 AliMUONOccupancySubprocessor.cxx:56 AliMUONOccupancySubprocessor.cxx:57 AliMUONOccupancySubprocessor.cxx:58 AliMUONOccupancySubprocessor.cxx:59 AliMUONOccupancySubprocessor.cxx:60 AliMUONOccupancySubprocessor.cxx:61 AliMUONOccupancySubprocessor.cxx:62 AliMUONOccupancySubprocessor.cxx:63 AliMUONOccupancySubprocessor.cxx:64 AliMUONOccupancySubprocessor.cxx:65 AliMUONOccupancySubprocessor.cxx:66 AliMUONOccupancySubprocessor.cxx:67 AliMUONOccupancySubprocessor.cxx:68 AliMUONOccupancySubprocessor.cxx:69 AliMUONOccupancySubprocessor.cxx:70 AliMUONOccupancySubprocessor.cxx:71 AliMUONOccupancySubprocessor.cxx:72 AliMUONOccupancySubprocessor.cxx:73 AliMUONOccupancySubprocessor.cxx:74 AliMUONOccupancySubprocessor.cxx:75 AliMUONOccupancySubprocessor.cxx:76 AliMUONOccupancySubprocessor.cxx:77 AliMUONOccupancySubprocessor.cxx:78 AliMUONOccupancySubprocessor.cxx:79 AliMUONOccupancySubprocessor.cxx:80 AliMUONOccupancySubprocessor.cxx:81 AliMUONOccupancySubprocessor.cxx:82 AliMUONOccupancySubprocessor.cxx:83 AliMUONOccupancySubprocessor.cxx:84 AliMUONOccupancySubprocessor.cxx:85 AliMUONOccupancySubprocessor.cxx:86 AliMUONOccupancySubprocessor.cxx:87 AliMUONOccupancySubprocessor.cxx:88 AliMUONOccupancySubprocessor.cxx:89 AliMUONOccupancySubprocessor.cxx:90 AliMUONOccupancySubprocessor.cxx:91 AliMUONOccupancySubprocessor.cxx:92 AliMUONOccupancySubprocessor.cxx:93 AliMUONOccupancySubprocessor.cxx:94 AliMUONOccupancySubprocessor.cxx:95 AliMUONOccupancySubprocessor.cxx:96 AliMUONOccupancySubprocessor.cxx:97 AliMUONOccupancySubprocessor.cxx:98 AliMUONOccupancySubprocessor.cxx:99 AliMUONOccupancySubprocessor.cxx:100 AliMUONOccupancySubprocessor.cxx:101 AliMUONOccupancySubprocessor.cxx:102 AliMUONOccupancySubprocessor.cxx:103 AliMUONOccupancySubprocessor.cxx:104 AliMUONOccupancySubprocessor.cxx:105 AliMUONOccupancySubprocessor.cxx:106 AliMUONOccupancySubprocessor.cxx:107 AliMUONOccupancySubprocessor.cxx:108 AliMUONOccupancySubprocessor.cxx:109 AliMUONOccupancySubprocessor.cxx:110 AliMUONOccupancySubprocessor.cxx:111 AliMUONOccupancySubprocessor.cxx:112 AliMUONOccupancySubprocessor.cxx:113 AliMUONOccupancySubprocessor.cxx:114 AliMUONOccupancySubprocessor.cxx:115 AliMUONOccupancySubprocessor.cxx:116 AliMUONOccupancySubprocessor.cxx:117 AliMUONOccupancySubprocessor.cxx:118 AliMUONOccupancySubprocessor.cxx:119 AliMUONOccupancySubprocessor.cxx:120 AliMUONOccupancySubprocessor.cxx:121 AliMUONOccupancySubprocessor.cxx:122 AliMUONOccupancySubprocessor.cxx:123 AliMUONOccupancySubprocessor.cxx:124 AliMUONOccupancySubprocessor.cxx:125 AliMUONOccupancySubprocessor.cxx:126 AliMUONOccupancySubprocessor.cxx:127 AliMUONOccupancySubprocessor.cxx:128 AliMUONOccupancySubprocessor.cxx:129 AliMUONOccupancySubprocessor.cxx:130 AliMUONOccupancySubprocessor.cxx:131 AliMUONOccupancySubprocessor.cxx:132 AliMUONOccupancySubprocessor.cxx:133 AliMUONOccupancySubprocessor.cxx:134 AliMUONOccupancySubprocessor.cxx:135 AliMUONOccupancySubprocessor.cxx:136 AliMUONOccupancySubprocessor.cxx:137 AliMUONOccupancySubprocessor.cxx:138 AliMUONOccupancySubprocessor.cxx:139 AliMUONOccupancySubprocessor.cxx:140 AliMUONOccupancySubprocessor.cxx:141 AliMUONOccupancySubprocessor.cxx:142 AliMUONOccupancySubprocessor.cxx:143 AliMUONOccupancySubprocessor.cxx:144 AliMUONOccupancySubprocessor.cxx:145 AliMUONOccupancySubprocessor.cxx:146 AliMUONOccupancySubprocessor.cxx:147 AliMUONOccupancySubprocessor.cxx:148 AliMUONOccupancySubprocessor.cxx:149 AliMUONOccupancySubprocessor.cxx:150 AliMUONOccupancySubprocessor.cxx:151 AliMUONOccupancySubprocessor.cxx:152 AliMUONOccupancySubprocessor.cxx:153 AliMUONOccupancySubprocessor.cxx:154 AliMUONOccupancySubprocessor.cxx:155 AliMUONOccupancySubprocessor.cxx:156 AliMUONOccupancySubprocessor.cxx:157 AliMUONOccupancySubprocessor.cxx:158 AliMUONOccupancySubprocessor.cxx:159 AliMUONOccupancySubprocessor.cxx:160 AliMUONOccupancySubprocessor.cxx:161 AliMUONOccupancySubprocessor.cxx:162 AliMUONOccupancySubprocessor.cxx:163 AliMUONOccupancySubprocessor.cxx:164 AliMUONOccupancySubprocessor.cxx:165 AliMUONOccupancySubprocessor.cxx:166 AliMUONOccupancySubprocessor.cxx:167 AliMUONOccupancySubprocessor.cxx:168 AliMUONOccupancySubprocessor.cxx:169 AliMUONOccupancySubprocessor.cxx:170