X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FTestMUONPreprocessor.C;h=9efe23defc9905efc6e7bed4b078fba304c94dc8;hb=c47f1b15b93bd0cfd20a4d9c43dcbf80169ba8c7;hp=37ec6aed1d7280c3a155c058ec6ae11538f63d5b;hpb=9136a073349d531f3fefe516f12a47177872f634;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/TestMUONPreprocessor.C b/MUON/TestMUONPreprocessor.C index 37ec6aed1d7..9efe23defc9 100644 --- a/MUON/TestMUONPreprocessor.C +++ b/MUON/TestMUONPreprocessor.C @@ -28,56 +28,78 @@ /// b) select run type, using shuttle->AddInputRunParameter() (the run type /// dictates which task is really performed by the MUONPreprocessor /// +/// You must load relevant libraries (besides normal MUON ones) before +/// compiling this macro : +/// +/// gSystem->Load("$ALICE_ROOT/SHUTTLE/TestShuttle/libTestShuttle"); +/// gSystem->Load("libMUONshuttle.so"); +/// +/// /// For more information on usage, please see READMEshuttle. /// // By Laurent Aphecetche, SUBATECH Nantes #include "TestMUONPreprocessor.h" + +#include "AliMUONTrackerPreprocessor.h" +#include "AliMUONTriggerPreprocessor.h" + +#include "AliLog.h" + +#include "AliMpExMap.h" +#include "AliMpHelper.h" +#include "AliMpHVNamer.h" +#include "AliMpCDB.h" + #include "AliCDBManager.h" -#include "AliShuttleInterface.h" +#include "AliCDBEntry.h" #include "AliCDBId.h" +#include "AliShuttleInterface.h" #include "AliTestShuttle.h" -#include "TMap.h" +#include "AliDCSValue.h" + #include "Riostream.h" #include "TSystem.h" -#include "AliMpExMap.h" #include "TMap.h" -#include "TString.h" #include "TObjArray.h" -#include "AliMpHelper.h" -#include "AliDCSValue.h" #include "TObjString.h" +#include "TString.h" #include "TRandom.h" -#include "AliMUONTrackerPreprocessor.h" -#include "AliCDBEntry.h" -#include "AliMUONHVNamer.h" #endif -void TestMUONPreprocessor(Int_t runNumber=80) +void TestMUONPreprocessor(Int_t runNumber=80, const char* runType="PEDESTAL_RUN") { - // load library - gSystem->Load("../SHUTTLE/TestShuttle/libTestShuttle.so"); - gSystem->Load("libMUONshuttle.so"); + // runType can be : + // + // PEDESTAL_RUN -> pedestals + // ELECTRONICS_CALIBRATION_RUN -> gains + // PHYSICS -> HV + // GMS // create AliTestShuttle instance // The parameters are run, startTime, endTime AliTestShuttle* shuttle = new AliTestShuttle(runNumber, 0, 1); - - AliTestShuttle::SetMainCDB("local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB"); + const char* inputCDB = "local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB"; + + AliTestShuttle::SetMainCDB(inputCDB); AliTestShuttle::SetMainRefStorage("local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestReference"); + // Create DCS HV aliases + TMap* dcsAliasMap = CreateDCSAliasMap(inputCDB); + + if ( dcsAliasMap ) + { + // now give the alias map to the shuttle + shuttle->SetDCSInput(dcsAliasMap); + } + + printf("Test Shuttle temp dir: %s\n", AliShuttleInterface::GetShuttleTempDir()); printf("Test Shuttle log dir: %s\n", AliShuttleInterface::GetShuttleLogDir()); printf("Test OCDB storage Uri: %s\n", AliShuttleInterface::GetMainCDB().Data()); printf("Test Reference storage Uri: %s\n", AliShuttleInterface::GetMainRefStorage().Data()); - // Create DCS HV aliases - TMap* dcsAliasMap = CreateDCSAliasMap(); - - // now give the alias map to the shuttle - shuttle->SetDCSInput(dcsAliasMap); - // The shuttle can process files that originate from DCS, DAQ and HLT. // To test it, we provide some local files and locations where these would be found when // the online machinery would be there. @@ -93,29 +115,38 @@ void TestMUONPreprocessor(Int_t runNumber=80) shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","PEDESTALS","LDC2","$ALICE_ROOT/MUON/data/LDC2.ped"); shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","PEDESTALS","LDC3","$ALICE_ROOT/MUON/data/LDC3.ped"); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","GAINS","LDC0","$ALICE_ROOT/MUON/data/LDC0.gain"); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","GAINS","LDC1","$ALICE_ROOT/MUON/data/LDC1.gain"); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","GAINS","LDC2","$ALICE_ROOT/MUON/data/LDC2.gain"); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","GAINS","LDC3","$ALICE_ROOT/MUON/data/LDC3.gain"); + // and GMS file - shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","GMS","GMS","$ALICE_ROOT/MUON/data/GMS.root"); + shuttle->AddInputFile(AliTestShuttle::kDCS,"MCH","GMS","GMS","$ALICE_ROOT/MUON/data/GMS.root"); + // and then the trigger stuff + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MTR","LOCAL","LDC0","$ALICE_ROOT/MUON/data/MtgLocalMask-1.dat"); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MTR","REGIONAL","LDC0","$ALICE_ROOT/MUON/data/MtgRegionalCrate-1.dat"); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MTR","GLOBAL","LDC0","$ALICE_ROOT/MUON/data/MtgGlobalCrate-1.dat"); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MTR","LUT","LDC0","$ALICE_ROOT/MUON/data/MtgLocalLut-1.dat"); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MTR","CURRENT","LDC0","$ALICE_ROOT/MUON/data/MtgCurrent.dat"); + // The shuttle can read run parameters stored in the DAQ run logbook. // To test it, we must provide the run parameters manually. They will be retrieved in the preprocessor // using GetRunParameter function. // In real life the parameters will be retrieved automatically from the run logbook; - shuttle->AddInputRunType("MCH", "PEDESTAL_RUN"); - // shuttle->AddInputRunType("MCH", "GMS"); - // PEDESTAL_RUN -> pedestals - // ELECTRONICS_CALIBRATION_RUN -> gains - // PHYSICS ? -> HV + shuttle->SetInputRunType(runType); // Create the preprocessor that should be tested, it registers itself automatically to the shuttle new AliMUONTrackerPreprocessor(shuttle); - + new AliMUONTriggerPreprocessor(shuttle); + shuttle->Print(); // Test the preprocessor shuttle->Process(); } -TMap* CreateDCSAliasMap() +TMap* CreateDCSAliasMap(const char* inputCDB) { /// Creates a DCS structure for MUON Tracker HV /// @@ -126,12 +157,35 @@ TMap* CreateDCSAliasMap() /// is a TObjArray of AliDCSValue /// An AliDCSValue consists of timestamp and a value in form of a AliSimpleValue + Bool_t undefStorage(kFALSE); + + AliCDBManager* man = AliCDBManager::Instance(); + if (!man->IsDefaultStorageSet()) + { + undefStorage = kTRUE; + man->SetDefaultStorage(inputCDB); + } + + // Load mapping + Bool_t ok = AliMpCDB::LoadDDLStore(); + + if (undefStorage) + { + man->UnsetDefaultStorage(); + } + + if (!ok) + { + AliErrorGeneral("CreateDCSAliasMap","Could not load DDLStore from OCDB"); + return 0x0; + } + TMap* aliasMap = new TMap; aliasMap->SetOwner(kTRUE); TRandom random(0); - AliMUONHVNamer hvNamer; + AliMpHVNamer hvNamer; TObjArray* aliases = hvNamer.GenerateAliases(); @@ -163,12 +217,11 @@ TMap* CreateDCSAliasMap() for ( UInt_t timeStamp = 0; timeStamp < 60*15; timeStamp += 120 ) { Float_t value = random.Gaus(1750,62.5); - if ( aliasName == "MchHvLvLeft/Chamber01Left/Quad3Sect2.actual.vMon") value = 500; -// if ( aliasName == "MchHvLvLeft/Chamber05Left/Slat07.actual.vMon") value = 1300; -// if ( aliasName == "MchHvLvLeft/Chamber05Left/Slat03.actual.vMon") value = 2500; + if ( aliasName == "MchHvLvLeft/Chamber00Left/Quad2Sect1.actual.vMon") value = 500; AliDCSValue* dcsValue = new AliDCSValue(value,timeStamp); valueSet->Add(dcsValue); } + if ( aliasName == "MchHvLvLeft/Chamber04Left/Slat06.actual.vMon" ) continue; aliasMap->Add(new TObjString(*alias),valueSet); } }