X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONHVSubprocessor.cxx;h=116d2e77fb1c1a431bd05dba080b1b08254794e3;hb=3e6c5c16dc930cbcffbfda8dca1931943c41f65b;hp=c9e5fc2b8c681545b75ec81262d6f277d38e2432;hpb=45824ef1821f64e45a492928dbeadca019e7267f;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONHVSubprocessor.cxx b/MUON/AliMUONHVSubprocessor.cxx index c9e5fc2b8c6..116d2e77fb1 100644 --- a/MUON/AliMUONHVSubprocessor.cxx +++ b/MUON/AliMUONHVSubprocessor.cxx @@ -13,7 +13,9 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/// $Id$ +// $Id$ + +//----------------------------------------------------------------------------- /// \class AliMUONHVSubprocessor /// /// A subprocessor to read HV values for one run @@ -21,14 +23,15 @@ /// It simply creates a copy of the dcsAliasMap w/o information /// from the MUON TRK, and dumps this copy into the CDB /// -// Author: Laurent Aphecetche, Subatech +/// \author Laurent Aphecetche, Subatech +//----------------------------------------------------------------------------- #include "AliMUONHVSubprocessor.h" -#include "AliMUONHVNamer.h" #include "AliMUONPreprocessor.h" #include "AliMpDEIterator.h" #include "AliMpDEManager.h" +#include "AliMpDCSNamer.h" #include "AliCDBMetaData.h" #include "AliLog.h" @@ -42,10 +45,10 @@ ClassImp(AliMUONHVSubprocessor) /// \endcond //_____________________________________________________________________________ -AliMUONHVSubprocessor::AliMUONHVSubprocessor(AliMUONPreprocessor* master) +AliMUONHVSubprocessor::AliMUONHVSubprocessor(AliMUONPreprocessor* master, Bool_t includeHVcurrents) : AliMUONVSubprocessor(master, "HV", - "Get MUON Tracker HV values from DCS") + "Get MUON Tracker HV values from DCS"), fIncludeHVCurrents(includeHVcurrents) { /// ctor } @@ -56,15 +59,6 @@ AliMUONHVSubprocessor::~AliMUONHVSubprocessor() /// dtor } -//_____________________________________________________________________________ -void -AliMUONHVSubprocessor::Initialize(Int_t run, - UInt_t startTime, UInt_t endTime) -{ - /// Initialisation for a given run - AliDebug(1,Form("run %d startTime %ld endtime %ld",run,startTime,endTime)); -} - //_____________________________________________________________________________ UInt_t AliMUONHVSubprocessor::Process(TMap* dcsAliasMap) @@ -74,7 +68,7 @@ AliMUONHVSubprocessor::Process(TMap* dcsAliasMap) TMap hv; hv.SetOwner(kTRUE); - AliMUONHVNamer hvNamer; + AliMpDCSNamer hvNamer("TRACKER"); AliMpDEIterator deIt; @@ -91,21 +85,28 @@ AliMUONHVSubprocessor::Process(TMap* dcsAliasMap) switch ( AliMpDEManager::GetStationType(detElemId) ) { - case AliMp::kStation1: - case AliMp::kStation2: + case AliMp::kStation12: { for ( int i = 0; i <3; ++i) { - aliases.Add(new TObjString(hvNamer.DCSHVChannelName(detElemId,i))); + aliases.Add(new TObjString(hvNamer.DCSAliasName(detElemId,i))); + if ( fIncludeHVCurrents ) + { + aliases.Add(new TObjString(hvNamer.DCSAliasName(detElemId,i,AliMpDCSNamer::kDCSI))); + } } } break; case AliMp::kStation345: { - aliases.Add(new TObjString(hvNamer.DCSHVChannelName(detElemId))); + aliases.Add(new TObjString(hvNamer.DCSAliasName(detElemId))); + if ( fIncludeHVCurrents ) + { + aliases.Add(new TObjString(hvNamer.DCSAliasName(detElemId,0,AliMpDCSNamer::kDCSI))); + } for ( int i = 0; i < hvNamer.NumberOfPCBs(detElemId); ++i) { - aliases.Add(new TObjString(hvNamer.DCSHVSwitchName(detElemId,i))); + aliases.Add(new TObjString(hvNamer.DCSSwitchAliasName(detElemId,i))); } } break; @@ -118,31 +119,88 @@ AliMUONHVSubprocessor::Process(TMap* dcsAliasMap) TIter next(&aliases); TObjString* alias; + Bool_t kNoAliases(kTRUE); + Int_t aliasNotFound(0); + Int_t valueNotFound(0); + + TObjArray temporaryOut; // due to a bug in PVSS some iMon aliases cause problem + // we remove them for the moment. + temporaryOut.SetOwner(kTRUE); + + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber06Left/Slat10.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber06Left/Slat11.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber06Left/Slat12.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber07Left/Slat10.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber07Left/Slat11.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber07Left/Slat12.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber08Left/Slat10.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber08Left/Slat11.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber08Left/Slat12.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber09Left/Slat10.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber09Left/Slat11.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvLeft/Chamber09Left/Slat12.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber06Right/Slat10.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber06Right/Slat11.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber06Right/Slat12.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber07Right/Slat10.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber07Right/Slat11.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber07Right/Slat12.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber08Right/Slat10.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber08Right/Slat11.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber08Right/Slat12.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber09Right/Slat10.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber09Right/Slat11.actual.iMon")); + temporaryOut.Add(new TObjString("MchHvLvRight/Chamber09Right/Slat12.actual.iMon")); while ( ( alias = static_cast(next()) ) ) { TString aliasName(alias->String()); + + if ( temporaryOut.FindObject(alias->String().Data() ) ) + { + // skip problematic aliases + continue; + } + TPair* hvPair = static_cast(dcsAliasMap->FindObject(aliasName.Data())); if (!hvPair) { - AliError(Form("Did not find expected alias (%s)",aliasName.Data())); + ++aliasNotFound; } else { - TObjArray* values = static_cast(hvPair->Value()); + kNoAliases = kFALSE; + TObjArray* values = static_cast(hvPair->Value()->Clone()); if (!values) { - AliError(Form("Could not get values for alias (%s)",aliasName.Data())); + ++valueNotFound; } else { - //FIXME : should insure here that values are only the ones within run - //limits (startTimeLog("ERROR : no DCS values found"); + return 1; + } + + if ( aliasNotFound ) + { + Master()->Log(Form("WARNING %d aliases not found",aliasNotFound)); + } + + if ( valueNotFound ) + { + Master()->Log(Form("WARNING %d values not found",valueNotFound)); + } + + Master()->Log("INFO Aliases successfully read in"); + AliCDBMetaData metaData; metaData.SetBeamPeriod(0); metaData.SetResponsible("MUON TRK"); @@ -150,8 +208,8 @@ AliMUONHVSubprocessor::Process(TMap* dcsAliasMap) Bool_t validToInfinity(kFALSE); - UInt_t result = Master()->Store("Calib","HV",&hv,&metaData,0,validToInfinity); + Bool_t result = Master()->Store("Calib","HV",&hv,&metaData,0,validToInfinity); - return result; + return ( result != kTRUE); // return 0 if everything is ok }