diff --git a/LArCalorimeter/LArCalibUtils/LArCalibUtils/LArAutoCorrBuilder.h b/LArCalorimeter/LArCalibUtils/LArCalibUtils/LArAutoCorrBuilder.h deleted file mode 100644 index ef7d1a278d21c4b10dd455054cf2bda0568022ae..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCalibUtils/LArCalibUtils/LArAutoCorrBuilder.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -//Dear emacs, this is -*-c++-*- - -#ifndef LARAUTOCORRBUILDER_H -#define LARAUTOCORRBUILDER_H -/******************************************************************** - - NAME: LArAutoCorrBuilder.h - PACKAGE: offline/LArCalorimeter/LArCalibUtils - - AUTHORS: R. Lafaye - CREATED: Jun. 12, 2008 from LArAutoCorrMaker - - PURPOSE: Get the autocorrelation for each cell from LArAccumulatedDigits - at each gain and records them in TDS - - In fact only the last (m_nsamples-1) elements of the - first line (or column) of autocorrelation matrix are - recovered and stored in TDS, for these reasons: - - symetry of autocorrelation matrix - - equivalence of autocorrelation elements: - B(n,n+i)\eq B(m,m+i) (eg B12 \eq B23). -HISTORY: - Walter Lampl, 26 Aug 2009: - Derive from LArPedestalBuilder - -********************************************************************/ - -// Include files -#include "GaudiKernel/Algorithm.h" -#include "StoreGate/StoreGateSvc.h" -#include "LArCalibUtils/LArPedestalBuilder.h" - -#include "LArRawEvent/LArAccumulatedDigitContainer.h" - -#include "LArRawConditions/LArAutoCorrComplete.h" - -//----------------------------------------------------------------------- -class LArAutoCorrBuilder : public LArPedestalBuilder -//----------------------------------------------------------------------- -{ - public: - - // Constructor - LArAutoCorrBuilder(const std::string & name, ISvcLocator * pSvcLocator); - - // Destructor - ~LArAutoCorrBuilder(); - - // Algorithm initialization - //StatusCode initialize(); Inherited from LArPedestalBuilder - - // Algorithm execution - //StatusCode execute(); Inherited from LArPedestal Builder - - // Algorithm finalization - StatusCode stop(); - StatusCode finalize(){return StatusCode::SUCCESS;} - - private: - //MGV Decide whether or not to normalize autocorr elements - int m_normalize; - std::string m_acContName; -}; - -#endif - diff --git a/LArCalorimeter/LArCalibUtils/LArCalibUtils/LArPedestalBuilder.h b/LArCalorimeter/LArCalibUtils/LArCalibUtils/LArPedestalBuilder.h deleted file mode 100644 index 52237e3015ee87c638d24fad7553fd6e0b8226b1..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCalibUtils/LArCalibUtils/LArPedestalBuilder.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -//Dear emacs, this is -*-c++-*- -#ifndef LARPEDESTALBUILDER_H -#define LARPEDESTALBUILDER_H -/******************************************************************** - - NAME: LArPedestalBuilder.h - PACKAGE: offline/LArCalorimeter/LArCalibUtils - - AUTHORS: R. Lafaye - CREATED: Jun. 12, 2008 from LArPedestalMaker - - PURPOSE: Get the pedestal and rms for each cell from LArAccumulatedDigits - at each gain and records them in TDS - -********************************************************************/ - -#include "AthenaBaseComps/AthAlgorithm.h" -#include "LArRawEvent/LArAccumulatedDigitContainer.h" -#include "LArRawConditions/LArConditionsContainer.h" - -class LArOnlineID; - -//----------------------------------------------------------------------- -class LArPedestalBuilder : public AthAlgorithm -//----------------------------------------------------------------------- -{ - public: - - // Constructor - LArPedestalBuilder(const std::string & name, ISvcLocator * pSvcLocator); - - // Destructor - ~LArPedestalBuilder(); - - // Algorithm initialization - StatusCode initialize(); - - // Algorithm execution - StatusCode execute(); - - // Algorithm finalization - virtual StatusCode stop(); - virtual StatusCode finalize(){return StatusCode::SUCCESS;} - - protected: - - const LArOnlineID * m_onlineHelper; - // Container key list - std::vector<std::string> m_keylist; - - // Grouping type - std::string m_groupingType; - - // Cache to accumulated substeps - typedef LArConditionsContainer<LArAccumulatedDigit> ACCU; - ACCU m_accu; - - private: - unsigned m_event_counter; - std::string m_pedContName; - uint16_t m_fatalFebErrorPattern; - -}; - -#endif diff --git a/LArCalorimeter/LArCalibUtils/src/LArAutoCorrBuilder.cxx b/LArCalorimeter/LArCalibUtils/src/LArAutoCorrBuilder.cxx deleted file mode 100644 index 46f3d2f10624566c5d9f8c2913719431affa8d3d..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCalibUtils/src/LArAutoCorrBuilder.cxx +++ /dev/null @@ -1,121 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/******************************************************************** - - NAME: LArAutoCorrBuilder.cxx - PACKAGE: offline/LArCalorimeter/LArCalibUtils - - AUTHORS: R. Lafaye - CREATED: Jun. 12, 2008 from LArPedestalMaker - - PURPOSE: Get the autocorrelation for each cell from LArAccumulatedDigits - at each gain and records them in TDS - - In fact only the last (m_nsamples-1) elements of the - first line (or column) of autocorrelation matrix are - recovered and stored in TDS, for these reasons: - - symetrie of autocorrelation matrix - - equivalence of autocorrelation elements: - B(n,n+i)\eq B(m,m+i) (eg B12 \eq B23). - - HISTORY: - Walter Lampl, 26 Aug 2009: - Derive from LArPedestalBuilder - -********************************************************************/ - -// Include files -#include "LArCalibUtils/LArAutoCorrBuilder.h" -//#include "LArIdentifier/LArOnlineID.h" - -//#include <math.h> -//#include <unistd.h> - - -LArAutoCorrBuilder::LArAutoCorrBuilder(const std::string& name, ISvcLocator* pSvcLocator) - : LArPedestalBuilder(name, pSvcLocator) -{ - declareProperty("normalize", m_normalize=1); - declareProperty("AutoCorrKey", m_acContName="LArAutoCorr"); -} - - -LArAutoCorrBuilder::~LArAutoCorrBuilder() -{} - -//--------------------------------------------------------------------------- -StatusCode LArAutoCorrBuilder::stop() { - - ATH_MSG_DEBUG(">>> stop()"); - - auto larAutoCorrComplete = std::make_unique<LArAutoCorrComplete>(); - // Initialize LArAutoCorrComplete - StatusCode sc=larAutoCorrComplete->setGroupingType(m_groupingType,msg()); - if (sc.isFailure()) { - ATH_MSG_ERROR( "Failed to set groupingType for LArAutoCorrComplete object" ); - return sc; - } - sc=larAutoCorrComplete->initialize(); - if (sc.isFailure()) { - ATH_MSG_ERROR( "Failed initialize LArAutoCorrComplete object" ); - return sc; - } - - - int n_zero,n_min, n_max, n_cur; - n_zero=0; n_max=n_min=-1; - unsigned NAutoCorr=0; - std::vector<float> cov; - //Loop over gains - for (unsigned k=0;k<(int)CaloGain::LARNGAIN;k++) { - CaloGain::CaloGain gain=(CaloGain::CaloGain)k; - //Loop over cells - ACCU::ConditionsMapIterator cell_it=m_accu.begin(gain); - ACCU::ConditionsMapIterator cell_it_e=m_accu.end(gain); - if (cell_it==cell_it_e) continue; //No data for this gain - for (;cell_it!=cell_it_e;cell_it++) { - const LArAccumulatedDigit& dg=*cell_it; - n_cur = dg.nTrigger(); - if(n_cur==0) { n_zero++; continue; } - - HWIdentifier chid = cell_it.channelId(); - - - if(n_cur<n_min || n_min<0) n_min=n_cur; - if(n_cur>n_max || n_max<0) n_max=n_cur; - - // Fill the data class with pedestal and rms values - dg.getCov(cov,m_normalize); - - larAutoCorrComplete->set(chid,gain,cov); - NAutoCorr++; - }//end loop over all cells - - ATH_MSG_DEBUG( "Gain " << gain << " Number of cells with 0 events to compute autocorr: " << n_zero ); - ATH_MSG_DEBUG( "Gain " << gain << " Minimum number of events to compute autocorr: " << n_min ); - ATH_MSG_DEBUG( "Gain " << gain << " Maximum number of events to compute autocorr: " << n_max ); - }//end loop over gains - - //msg(MSG::INFO << " Summary : Number of cells with a autocorr value computed : " << larAutoCorrComplete->totalNumberOfConditions() ); - ATH_MSG_INFO( " Summary : Number of cells with a autocorr value computed : " << NAutoCorr ); - ATH_MSG_INFO( " Summary : Number of Barrel PS cells side A or C (connected+unconnected): 3904+ 192 = 4096 " ); - ATH_MSG_INFO( " Summary : Number of Barrel cells side A or C (connected+unconnected): 50944+2304 = 53248 " ); - ATH_MSG_INFO( " Summary : Number of EMEC cells side A or C (connected+unconnected): 31872+3456 = 35328 " ); - ATH_MSG_INFO( " Summary : Number of HEC cells side A or C (connected+unconnected): 2816+ 256 = 3072 " ); - ATH_MSG_INFO( " Summary : Number of FCAL cells side A or C (connected+unconnected): 1762+ 30 = 1792 " ); - - // Record LArAutoCorrComplete - ATH_CHECK( detStore()->record(std::move(larAutoCorrComplete),m_acContName) ); - - return StatusCode::SUCCESS; -} - - - - - - - - diff --git a/LArCalorimeter/LArCalibUtils/src/LArPedestalBuilder.cxx b/LArCalorimeter/LArCalibUtils/src/LArPedestalBuilder.cxx deleted file mode 100644 index 96e0414647b72af5a129e610b61768022e7df0c6..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArCalibUtils/src/LArPedestalBuilder.cxx +++ /dev/null @@ -1,200 +0,0 @@ -/* - Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration -*/ - -/******************************************************************** - - NAME: LArPedestalBuilder.cxx - PACKAGE: offline/LArCalorimeter/LArCalibUtils - - AUTHORS: R. Lafaye - CREATED: Jun. 12, 2008 from LArPedestalMaker - - PURPOSE: Get the pedestal and rms for each cell from LArAccumulatedDigits - at each gain and records them in TDS - - HISTORY: - -********************************************************************/ - -// Include files -#include "LArCalibUtils/LArPedestalBuilder.h" -#include "LArRawConditions/LArPedestalComplete.h" -#include "LArIdentifier/LArOnlineID.h" - -//#include <math.h> -//#include <unistd.h> -#include <vector> - -#include "LArRawEvent/LArFebErrorSummary.h" - -LArPedestalBuilder::LArPedestalBuilder(const std::string& name, ISvcLocator* pSvcLocator) - : AthAlgorithm(name, pSvcLocator), - m_onlineHelper(0), - m_event_counter(0), - m_fatalFebErrorPattern(0xffff) -{ - declareProperty("KeyList", m_keylist); - declareProperty("PedestalKey", m_pedContName="LArPedestal"); - declareProperty("GroupingType", m_groupingType="ExtendedFeedThrough"); -} - -LArPedestalBuilder::~LArPedestalBuilder() -{} - -StatusCode LArPedestalBuilder::initialize() -{ - StatusCode sc; - ATH_MSG_INFO( ">>> Initialize" ); - - //m_mean.resize(1); - //m_rms.resize(1); - - sc = detStore()->retrieve(m_onlineHelper, "LArOnlineID"); - if (sc.isFailure()) { - ATH_MSG_ERROR( "Could not get LArOnlineID helper !" ); - return StatusCode::FAILURE; - } - - - - // m_fullFolderName="/lar/"+m_folderName+"/LArPedestal"; - if (!m_keylist.size()) // Not key list given - {m_keylist.push_back("HIGH"); - m_keylist.push_back("MEDIUM"); - m_keylist.push_back("LOW"); - m_keylist.push_back("FREE"); //For H6.... - } - - //m_pedestal.setGroupingType(LArConditionsContainerBase::SingleGroup); - - m_accu.setGroupingType(LArConditionsContainerBase::SingleGroup); - ATH_CHECK ( m_accu.initialize() ); - - return StatusCode::SUCCESS; -} - - -//--------------------------------------------------------------------------- -StatusCode LArPedestalBuilder::execute() -//--------------------------------------------------------------------------- -{ - ++m_event_counter; - if (m_keylist.size()==0) { - ATH_MSG_ERROR( "Key list is empty! No containers processed!" ); - return StatusCode::FAILURE; - } - - - const LArFebErrorSummary* febErrSum=NULL; - if (evtStore()->contains<LArFebErrorSummary>("LArFebErrorSummary")) { - ATH_CHECK( evtStore()->retrieve(febErrSum) ); - } - else - if (m_event_counter==1) - ATH_MSG_WARNING( "No FebErrorSummaryObject found! Feb errors not checked!" ); - - - - - - const LArAccumulatedDigitContainer* container; - - //Outermost loop goes over all gains (different containers). - for (const std::string& key : m_keylist) { - - StatusCode sc= evtStore()->retrieve(container,key); - if (sc.isFailure() || !container) { - ATH_MSG_DEBUG("Cannot read LArAccumulatedDigitContainer from StoreGate! key=" << key); - return StatusCode::SUCCESS; - } - - // check that container is not empty - if(container->size()==0 ) { - ATH_MSG_DEBUG("LArAccumulatedDigitContainer (key=" << key << ") is empty "); - continue; - } - - HWIdentifier lastFailedFEB(0); - //Inner loop goes over the cells. - for (const LArAccumulatedDigit* dg : *container) { //Loop over all cells - if (dg->nTrigger()==0) continue; //Don't care about empty digits - const HWIdentifier chid=dg->hardwareID(); - const HWIdentifier febid=m_onlineHelper->feb_Id(chid); - if (febErrSum) { - const uint16_t febErrs=febErrSum->feb_error(febid); - if (febErrs & m_fatalFebErrorPattern) { - if (febid!=lastFailedFEB) { - lastFailedFEB=febid; - ATH_MSG_ERROR( "Event " << m_event_counter << " Feb " << m_onlineHelper->channel_name(febid) - << " reports error(s):" << febErrSum->error_to_string(febErrs) << ". Data ignored." ); - } - continue; - } //end if fatal feb error - }//end if check feb error summary - - const CaloGain::CaloGain gain=dg->gain(); - - LArAccumulatedDigit& accDg=m_accu.get(chid,gain); - if (!accDg.setAddSubStep(*dg)) - ATH_MSG_ERROR( "Failed to accumulate sub-steps! Inconsistent number of ADC samples" ); - } //end loop over input container - }//end loop over keys - return StatusCode::SUCCESS; -} - - - - StatusCode LArPedestalBuilder::stop() { - // Create the LArPedestalComplete object - auto larPedestalComplete = std::make_unique<LArPedestalComplete>(); - // Initialize LArPedestalComplete - ATH_CHECK( larPedestalComplete->setGroupingType(m_groupingType,msg()) ); - ATH_CHECK( larPedestalComplete->initialize() ); - - - int n_zero,n_min, n_max, n_cur; - n_zero=0; n_max=n_min=-1; - unsigned NPedestal=0; - //Loop over gains - for (unsigned k=0;k<(int)CaloGain::LARNGAIN;k++) { - CaloGain::CaloGain gain=(CaloGain::CaloGain)k; - //Loop over cells - ACCU::ConditionsMapIterator cell_it=m_accu.begin(gain); - ACCU::ConditionsMapIterator cell_it_e=m_accu.end(gain); - if (cell_it==cell_it_e) continue; //No data for this gain - for (;cell_it!=cell_it_e;cell_it++) { - const LArAccumulatedDigit& dg=*cell_it; - n_cur = dg.nTrigger(); - if(n_cur==0) { n_zero++; continue; } - - HWIdentifier chid = cell_it.channelId(); - - - if(n_cur<n_min || n_min<0) n_min=n_cur; - if(n_cur>n_max || n_max<0) n_max=n_cur; - - // Fill the data class with pedestal and rms values - larPedestalComplete->set(chid,gain,dg.mean(),dg.RMS()); - NPedestal++; - }//end loop over all cells - - ATH_MSG_DEBUG( "Gain " << gain << " Number of cells with 0 events to compute pedestal: " << n_zero ); - ATH_MSG_DEBUG( "Gain " << gain << " Minimum number of events*samples to compute pedestal: " << n_min ); - ATH_MSG_DEBUG( "Gain " << gain << " Maximum number of events*samples to compute pedestal: " << n_max ); - }// End loop over all containers - - //ATH_MSG_INFO( " Summary : Number of cells with a pedestal value computed : " << larPedestalComplete->totalNumberOfConditions() ); - ATH_MSG_INFO( " Summary : Number of cells with a pedestal value computed : " << NPedestal ); - ATH_MSG_INFO( " Summary : Number of Barrel PS cells side A or C (connected+unconnected): 3904+ 192 = 4096 " ); - ATH_MSG_INFO( " Summary : Number of Barrel cells side A or C (connected+unconnected): 50944+2304 = 53248 " ); - ATH_MSG_INFO( " Summary : Number of EMEC cells side A or C (connected+unconnected): 31872+3456 = 35328 " ); - ATH_MSG_INFO( " Summary : Number of HEC cells side A or C (connected+unconnected): 2816+ 256 = 3072 " ); - ATH_MSG_INFO( " Summary : Number of FCAL cells side A or C (connected+unconnected): 1762+ 30 = 1792 " ); - - // Record LArPedestalComplete - ATH_CHECK( detStore()->record(std::move(larPedestalComplete),m_pedContName) ); - - return StatusCode::SUCCESS; -} - diff --git a/LArCalorimeter/LArCalibUtils/src/components/LArCalibUtils_entries.cxx b/LArCalorimeter/LArCalibUtils/src/components/LArCalibUtils_entries.cxx index f61e231c24f1df12a8d9ad4ee64710f56bfe696b..0cc52e0f891b9d0516a15e8223bd45fe107b6f06 100644 --- a/LArCalorimeter/LArCalibUtils/src/components/LArCalibUtils_entries.cxx +++ b/LArCalorimeter/LArCalibUtils/src/components/LArCalibUtils_entries.cxx @@ -1,6 +1,5 @@ #include "LArCalibUtils/LArAutoCorrMaker.h" #include "LArCalibUtils/LArAutoCorrExtrapolate.h" -#include "LArCalibUtils/LArAutoCorrBuilder.h" #include "LArCalibUtils/LArAutoCorrDecoderTool.h" #include "LArCalibUtils/LArCalibDigitMaker.h" #include "LArCalibUtils/LArCaliWaveAverage.h" @@ -15,7 +14,6 @@ #include "LArCalibUtils/LArOFCAlg.h" #include "LArCalibUtils/LArPedestalInPhysicsMaker.h" #include "LArCalibUtils/LArPedestalMaker.h" -#include "LArCalibUtils/LArPedestalBuilder.h" #include "LArCalibUtils/LArPhysWaveBuilder.h" #include "LArCalibUtils/LArPhysWaveShifter.h" #include "LArCalibUtils/LArPhysWaveTool.h" @@ -62,7 +60,6 @@ typedef LArCalibCopyAlg<LArTdriftComplete> LArTdriftCompleteCopyAlg; DECLARE_COMPONENT( LArAutoCorrMaker ) DECLARE_COMPONENT( LArAutoCorrExtrapolate ) -DECLARE_COMPONENT( LArAutoCorrBuilder ) DECLARE_COMPONENT( LArCalibDigitMaker ) DECLARE_COMPONENT( LArCaliWaveAverage ) DECLARE_COMPONENT( LArCaliWaveBuilder ) @@ -74,7 +71,6 @@ DECLARE_COMPONENT( LArMasterWaveBuilder ) DECLARE_COMPONENT( LArOFCAlg ) DECLARE_COMPONENT( LArPedestalInPhysicsMaker ) DECLARE_COMPONENT( LArPedestalMaker ) -DECLARE_COMPONENT( LArPedestalBuilder ) DECLARE_COMPONENT( LArPedestalAutoCorrBuilder ) DECLARE_COMPONENT( LArPhysWaveBuilder ) DECLARE_COMPONENT( LArPhysWaveShifter ) diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/share/LArCalib_DigitAccumulator_jobOptions.py b/LArCalorimeter/LArExample/LArCalibProcessing/share/LArCalib_DigitAccumulator_jobOptions.py deleted file mode 100644 index 9a34211b959db6aa45118e3968412de54f60aff2..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArExample/LArCalibProcessing/share/LArCalib_DigitAccumulator_jobOptions.py +++ /dev/null @@ -1,378 +0,0 @@ -from future import standard_library -standard_library.install_aliases() -import subprocess - -############################################################################### -# -# <Sandrine.Laplace@lapp.in2p3.fr> -# -# Example jobOptions to reconstruction one or more pedestal runs from data -# using accumulated pedestals -# Flags: -# - Pedestal: run LArPedestalBuilder that reads the DSP LArAccumulatedDigits -# dump corresponding Pedestals and LArAccumulatedDigits (key: gain) into ntuple -# - AutoCorr: run LArAutorCorrBuilder that reads the DSP LArAccumulatedDigits -# dump corresponding AutoCorr and (same than above) LArAccumulatedDigits into ntuple -# - Accumulator: run LArDigitsAccumulator to crosscheck DSP computation -# dump corresponding LArAccumulatedDigits (key: gain+AccuDigOff) -# -############################################################################### - -include("LArCalibProcessing/LArCalib_Flags.py") -include("LArCalibProcessing/GetInputFiles.py") - -####################################################### -# Run properties -####################################################### - -if not 'SubDet' in dir(): - SubDet = "Barrel" - -if not 'RunNumberList' in dir(): - RunNumberList = [ 26924 ] - -if not 'FilePrefix' in dir(): - FilePrefix = "daq.Pedestal" - -if not 'InputDir' in dir(): - InputDir = "/castor/cern.ch/grid/atlas/DAQ/lar/ElecCalib/2008" - -if not 'Partition' in dir(): - if (SubDet=='EndCap'): - Partition = "EB-EC*" - else: - Partition = "EB-EMB*" - -if not 'FullFileName' in dir(): - Trigger = "*"+Partition - FullFileName =[] - for RunNumber in RunNumberList : - FullFileName+=GetInputFilesFromTokens(InputDir,RunNumber,FilePrefix,Trigger) - -if not 'GainList' in dir(): - GainList = [ "HIGH" ] - -if not 'KeyOutputAccum' in dir(): - KeyOutputAccum = "AccuDigOff" - -if not 'GainListAccum' in dir(): - GainListAccum =[] - for i in GainList: - newKey=i+KeyOutputAccum - GainListAccum.append(newKey) - printfunc ("GainListAccum = ",GainListAccum) - -if not 'GroupingType' in dir(): - GroupingType = "ExtendedSubDetector" - -if not 'ChannelSelection' in dir(): - # read all - ChannelSelection = " " - ## example to read only cool for Barrel C : Strips->Back - #ChannelSelection = "<channelSelection>0,3:34</channelSelection>" - -from string import * -def DBConnectionFile(sqlitefile): - return "sqlite://;schema="+sqlitefile+";dbname=CONDBR2" - - -####################################################### -# Monitoring properties -####################################################### - -if not 'doMonitoring' in dir(): - doMonitoring = False - -if not 'doLArCalibDataQuality' in dir(): - doLArCalibDataQuality = False - -if not 'online' in dir(): - online = False - -####################################################### -# Pedestal and AutoCorrelation properties -####################################################### - -if not 'Pedestal' in dir(): - Pedestal = True - -if not 'AutoCorr' in dir(): - AutoCorr = True - -if not 'Accumulator' in dir(): - Accumulator = True - -if not 'EventsRef' in dir(): - EventsRef = 10 - -if not 'NSigma' in dir(): - NSigma = 5 - -if not 'NSamples' in dir(): - NSamples = 7 - -if not 'WhichSample' in dir(): - WhichSample = 0 - -####################################################### -# Pedestal and AutoCorrelation output name -####################################################### - -if not 'WriteNtuple' in dir(): - WriteNtuple = LArCalib_Flags.WriteNtuple - -if not 'WritePoolFile' in dir(): - WritePoolFile = LArCalib_Flags.WritePoolFile - -if not 'WriteIOV' in dir(): - WriteIOV = LArCalib_Flags.WriteIOV - -if not 'IOVBegin' in dir(): - IOVBegin = RunNumberList[0] - -if not 'IOVEnd' in dir(): - IOVEnd = LArCalib_Flags.IOVEnd - -if not 'DBConnectionCOOL' in dir(): - DBConnectionCOOL = "oracle://ATLAS_COOLPROD;schema=ATLAS_COOLOFL_LAR;dbname=CONDBR2;" - -if not 'OutputPedAutoCorrRootFileDir' in dir(): - OutputPedAutoCorrRootFileDir = subprocess.getoutput("pwd") - -if not 'OutputPedPoolFileDir' in dir(): - OutputPedPoolFileDir = subprocess.getoutput("pwd") - -if not 'PedLArCalibFolderTag' in dir(): - PedLArCalibFolderTag = LArCalib_Flags.tagSuffix - -if not 'OutputAutoCorrPoolFileDir' in dir(): - OutputAutoCorrPoolFileDir = subprocess.getoutput("pwd") - -if not 'OutputDB' in dir(): - OutputDB = LArCalib_Flags.OutputDB - -if 'OutputSQLiteFile' in dir(): - OutputDB = DBConnectionFile(OutputSQLiteFile) - -if not 'KeyOutputAC' in dir(): - KeyOutputAC = "LArAutoCorr" - -if not 'KeyOutputPed' in dir(): - KeyOutputPed = "Pedestal" # need Pedestal to merge with oracle, LArPedestal doesn't work - -if not 'BaseFileNamePed' in dir(): - BaseFileNamePed = "LArPedestal" - -if not 'BaseFileNameAutoCorr' in dir(): - BaseFileNameAutoCorr = "LArAutoCorr" - -if not 'BaseFileNameAccum' in dir(): - BaseFileNameAccum = "LArAccumulatedDigits" - -for RunNumber in RunNumberList : - if Pedestal : - BaseFileNamePedAutoCorr = BaseFileNamePed + "_" - - if AutoCorr : - if Pedestal : - BaseFileNamePedAutoCorr = BaseFileNamePedAutoCorr + BaseFileNameAutoCorr + "_" - else : - BaseFileNamePedAutoCorr = BaseFileNameAutoCorr + "_" - - if Accumulator : - BaseFileNamePedAutoCorr = BaseFileNameAccum + "_" - - BaseFileNamePedAutoCorr = BaseFileNamePedAutoCorr + str(RunNumber)+"_"+Partition.replace("*","") - BaseFileNamePed = BaseFileNamePed + "_" + str(RunNumber)+"_"+Partition.replace("*","") - BaseFileNameAutoCorr = BaseFileNameAutoCorr + "_" + str(RunNumber)+"_"+Partition.replace("*","") - -if not 'OutputPedAutoCorrRootFileName' in dir(): - OutputPedAutoCorrRootFileName = BaseFileNamePedAutoCorr+ ".root" - -if not 'OutputAutoCorrPoolFileName' in dir(): - OutputAutoCorrPoolFileName = BaseFileNameAutoCorr + ".pool.root" - -if not 'OutputPedPoolFileName' in dir(): - OutputPedPoolFileName = BaseFileNamePed + ".pool.root" - -if not 'OutputObjectSpecPed' in dir(): - OutputObjectSpecPed = "LArPedestalComplete#"+KeyOutputPed+"#"+LArCalib_Flags.LArPedestalFolder - OutputTagSpecPed=LArCalibFolderTag(LArCalib_Flags.LArPedestalFolder,PedLArCalibFolderTag) - -if not 'OutputObjectSpecAutoCorr' in dir(): - OutputObjectSpecAutoCorr = "LArAutoCorrComplete#"+KeyOutputAC+"#"+LArCalib_Flags.LArAutoCorrFolder - OutputTagSpecAutoCorr=LArCalibFolderTag(LArCalib_Flags.LArAutoCorrFolder,PedLArCalibFolderTag) - -####################################################################################### -# print summary -####################################################################################### - -PedestalAutoCorrLog = logging.getLogger( "PedestalAutoCorrLog" ) -PedestalAutoCorrLog.info( " ======================================================== " ) -PedestalAutoCorrLog.info( " *** LAr Pedestal/AutoCorr summary *** " ) -PedestalAutoCorrLog.info( " ======================================================== " ) -PedestalAutoCorrLog.info( " RunNumber = "+str(RunNumberList) ) -PedestalAutoCorrLog.info( " SubDetector = "+SubDet ) -PedestalAutoCorrLog.info( " Partition = "+Partition ) -PedestalAutoCorrLog.info( " Type = "+str(FilePrefix.strip().split('.',9)[1]) ) -PedestalAutoCorrLog.info( " LArGain = "+str(GainList) ) -for i in range(len(FullFileName)): - PedestalAutoCorrLog.info( " FullFileName = "+FullFileName[i] ) -PedestalAutoCorrLog.info( " PedLArCalibFolderTag = "+PedLArCalibFolderTag ) -PedestalAutoCorrLog.info( " OutputPedAutoCorrRootFullFileName = "+OutputPedAutoCorrRootFileDir + "/" + OutputPedAutoCorrRootFileName ) -PedestalAutoCorrLog.info( " OutputPedPoolFullFileName = "+OutputPedPoolFileDir + "/" + OutputPedPoolFileName ) -PedestalAutoCorrLog.info( " OutputAutoCorrPoolFullFileName = "+OutputAutoCorrPoolFileDir + "/" + OutputAutoCorrPoolFileName ) -PedestalAutoCorrLog.info( " OutputObjectSpecPed = "+OutputObjectSpecPed ) -PedestalAutoCorrLog.info( " OutputTagSpecPed = "+OutputTagSpecPed ) -PedestalAutoCorrLog.info( " OutputObjectSpecAutoCorr = "+OutputObjectSpecAutoCorr ) -PedestalAutoCorrLog.info( " OutputTagSpecAutoCorr = "+OutputTagSpecAutoCorr ) -PedestalAutoCorrLog.info( " IOVBegin = "+str(IOVBegin) ) -PedestalAutoCorrLog.info( " IOVEnd = "+str(IOVEnd) ) -PedestalAutoCorrLog.info( " LArCalibOutputDB = "+OutputDB ) -PedestalAutoCorrLog.info( " ======================================================== " ) - -####################################################################################### -include ("LArConditionsCommon/LArMinimalSetup.py") - -# -# Provides ByteStreamInputSvc name of the data file to process in the offline context -# - -## get a handle to the default top-level algorithm sequence -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -## get a handle to the ApplicationManager, to the ServiceManager and to the ToolSvc -from AthenaCommon.AppMgr import (theApp, ServiceMgr as svcMgr,ToolSvc) - -## define the DB Gobal Tag : -svcMgr.IOVDbSvc.GlobalTag = LArCalib_Flags.globalFlagDB -try: - svcMgr.IOVDbSvc.DBInstance="" -except: - pass - -theByteStreamInputSvc=svcMgr.ByteStreamInputSvc -if not 'FullFileName' in dir(): - PedestalAutoCorrLog.info( "No FullFileName! Please give a FullFileName list") - theApp.exit(-1) -else : - svcMgr.EventSelector.Input=FullFileName - -from LArByteStream.LArByteStreamConf import LArRodDecoder -svcMgr.ToolSvc += LArRodDecoder() -theByteStreamAddressProviderSvc =svcMgr.ByteStreamAddressProviderSvc -theByteStreamAddressProviderSvc.TypeNames += ["LArFebHeaderContainer/LArFebHeader"] -theByteStreamAddressProviderSvc.TypeNames += ["LArDigitContainer/HIGH"] - -theByteStreamAddressProviderSvc.TypeNames += ["LArAccumulatedDigitContainer/HIGH"] - -####################################################### -# # -# Pedestal run reconstruction # -# # -####################################################### - - -if Pedestal : - - from LArCalibUtils.LArCalibUtilsConf import LArPedestalBuilder - LArPedestalBuilder=LArPedestalBuilder("LArPedestalBuilder") - LArPedestalBuilder.KeyList = GainList - LArPedestalBuilder.KeyOutput = KeyOutputPed - LArPedestalBuilder.GroupingType = GroupingType - - topSequence += LArPedestalBuilder - -if AutoCorr : - from LArCalibUtils.LArCalibUtilsConf import LArAutoCorrBuilder - LArAutoCorrBuilder=LArAutoCorrBuilder("LArAutoCorrBuilder") - LArAutoCorrBuilder.KeyList = GainList - LArAutoCorrBuilder.KeyOutput = KeyOutputAC - LArAutoCorrBuilder.GroupingType = GroupingType - - topSequence += LArAutoCorrBuilder - -if Accumulator : - from LArROD.LArRODConf import LArDigitsAccumulator - LArDigitsAccumulator=LArDigitsAccumulator("LArDigitsAccumulator") - LArDigitsAccumulator.KeyList = GainList - LArDigitsAccumulator.LArAccuDigitContainerName=KeyOutputAccum - - topSequence += LArDigitsAccumulator - -###################################################################### -# # -# Output # -# # -###################################################################### - - -if ( WriteNtuple ) : - - if Pedestal : - from LArCalibTools.LArCalibToolsConf import LArPedestals2Ntuple - LArPedestals2Ntuple = LArPedestals2Ntuple("LArPedestals2Ntuple") - LArPedestals2Ntuple.ContainerKey = KeyOutputPed - - topSequence += LArPedestals2Ntuple - - if AutoCorr : - from LArCalibTools.LArCalibToolsConf import LArAutoCorr2Ntuple - LArAutoCorr2Ntuple = LArAutoCorr2Ntuple( "LArAutoCorr2Ntuple" ) - LArAutoCorr2Ntuple.Nsamples = NSamples - LArAutoCorr2Ntuple.ContainerKey = KeyOutputAC - - topSequence += LArAutoCorr2Ntuple - - if Pedestal or AutoCorr: - from LArCalibTools.LArCalibToolsConf import LArAccumulatedDigits2Ntuple - for i in GainList: - NtupleName="NtupleDSP"+i - NtupleDSP = LArAccumulatedDigits2Ntuple( NtupleName ) - NtupleDSP.NSamples = NSamples - NtupleDSP.ContainerKey = i - - topSequence += NtupleDSP - - printfunc (NtupleDSP) - - if Accumulator : - from LArCalibTools.LArCalibToolsConf import LArAccumulatedDigits2Ntuple - for i in GainListAccum: - NtupleName="NtupleOff"+i - NtupleOff = LArAccumulatedDigits2Ntuple( NtupleName ) - NtupleOff.NSamples = NSamples - NtupleOff.ContainerKey = i - - topSequence += NtupleOff - - printfunc (NtupleOff) - - theApp.HistogramPersistency = "ROOT" - from GaudiSvc.GaudiSvcConf import NTupleSvc - if os.path.exists(OutputPedAutoCorrRootFileDir + "/" + OutputPedAutoCorrRootFileName): - os.remove(OutputPedAutoCorrRootFileDir + "/" + OutputPedAutoCorrRootFileName) - svcMgr += NTupleSvc() - svcMgr.NTupleSvc.Output = [ "FILE1 DATAFILE='"+OutputPedAutoCorrRootFileDir + "/" + OutputPedAutoCorrRootFileName+"' OPT='NEW'" ] - - - -########################################################################### - -svcMgr.MessageSvc.OutputLevel = WARNING -svcMgr.MessageSvc.defaultLimit = 10000 -svcMgr.MessageSvc.Format = "% F%20W%S%7W%R%T %0W%M" - -svcMgr+=CfgMgr.AthenaEventLoopMgr(OutputLevel = INFO) - -from AthenaCommon.AppMgr import theAuditorSvc -from AthenaCommon.ConfigurableDb import getConfigurable -theAuditorSvc += getConfigurable("MemStatAuditor")(OutputLevel = WARNING) -theApp.AuditAlgorithms=True -theAuditorSvc += getConfigurable("ChronoAuditor")() -theAuditorSvc += getConfigurable("NameAuditor")() -svcMgr.ChronoStatSvc.OutputLevel = INFO - -########################################################################### -