X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FTestMUONPreprocessor.C;h=be2de3132a2d449c19753a69b8fcb87507e3505d;hb=9b775d2de9f2640add12bd4c5c8fe86c5d83ce80;hp=6d3319ff2e873367651164b1f8ee76e33f4203bd;hpb=49e110ec84b5490c391d36920908cc9bf2c300e7;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/TestMUONPreprocessor.C b/MUON/TestMUONPreprocessor.C index 6d3319ff2e8..be2de3132a2 100644 --- a/MUON/TestMUONPreprocessor.C +++ b/MUON/TestMUONPreprocessor.C @@ -23,19 +23,34 @@ /// /// This macro runs the test preprocessor for MUON. /// It uses AliTestShuttle to simulate a full Shuttle process -/// It requires to have linked the MUON OCDB files in TestShuttle/TestCDB: -///
-/// cd $ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB -/// mkdir MUON -/// ln -s $ALICE_ROOT/MUON/Calib MUON/Calib -////// -/// You must load relevant libraries (besides normal MUON ones) before -/// compiling this macro : +/// You must load relevant libraries (besides normal MUON ones -which is done +/// easily by executing root from the $ALICE_ROOT/MUON directory to use +/// the rootlogon.C there) before compiling this macro : ///
/// gSystem->Load("$ALICE_ROOT/SHUTTLE/TestShuttle/libTestShuttle"); /// gSystem->Load("libMUONshuttle"); ///+/// Last line above assume you have $ALICE_ROOT/MUON/lib/tgt_[arch] (where +/// libMUONshuttle is located) in your LD_LIBRARY_PATH +/// +/// Having $ALICE_ROOT/SHUTTLE/TestShuttle directory in your LD_LIBRARY_PATH +/// (or DYLD_LIBRARY_PATH on Mac OS X) won't hurt either... +/// +/// You must also make a link of some OCDB entries to have the mapping loaded +/// correctly : +/// +/// cd $ALICE_ROOT/OCDB/SHUTTLE/TestShuttle/TestCDB +/// mkdir -p MUON/Calib +/// cd MUON/Calib +/// ln -si $ALICE_ROOT/OCDB/MUON/Calib/MappingData . +/// +/// and Align/Baseline if you'd like to test GMS subprocessor : +/// +/// cd $ALICE_ROOT/OCDB/SHUTTLE/TestShuttle/TestCDB +/// mkdir -p MUON/Align/Baseline +/// cd MUON/Align +/// ln -si $ALICE_ROOT/OCDB/MUON/Align/Baseline . /// /// The input data has to be created first by other processes (or is created /// here by CreateDCSAliasMap() for tracker HV). @@ -55,11 +70,20 @@ /// LDC3.gain /// GMS/ /// GMS.root +/// OCCUPANCY/ +/// mch.occupancy /// PEDESTALS/ /// LDC0.ped /// LDC1.ped /// LDC2.ped /// LDC3.ped +/// LDC4.conf +/// CONFIG/ +/// LDC0.conf +/// LDC1.conf +/// LDC2.conf +/// LDC3.conf +/// LDC4.conf /// TRIGGER/ /// ExportedFiles.dat (mandatory) /// MtgGlobalCrate-1.dat @@ -90,8 +114,10 @@ #include "AliLog.h" +#include "AliMpBusPatch.h" #include "AliMpExMap.h" #include "AliMpHelper.h" +#include "AliMpDDLStore.h" #include "AliMpDCSNamer.h" #include "AliMpCDB.h" @@ -111,6 +137,7 @@ #include "TRandom.h" #endif +//______________________________________________________________________________ void TestMUONPreprocessor(Int_t runNumber=80, const char* runType="CALIBRATION", const char* sourceDirectory="/afs/cern.ch/user/l/laphecet/public") @@ -124,13 +151,16 @@ void TestMUONPreprocessor(Int_t runNumber=80, // create AliTestShuttle instance // The parameters are run, startTime, endTime + + gSystem->Load("libTestShuttle.so"); + AliTestShuttle* shuttle = new AliTestShuttle(runNumber, 0, 1); - const char* inputCDB = "local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB"; + const char* inputCDB = "local://$ALICE_ROOT/OCDB/SHUTTLE/TestShuttle/TestCDB"; //const char* inputCDB = "alien://folder=/alice/testdata/2008/TS08a/OCDB"; AliTestShuttle::SetMainCDB(inputCDB); - AliTestShuttle::SetMainRefStorage("local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestReference"); + AliTestShuttle::SetMainRefStorage("local://$ALICE_ROOT/OCDB/SHUTTLE/TestShuttle/TestReference"); TString rt(runType); rt.ToUpper(); @@ -138,6 +168,8 @@ void TestMUONPreprocessor(Int_t runNumber=80, if ( rt.Contains("PHYSICS") ) { // Create DCS aliases + UInt_t startTime, endTime; + TMap* dcsAliasMap = CreateDCSAliasMap(inputCDB, runNumber); if ( dcsAliasMap ) @@ -166,12 +198,21 @@ void TestMUONPreprocessor(Int_t runNumber=80, shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","PEDESTALS","LDC1",Form("%s/PEDESTALS/LDC1.ped",sourceDirectory)); shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","PEDESTALS","LDC2",Form("%s/PEDESTALS/LDC2.ped",sourceDirectory)); shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","PEDESTALS","LDC3",Form("%s/PEDESTALS/LDC3.ped",sourceDirectory)); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","PEDESTALS","LDC4",Form("%s/PEDESTALS/LDC4.ped",sourceDirectory)); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","CONFIG","LDC0",Form("%s/CONFIG/LDC0.conf",sourceDirectory)); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","CONFIG","LDC1",Form("%s/CONFIG/LDC1.conf",sourceDirectory)); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","CONFIG","LDC2",Form("%s/CONFIG/LDC2.conf",sourceDirectory)); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","CONFIG","LDC3",Form("%s/CONFIG/LDC3.conf",sourceDirectory)); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","CONFIG","LDC4",Form("%s/CONFIG/LDC4.conf",sourceDirectory)); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","GAINS","LDC0",Form("%s/GAINS/LDC0.gain",sourceDirectory)); shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","GAINS","LDC1",Form("%s/GAINS/LDC1.gain",sourceDirectory)); shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","GAINS","LDC2",Form("%s/GAINS/LDC2.gain",sourceDirectory)); shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","GAINS","LDC3",Form("%s/GAINS/LDC3.gain",sourceDirectory)); + shuttle->AddInputFile(AliTestShuttle::kDAQ,"MCH","OCCUPANCY","MON",Form("%s/OCCUPANCY/mch.occupancy",sourceDirectory)); + // and GMS file shuttle->AddInputFile(AliTestShuttle::kDCS,"MCH","GMS","GMS",Form("%s/GMS/GMS.root",sourceDirectory)); @@ -198,6 +239,70 @@ void TestMUONPreprocessor(Int_t runNumber=80, shuttle->Process(); } +//______________________________________________________________________________ +void GenerateConfig() +{ + /// Generate "fake" configuration files for the tracker. One per LDC. + + Bool_t undefStorage(kFALSE); + + AliCDBManager* man = AliCDBManager::Instance(); + if (!man->IsDefaultStorageSet()) + { + undefStorage = kTRUE; + man->SetDefaultStorage("local://$ALICE_ROOT/OCDB"); + man->SetRun(0); + } + + // Load mapping + Bool_t ok = AliMpCDB::LoadDDLStore(); + + if (undefStorage) + { + man->UnsetDefaultStorage(); + } + + if (!ok) + { + AliErrorGeneral("GenerateConfig","Could not load DDLStore from OCDB"); + return; + } + + ofstream* files[5]; + for ( Int_t i = 0; i < 5; ++i ) + { + files[i]=0; + } + + TIter next(AliMpDDLStore::Instance()->CreateBusPatchIterator()); + AliMpBusPatch* bp; + + while ( ( bp = static_cast