#include "AliMUONPedestalEventGenerator.h"
#include "AliCodeTimer.h"
#include "AliDAQ.h"
#include "AliHeader.h"
#include "AliLog.h"
#include "AliMUONCalibrationData.h"
#include "AliMUONRawWriter.h"
#include "AliMUONVCalibParam.h"
#include "AliMUONVDigit.h"
#include "AliMUONVDigitStore.h"
#include "AliMUONVStore.h"
#include "AliMpCathodType.h"
#include "AliMpConstants.h"
#include "AliMpDEStore.h"
#include "AliMpDetElement.h"
#include "AliMpPlaneType.h"
#include "AliRawDataHeaderSim.h"
#include "AliLoader.h"
#include "AliRunLoader.h"
#include <TClonesArray.h>
#include <TMath.h>
#include <TROOT.h>
#include <TRandom.h>
#include <TStopwatch.h>
#include <TSystem.h>
#include <TTree.h>
#include <cstdio>
ClassImp(AliMUONPedestalEventGenerator)
Int_t AliMUONPedestalEventGenerator::fgCounter(0);
AliMUONPedestalEventGenerator::AliMUONPedestalEventGenerator(Int_t runNumber,
Int_t nevents,
const char* filename)
: TTask("AliMUONPedestalEventGenerator","Generate fake pedestal events"),
fCalibrationData(new AliMUONCalibrationData(runNumber)),
fDateFileName(filename),
fGAliceFileName("galice.root"),
fMakeDDL(kTRUE),
fLoader(0x0),
fPedestals(fCalibrationData->Pedestals()),
fDigitStore(0x0),
fRawWriter(0x0)
{
if (!gSystem->IsAbsoluteFileName(fGAliceFileName))
{
char* absFileName = gSystem->ConcatFileName(gSystem->WorkingDirectory(),
fGAliceFileName);
fGAliceFileName = absFileName;
delete[] absFileName;
}
AliRunLoader* runLoader = LoadRun("recreate");
if (!runLoader)
{
AliError("Could not create RunLoader");
return;
}
runLoader->SetNumberOfEventsPerFile(nevents);
runLoader->MakeTree("E");
for ( Int_t iEvent = 0; iEvent < nevents; ++iEvent )
{
runLoader->SetEventNumber(iEvent);
runLoader->GetHeader()->Reset(runNumber,iEvent);
runLoader->TreeE()->Fill();
}
runLoader->WriteHeader("OVERWRITE");
runLoader->CdGAFile();
runLoader->Write(0, TObject::kOverwrite);
delete runLoader;
fLoader = 0x0;
}
AliMUONPedestalEventGenerator::~AliMUONPedestalEventGenerator()
{
delete fCalibrationData;
AliInfo(Form("make a digit counter %d",fgCounter));
delete fDigitStore;
delete fRawWriter;
}
Bool_t
AliMUONPedestalEventGenerator::ConvertRawFilesToDate()
{
AliCodeTimerAuto("",0)
AliInfo("Converting raw to date");
const Int_t kIDet = AliDAQ::DetectorID("MUONTRK");
const Int_t kNLDCs = 5;
char* path = gSystem->Which(gSystem->Getenv("PATH"), "dateStream");
if (!path)
{
AliError("the program dateStream was not found");
return kFALSE;
}
delete[] path;
AliRunLoader* runLoader = LoadRun("read");
if (!runLoader) return kFALSE;
AliInfo(Form("converting raw data DDL files to DATE files %s", fDateFileName.Data()));
FILE** pipe = new FILE*[kNLDCs];
for ( Int_t iFile = 0; iFile < kNLDCs; ++iFile)
{
char command[256];
snprintf(command, 256, "dateStream -c -D -o %s.LDC%d -# %d -C",
fDateFileName.Data(), iFile, runLoader->GetNumberOfEvents());
pipe[iFile] = gSystem->OpenPipe(command, "w");
}
for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); ++iEvent)
{
Float_t ldc = 0;
Int_t prevLDC = -1;
for (Int_t iDDL = 0; iDDL < AliDAQ::NumberOfDdls(kIDet); ++iDDL)
{
Int_t ddlID = AliDAQ::DdlID(kIDet,iDDL);
Int_t ldcID = Int_t(ldc + 0.0001);
ldc += AliDAQ::NumberOfLdcs(kIDet) / AliDAQ::NumberOfDdls(kIDet);
char rawFileName[256];
snprintf(rawFileName, 256, "raw%d/%s",
iEvent, AliDAQ::DdlFileName(kIDet,iDDL));
FILE* file = fopen(rawFileName, "rb");
if (!file) continue;
fseek(file, 0, SEEK_END);
unsigned long size = ftell(file);
fclose(file);
if (!size) continue;
if (ldcID != prevLDC) {
fprintf(pipe[ldcID], " LDC Id %d\n", ldcID);
prevLDC = ldcID;
}
fprintf(pipe[ldcID], " Equipment Id %d Payload %s\n", ddlID, rawFileName);
}
}
Int_t result(0);
for ( Int_t iFile = 0; iFile < kNLDCs; ++iFile)
{
result += gSystem->ClosePipe(pipe[iFile]);
}
for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); ++iEvent)
{
char command[256];
snprintf(command, 256, "rm -r raw%d", iEvent);
gSystem->Exec(command);
}
delete [] pipe;
delete runLoader;
fLoader=0x0;
return (result == 0);
}
AliMUONVDigitStore*
AliMUONPedestalEventGenerator::DigitStore()
{
if (!fDigitStore) fDigitStore = AliMUONVDigitStore::Create("AliMUONDigitStoreV2R");
return fDigitStore;
}
void
AliMUONPedestalEventGenerator::Exec(Option_t*)
{
AliCodeTimerAuto("",0)
if (!fPedestals)
{
AliError("No pedestal store. Cannot proceed.");
return;
}
AliRunLoader* runLoader = LoadRun("update");
Int_t nevents = runLoader->GetNumberOfEvents();
for ( Int_t i = 0; i < nevents ; ++i )
{
runLoader->GetEvent(i);
fLoader->MakeDigitsContainer();
TTree* treeD = fLoader->TreeD();
if (!treeD)
{
AliError(Form("Could not get TreeD for event %d",i));
continue;
}
DigitStore()->Connect(*treeD);
GenerateDigits(*(DigitStore()));
treeD->Fill();
AliCodeTimerStart("WriteDigits")
fLoader->WriteDigits("OVERWRITE");
AliCodeTimerStop("WriteDigits")
fLoader->UnloadDigits();
if ( fMakeDDL )
{
AliCodeTimerAuto("Digits2Raw",1);
Digits2Raw(i);
}
}
runLoader->WriteRunLoader("OVERWRITE");
delete runLoader;
fLoader = 0x0;
if ( fMakeDDL && fDateFileName.Length() > 0 )
{
AliCodeTimerAuto("ConvertRawFilesToDate",1)
Bool_t dateOutput = ConvertRawFilesToDate();
if (!dateOutput)
{
AliError("DATE output failed. Exiting.");
return;
}
}
}
void
AliMUONPedestalEventGenerator::Digits2Raw(Int_t event)
{
AliCodeTimerAuto("",0)
if (!fRawWriter)
{
AliRawDataHeaderSim header;
fRawWriter = new AliMUONRawWriter;
fRawWriter->SetHeader(header);
}
TString baseDir = gSystem->WorkingDirectory();
char dirName[256];
snprintf(dirName, 256, "raw%d", event);
gSystem->MakeDirectory(dirName);
if (!gSystem->ChangeDirectory(dirName))
{
AliError(Form("couldn't change to directory %s", dirName));
return;
}
fRawWriter->Digits2Raw(DigitStore(),0);
gSystem->ChangeDirectory(baseDir);
}
void
AliMUONPedestalEventGenerator::GenerateDigits(AliMUONVDigitStore& digitStore)
{
AliCodeTimerAuto("",0)
digitStore.Clear();
Int_t ngenerated(0);
Int_t nmanus(0);
TIter next(fPedestals->CreateIterator());
AliMUONVCalibParam* pedestals;
while ( ( pedestals = static_cast<AliMUONVCalibParam*>(next())) )
{
Int_t detElemId = pedestals->ID0();
Int_t manuId = pedestals->ID1();
AliMpDetElement* de = AliMpDEStore::Instance()->GetDetElement(detElemId);
AliMp::PlaneType planeType = AliMp::kBendingPlane;
if ( manuId & AliMpConstants::ManuMask(AliMp::kNonBendingPlane) )
{
planeType = AliMp::kNonBendingPlane;
}
AliMp::CathodType cathode = de->GetCathodType(planeType);
++nmanus;
for ( Int_t manuChannel = 0; manuChannel < pedestals->Size(); ++manuChannel )
{
Float_t mean = pedestals->ValueAsFloat(manuChannel,0);
if (mean == AliMUONVCalibParam::InvalidFloatValue())
{
continue;
}
else if ( mean < 1 || mean > 4095 )
{
AliFatal(Form("Got an invalid mean pedestal value for DE %d Manu %d"
" channel %d : mean = %e",detElemId,manuId,manuChannel,
mean));
}
else
{
Float_t sigma = pedestals->ValueAsFloat(manuChannel,1);
if ( sigma < 0 )
{
AliWarning(Form("Got a negative sigma pedestal value for DE %d Manu %d"
" channel %d : sigma = %e, will use Abs()=%e",
detElemId,manuId,manuChannel,
sigma,-sigma));
sigma = -sigma;
}
AliMUONVDigit* d = digitStore.Add(detElemId,manuId,manuChannel,
cathode,
AliMUONVDigitStore::kIgnore);
Float_t ped = -1;
while ( ped <= 0 )
{
ped = gRandom->Gaus(mean,sigma);
}
Int_t pedADC = TMath::FloorNint(ped);
d->SetADC(pedADC);
d->SetCharge(ped);
++fgCounter;
++ngenerated;
}
}
}
AliDebug(1,Form("ngenerated=%d nmanus=%d",ngenerated,nmanus));
}
AliRunLoader*
AliMUONPedestalEventGenerator::LoadRun(const char* mode)
{
while (AliRunLoader::Instance())
{
AliDebug(1,Form("Deleting AliRunLoader %p",AliRunLoader::Instance()));
delete AliRunLoader::Instance();
}
AliRunLoader* runLoader =
AliRunLoader::Open(fGAliceFileName,AliConfig::GetDefaultEventFolderName(),
mode);
AliDebug(1,Form("AliRunLoader(%s)=%p",mode,runLoader));
if (!runLoader)
{
AliError("No run loader found in file galice.root");
return 0x0;
}
TString smode(mode);
smode.ToUpper();
if (smode.Contains("RECREATE"))
{
AliInfo("Creating folder structure");
AliConfig::Instance()
->CreateDetectorFolders(runLoader->GetEventFolder(),
"MUON", "MUON");
fLoader = new AliLoader("MUON",runLoader->GetEventFolder());
runLoader->AddLoader(fLoader);
}
fLoader = static_cast<AliLoader*>(runLoader->GetDetectorLoader("MUON"));
return runLoader;
}
AliMUONPedestalEventGenerator.cxx:1 AliMUONPedestalEventGenerator.cxx:2 AliMUONPedestalEventGenerator.cxx:3 AliMUONPedestalEventGenerator.cxx:4 AliMUONPedestalEventGenerator.cxx:5 AliMUONPedestalEventGenerator.cxx:6 AliMUONPedestalEventGenerator.cxx:7 AliMUONPedestalEventGenerator.cxx:8 AliMUONPedestalEventGenerator.cxx:9 AliMUONPedestalEventGenerator.cxx:10 AliMUONPedestalEventGenerator.cxx:11 AliMUONPedestalEventGenerator.cxx:12 AliMUONPedestalEventGenerator.cxx:13 AliMUONPedestalEventGenerator.cxx:14 AliMUONPedestalEventGenerator.cxx:15 AliMUONPedestalEventGenerator.cxx:16 AliMUONPedestalEventGenerator.cxx:17 AliMUONPedestalEventGenerator.cxx:18 AliMUONPedestalEventGenerator.cxx:19 AliMUONPedestalEventGenerator.cxx:20 AliMUONPedestalEventGenerator.cxx:21 AliMUONPedestalEventGenerator.cxx:22 AliMUONPedestalEventGenerator.cxx:23 AliMUONPedestalEventGenerator.cxx:24 AliMUONPedestalEventGenerator.cxx:25 AliMUONPedestalEventGenerator.cxx:26 AliMUONPedestalEventGenerator.cxx:27 AliMUONPedestalEventGenerator.cxx:28 AliMUONPedestalEventGenerator.cxx:29 AliMUONPedestalEventGenerator.cxx:30 AliMUONPedestalEventGenerator.cxx:31 AliMUONPedestalEventGenerator.cxx:32 AliMUONPedestalEventGenerator.cxx:33 AliMUONPedestalEventGenerator.cxx:34 AliMUONPedestalEventGenerator.cxx:35 AliMUONPedestalEventGenerator.cxx:36 AliMUONPedestalEventGenerator.cxx:37 AliMUONPedestalEventGenerator.cxx:38 AliMUONPedestalEventGenerator.cxx:39 AliMUONPedestalEventGenerator.cxx:40 AliMUONPedestalEventGenerator.cxx:41 AliMUONPedestalEventGenerator.cxx:42 AliMUONPedestalEventGenerator.cxx:43 AliMUONPedestalEventGenerator.cxx:44 AliMUONPedestalEventGenerator.cxx:45 AliMUONPedestalEventGenerator.cxx:46 AliMUONPedestalEventGenerator.cxx:47 AliMUONPedestalEventGenerator.cxx:48 AliMUONPedestalEventGenerator.cxx:49 AliMUONPedestalEventGenerator.cxx:50 AliMUONPedestalEventGenerator.cxx:51 AliMUONPedestalEventGenerator.cxx:52 AliMUONPedestalEventGenerator.cxx:53 AliMUONPedestalEventGenerator.cxx:54 AliMUONPedestalEventGenerator.cxx:55 AliMUONPedestalEventGenerator.cxx:56 AliMUONPedestalEventGenerator.cxx:57 AliMUONPedestalEventGenerator.cxx:58 AliMUONPedestalEventGenerator.cxx:59 AliMUONPedestalEventGenerator.cxx:60 AliMUONPedestalEventGenerator.cxx:61 AliMUONPedestalEventGenerator.cxx:62 AliMUONPedestalEventGenerator.cxx:63 AliMUONPedestalEventGenerator.cxx:64 AliMUONPedestalEventGenerator.cxx:65 AliMUONPedestalEventGenerator.cxx:66 AliMUONPedestalEventGenerator.cxx:67 AliMUONPedestalEventGenerator.cxx:68 AliMUONPedestalEventGenerator.cxx:69 AliMUONPedestalEventGenerator.cxx:70 AliMUONPedestalEventGenerator.cxx:71 AliMUONPedestalEventGenerator.cxx:72 AliMUONPedestalEventGenerator.cxx:73 AliMUONPedestalEventGenerator.cxx:74 AliMUONPedestalEventGenerator.cxx:75 AliMUONPedestalEventGenerator.cxx:76 AliMUONPedestalEventGenerator.cxx:77 AliMUONPedestalEventGenerator.cxx:78 AliMUONPedestalEventGenerator.cxx:79 AliMUONPedestalEventGenerator.cxx:80 AliMUONPedestalEventGenerator.cxx:81 AliMUONPedestalEventGenerator.cxx:82 AliMUONPedestalEventGenerator.cxx:83 AliMUONPedestalEventGenerator.cxx:84 AliMUONPedestalEventGenerator.cxx:85 AliMUONPedestalEventGenerator.cxx:86 AliMUONPedestalEventGenerator.cxx:87 AliMUONPedestalEventGenerator.cxx:88 AliMUONPedestalEventGenerator.cxx:89 AliMUONPedestalEventGenerator.cxx:90 AliMUONPedestalEventGenerator.cxx:91 AliMUONPedestalEventGenerator.cxx:92 AliMUONPedestalEventGenerator.cxx:93 AliMUONPedestalEventGenerator.cxx:94 AliMUONPedestalEventGenerator.cxx:95 AliMUONPedestalEventGenerator.cxx:96 AliMUONPedestalEventGenerator.cxx:97 AliMUONPedestalEventGenerator.cxx:98 AliMUONPedestalEventGenerator.cxx:99 AliMUONPedestalEventGenerator.cxx:100 AliMUONPedestalEventGenerator.cxx:101 AliMUONPedestalEventGenerator.cxx:102 AliMUONPedestalEventGenerator.cxx:103 AliMUONPedestalEventGenerator.cxx:104 AliMUONPedestalEventGenerator.cxx:105 AliMUONPedestalEventGenerator.cxx:106 AliMUONPedestalEventGenerator.cxx:107 AliMUONPedestalEventGenerator.cxx:108 AliMUONPedestalEventGenerator.cxx:109 AliMUONPedestalEventGenerator.cxx:110 AliMUONPedestalEventGenerator.cxx:111 AliMUONPedestalEventGenerator.cxx:112 AliMUONPedestalEventGenerator.cxx:113 AliMUONPedestalEventGenerator.cxx:114 AliMUONPedestalEventGenerator.cxx:115 AliMUONPedestalEventGenerator.cxx:116 AliMUONPedestalEventGenerator.cxx:117 AliMUONPedestalEventGenerator.cxx:118 AliMUONPedestalEventGenerator.cxx:119 AliMUONPedestalEventGenerator.cxx:120 AliMUONPedestalEventGenerator.cxx:121 AliMUONPedestalEventGenerator.cxx:122 AliMUONPedestalEventGenerator.cxx:123 AliMUONPedestalEventGenerator.cxx:124 AliMUONPedestalEventGenerator.cxx:125 AliMUONPedestalEventGenerator.cxx:126 AliMUONPedestalEventGenerator.cxx:127 AliMUONPedestalEventGenerator.cxx:128 AliMUONPedestalEventGenerator.cxx:129 AliMUONPedestalEventGenerator.cxx:130 AliMUONPedestalEventGenerator.cxx:131 AliMUONPedestalEventGenerator.cxx:132 AliMUONPedestalEventGenerator.cxx:133 AliMUONPedestalEventGenerator.cxx:134 AliMUONPedestalEventGenerator.cxx:135 AliMUONPedestalEventGenerator.cxx:136 AliMUONPedestalEventGenerator.cxx:137 AliMUONPedestalEventGenerator.cxx:138 AliMUONPedestalEventGenerator.cxx:139 AliMUONPedestalEventGenerator.cxx:140 AliMUONPedestalEventGenerator.cxx:141 AliMUONPedestalEventGenerator.cxx:142 AliMUONPedestalEventGenerator.cxx:143 AliMUONPedestalEventGenerator.cxx:144 AliMUONPedestalEventGenerator.cxx:145 AliMUONPedestalEventGenerator.cxx:146 AliMUONPedestalEventGenerator.cxx:147 AliMUONPedestalEventGenerator.cxx:148 AliMUONPedestalEventGenerator.cxx:149 AliMUONPedestalEventGenerator.cxx:150 AliMUONPedestalEventGenerator.cxx:151 AliMUONPedestalEventGenerator.cxx:152 AliMUONPedestalEventGenerator.cxx:153 AliMUONPedestalEventGenerator.cxx:154 AliMUONPedestalEventGenerator.cxx:155 AliMUONPedestalEventGenerator.cxx:156 AliMUONPedestalEventGenerator.cxx:157 AliMUONPedestalEventGenerator.cxx:158 AliMUONPedestalEventGenerator.cxx:159 AliMUONPedestalEventGenerator.cxx:160 AliMUONPedestalEventGenerator.cxx:161 AliMUONPedestalEventGenerator.cxx:162 AliMUONPedestalEventGenerator.cxx:163 AliMUONPedestalEventGenerator.cxx:164 AliMUONPedestalEventGenerator.cxx:165 AliMUONPedestalEventGenerator.cxx:166 AliMUONPedestalEventGenerator.cxx:167 AliMUONPedestalEventGenerator.cxx:168 AliMUONPedestalEventGenerator.cxx:169 AliMUONPedestalEventGenerator.cxx:170 AliMUONPedestalEventGenerator.cxx:171 AliMUONPedestalEventGenerator.cxx:172 AliMUONPedestalEventGenerator.cxx:173 AliMUONPedestalEventGenerator.cxx:174 AliMUONPedestalEventGenerator.cxx:175 AliMUONPedestalEventGenerator.cxx:176 AliMUONPedestalEventGenerator.cxx:177 AliMUONPedestalEventGenerator.cxx:178 AliMUONPedestalEventGenerator.cxx:179 AliMUONPedestalEventGenerator.cxx:180 AliMUONPedestalEventGenerator.cxx:181 AliMUONPedestalEventGenerator.cxx:182 AliMUONPedestalEventGenerator.cxx:183 AliMUONPedestalEventGenerator.cxx:184 AliMUONPedestalEventGenerator.cxx:185 AliMUONPedestalEventGenerator.cxx:186 AliMUONPedestalEventGenerator.cxx:187 AliMUONPedestalEventGenerator.cxx:188 AliMUONPedestalEventGenerator.cxx:189 AliMUONPedestalEventGenerator.cxx:190 AliMUONPedestalEventGenerator.cxx:191 AliMUONPedestalEventGenerator.cxx:192 AliMUONPedestalEventGenerator.cxx:193 AliMUONPedestalEventGenerator.cxx:194 AliMUONPedestalEventGenerator.cxx:195 AliMUONPedestalEventGenerator.cxx:196 AliMUONPedestalEventGenerator.cxx:197 AliMUONPedestalEventGenerator.cxx:198 AliMUONPedestalEventGenerator.cxx:199 AliMUONPedestalEventGenerator.cxx:200 AliMUONPedestalEventGenerator.cxx:201 AliMUONPedestalEventGenerator.cxx:202 AliMUONPedestalEventGenerator.cxx:203 AliMUONPedestalEventGenerator.cxx:204 AliMUONPedestalEventGenerator.cxx:205 AliMUONPedestalEventGenerator.cxx:206 AliMUONPedestalEventGenerator.cxx:207 AliMUONPedestalEventGenerator.cxx:208 AliMUONPedestalEventGenerator.cxx:209 AliMUONPedestalEventGenerator.cxx:210 AliMUONPedestalEventGenerator.cxx:211 AliMUONPedestalEventGenerator.cxx:212 AliMUONPedestalEventGenerator.cxx:213 AliMUONPedestalEventGenerator.cxx:214 AliMUONPedestalEventGenerator.cxx:215 AliMUONPedestalEventGenerator.cxx:216 AliMUONPedestalEventGenerator.cxx:217 AliMUONPedestalEventGenerator.cxx:218 AliMUONPedestalEventGenerator.cxx:219 AliMUONPedestalEventGenerator.cxx:220 AliMUONPedestalEventGenerator.cxx:221 AliMUONPedestalEventGenerator.cxx:222 AliMUONPedestalEventGenerator.cxx:223 AliMUONPedestalEventGenerator.cxx:224 AliMUONPedestalEventGenerator.cxx:225 AliMUONPedestalEventGenerator.cxx:226 AliMUONPedestalEventGenerator.cxx:227 AliMUONPedestalEventGenerator.cxx:228 AliMUONPedestalEventGenerator.cxx:229 AliMUONPedestalEventGenerator.cxx:230 AliMUONPedestalEventGenerator.cxx:231 AliMUONPedestalEventGenerator.cxx:232 AliMUONPedestalEventGenerator.cxx:233 AliMUONPedestalEventGenerator.cxx:234 AliMUONPedestalEventGenerator.cxx:235 AliMUONPedestalEventGenerator.cxx:236 AliMUONPedestalEventGenerator.cxx:237 AliMUONPedestalEventGenerator.cxx:238 AliMUONPedestalEventGenerator.cxx:239 AliMUONPedestalEventGenerator.cxx:240 AliMUONPedestalEventGenerator.cxx:241 AliMUONPedestalEventGenerator.cxx:242 AliMUONPedestalEventGenerator.cxx:243 AliMUONPedestalEventGenerator.cxx:244 AliMUONPedestalEventGenerator.cxx:245 AliMUONPedestalEventGenerator.cxx:246 AliMUONPedestalEventGenerator.cxx:247 AliMUONPedestalEventGenerator.cxx:248 AliMUONPedestalEventGenerator.cxx:249 AliMUONPedestalEventGenerator.cxx:250 AliMUONPedestalEventGenerator.cxx:251 AliMUONPedestalEventGenerator.cxx:252 AliMUONPedestalEventGenerator.cxx:253 AliMUONPedestalEventGenerator.cxx:254 AliMUONPedestalEventGenerator.cxx:255 AliMUONPedestalEventGenerator.cxx:256 AliMUONPedestalEventGenerator.cxx:257 AliMUONPedestalEventGenerator.cxx:258 AliMUONPedestalEventGenerator.cxx:259 AliMUONPedestalEventGenerator.cxx:260 AliMUONPedestalEventGenerator.cxx:261 AliMUONPedestalEventGenerator.cxx:262 AliMUONPedestalEventGenerator.cxx:263 AliMUONPedestalEventGenerator.cxx:264 AliMUONPedestalEventGenerator.cxx:265 AliMUONPedestalEventGenerator.cxx:266 AliMUONPedestalEventGenerator.cxx:267 AliMUONPedestalEventGenerator.cxx:268 AliMUONPedestalEventGenerator.cxx:269 AliMUONPedestalEventGenerator.cxx:270 AliMUONPedestalEventGenerator.cxx:271 AliMUONPedestalEventGenerator.cxx:272 AliMUONPedestalEventGenerator.cxx:273 AliMUONPedestalEventGenerator.cxx:274 AliMUONPedestalEventGenerator.cxx:275 AliMUONPedestalEventGenerator.cxx:276 AliMUONPedestalEventGenerator.cxx:277 AliMUONPedestalEventGenerator.cxx:278 AliMUONPedestalEventGenerator.cxx:279 AliMUONPedestalEventGenerator.cxx:280 AliMUONPedestalEventGenerator.cxx:281 AliMUONPedestalEventGenerator.cxx:282 AliMUONPedestalEventGenerator.cxx:283 AliMUONPedestalEventGenerator.cxx:284 AliMUONPedestalEventGenerator.cxx:285 AliMUONPedestalEventGenerator.cxx:286 AliMUONPedestalEventGenerator.cxx:287 AliMUONPedestalEventGenerator.cxx:288 AliMUONPedestalEventGenerator.cxx:289 AliMUONPedestalEventGenerator.cxx:290 AliMUONPedestalEventGenerator.cxx:291 AliMUONPedestalEventGenerator.cxx:292 AliMUONPedestalEventGenerator.cxx:293 AliMUONPedestalEventGenerator.cxx:294 AliMUONPedestalEventGenerator.cxx:295 AliMUONPedestalEventGenerator.cxx:296 AliMUONPedestalEventGenerator.cxx:297 AliMUONPedestalEventGenerator.cxx:298 AliMUONPedestalEventGenerator.cxx:299 AliMUONPedestalEventGenerator.cxx:300 AliMUONPedestalEventGenerator.cxx:301 AliMUONPedestalEventGenerator.cxx:302 AliMUONPedestalEventGenerator.cxx:303 AliMUONPedestalEventGenerator.cxx:304 AliMUONPedestalEventGenerator.cxx:305 AliMUONPedestalEventGenerator.cxx:306 AliMUONPedestalEventGenerator.cxx:307 AliMUONPedestalEventGenerator.cxx:308 AliMUONPedestalEventGenerator.cxx:309 AliMUONPedestalEventGenerator.cxx:310 AliMUONPedestalEventGenerator.cxx:311 AliMUONPedestalEventGenerator.cxx:312 AliMUONPedestalEventGenerator.cxx:313 AliMUONPedestalEventGenerator.cxx:314 AliMUONPedestalEventGenerator.cxx:315 AliMUONPedestalEventGenerator.cxx:316 AliMUONPedestalEventGenerator.cxx:317 AliMUONPedestalEventGenerator.cxx:318 AliMUONPedestalEventGenerator.cxx:319 AliMUONPedestalEventGenerator.cxx:320 AliMUONPedestalEventGenerator.cxx:321 AliMUONPedestalEventGenerator.cxx:322 AliMUONPedestalEventGenerator.cxx:323 AliMUONPedestalEventGenerator.cxx:324 AliMUONPedestalEventGenerator.cxx:325 AliMUONPedestalEventGenerator.cxx:326 AliMUONPedestalEventGenerator.cxx:327 AliMUONPedestalEventGenerator.cxx:328 AliMUONPedestalEventGenerator.cxx:329 AliMUONPedestalEventGenerator.cxx:330 AliMUONPedestalEventGenerator.cxx:331 AliMUONPedestalEventGenerator.cxx:332 AliMUONPedestalEventGenerator.cxx:333 AliMUONPedestalEventGenerator.cxx:334 AliMUONPedestalEventGenerator.cxx:335 AliMUONPedestalEventGenerator.cxx:336 AliMUONPedestalEventGenerator.cxx:337 AliMUONPedestalEventGenerator.cxx:338 AliMUONPedestalEventGenerator.cxx:339 AliMUONPedestalEventGenerator.cxx:340 AliMUONPedestalEventGenerator.cxx:341 AliMUONPedestalEventGenerator.cxx:342 AliMUONPedestalEventGenerator.cxx:343 AliMUONPedestalEventGenerator.cxx:344 AliMUONPedestalEventGenerator.cxx:345 AliMUONPedestalEventGenerator.cxx:346 AliMUONPedestalEventGenerator.cxx:347 AliMUONPedestalEventGenerator.cxx:348 AliMUONPedestalEventGenerator.cxx:349 AliMUONPedestalEventGenerator.cxx:350 AliMUONPedestalEventGenerator.cxx:351 AliMUONPedestalEventGenerator.cxx:352 AliMUONPedestalEventGenerator.cxx:353 AliMUONPedestalEventGenerator.cxx:354 AliMUONPedestalEventGenerator.cxx:355 AliMUONPedestalEventGenerator.cxx:356 AliMUONPedestalEventGenerator.cxx:357 AliMUONPedestalEventGenerator.cxx:358 AliMUONPedestalEventGenerator.cxx:359 AliMUONPedestalEventGenerator.cxx:360 AliMUONPedestalEventGenerator.cxx:361 AliMUONPedestalEventGenerator.cxx:362 AliMUONPedestalEventGenerator.cxx:363 AliMUONPedestalEventGenerator.cxx:364 AliMUONPedestalEventGenerator.cxx:365 AliMUONPedestalEventGenerator.cxx:366 AliMUONPedestalEventGenerator.cxx:367 AliMUONPedestalEventGenerator.cxx:368 AliMUONPedestalEventGenerator.cxx:369 AliMUONPedestalEventGenerator.cxx:370 AliMUONPedestalEventGenerator.cxx:371 AliMUONPedestalEventGenerator.cxx:372 AliMUONPedestalEventGenerator.cxx:373 AliMUONPedestalEventGenerator.cxx:374 AliMUONPedestalEventGenerator.cxx:375 AliMUONPedestalEventGenerator.cxx:376 AliMUONPedestalEventGenerator.cxx:377 AliMUONPedestalEventGenerator.cxx:378 AliMUONPedestalEventGenerator.cxx:379 AliMUONPedestalEventGenerator.cxx:380 AliMUONPedestalEventGenerator.cxx:381 AliMUONPedestalEventGenerator.cxx:382 AliMUONPedestalEventGenerator.cxx:383 AliMUONPedestalEventGenerator.cxx:384 AliMUONPedestalEventGenerator.cxx:385 AliMUONPedestalEventGenerator.cxx:386 AliMUONPedestalEventGenerator.cxx:387 AliMUONPedestalEventGenerator.cxx:388 AliMUONPedestalEventGenerator.cxx:389 AliMUONPedestalEventGenerator.cxx:390 AliMUONPedestalEventGenerator.cxx:391 AliMUONPedestalEventGenerator.cxx:392 AliMUONPedestalEventGenerator.cxx:393 AliMUONPedestalEventGenerator.cxx:394 AliMUONPedestalEventGenerator.cxx:395 AliMUONPedestalEventGenerator.cxx:396 AliMUONPedestalEventGenerator.cxx:397 AliMUONPedestalEventGenerator.cxx:398 AliMUONPedestalEventGenerator.cxx:399 AliMUONPedestalEventGenerator.cxx:400 AliMUONPedestalEventGenerator.cxx:401 AliMUONPedestalEventGenerator.cxx:402 AliMUONPedestalEventGenerator.cxx:403 AliMUONPedestalEventGenerator.cxx:404 AliMUONPedestalEventGenerator.cxx:405 AliMUONPedestalEventGenerator.cxx:406 AliMUONPedestalEventGenerator.cxx:407 AliMUONPedestalEventGenerator.cxx:408 AliMUONPedestalEventGenerator.cxx:409 AliMUONPedestalEventGenerator.cxx:410 AliMUONPedestalEventGenerator.cxx:411 AliMUONPedestalEventGenerator.cxx:412 AliMUONPedestalEventGenerator.cxx:413 AliMUONPedestalEventGenerator.cxx:414 AliMUONPedestalEventGenerator.cxx:415 AliMUONPedestalEventGenerator.cxx:416 AliMUONPedestalEventGenerator.cxx:417 AliMUONPedestalEventGenerator.cxx:418 AliMUONPedestalEventGenerator.cxx:419 AliMUONPedestalEventGenerator.cxx:420 AliMUONPedestalEventGenerator.cxx:421 AliMUONPedestalEventGenerator.cxx:422 AliMUONPedestalEventGenerator.cxx:423 AliMUONPedestalEventGenerator.cxx:424 AliMUONPedestalEventGenerator.cxx:425 AliMUONPedestalEventGenerator.cxx:426 AliMUONPedestalEventGenerator.cxx:427 AliMUONPedestalEventGenerator.cxx:428 AliMUONPedestalEventGenerator.cxx:429 AliMUONPedestalEventGenerator.cxx:430 AliMUONPedestalEventGenerator.cxx:431 AliMUONPedestalEventGenerator.cxx:432 AliMUONPedestalEventGenerator.cxx:433 AliMUONPedestalEventGenerator.cxx:434 AliMUONPedestalEventGenerator.cxx:435 AliMUONPedestalEventGenerator.cxx:436 AliMUONPedestalEventGenerator.cxx:437 AliMUONPedestalEventGenerator.cxx:438 AliMUONPedestalEventGenerator.cxx:439 AliMUONPedestalEventGenerator.cxx:440 AliMUONPedestalEventGenerator.cxx:441 AliMUONPedestalEventGenerator.cxx:442 AliMUONPedestalEventGenerator.cxx:443 AliMUONPedestalEventGenerator.cxx:444 AliMUONPedestalEventGenerator.cxx:445 AliMUONPedestalEventGenerator.cxx:446 AliMUONPedestalEventGenerator.cxx:447 AliMUONPedestalEventGenerator.cxx:448 AliMUONPedestalEventGenerator.cxx:449 AliMUONPedestalEventGenerator.cxx:450 AliMUONPedestalEventGenerator.cxx:451 AliMUONPedestalEventGenerator.cxx:452 AliMUONPedestalEventGenerator.cxx:453 AliMUONPedestalEventGenerator.cxx:454 AliMUONPedestalEventGenerator.cxx:455 AliMUONPedestalEventGenerator.cxx:456 AliMUONPedestalEventGenerator.cxx:457 AliMUONPedestalEventGenerator.cxx:458 AliMUONPedestalEventGenerator.cxx:459 AliMUONPedestalEventGenerator.cxx:460 AliMUONPedestalEventGenerator.cxx:461 AliMUONPedestalEventGenerator.cxx:462 AliMUONPedestalEventGenerator.cxx:463 AliMUONPedestalEventGenerator.cxx:464 AliMUONPedestalEventGenerator.cxx:465 AliMUONPedestalEventGenerator.cxx:466 AliMUONPedestalEventGenerator.cxx:467 AliMUONPedestalEventGenerator.cxx:468 AliMUONPedestalEventGenerator.cxx:469 AliMUONPedestalEventGenerator.cxx:470 AliMUONPedestalEventGenerator.cxx:471 AliMUONPedestalEventGenerator.cxx:472 AliMUONPedestalEventGenerator.cxx:473 AliMUONPedestalEventGenerator.cxx:474 AliMUONPedestalEventGenerator.cxx:475