diff --git a/LArCalorimeter/LArMonitoring/python/LArDigitalTriggMonAlg.py b/LArCalorimeter/LArMonitoring/python/LArDigitalTriggMonAlg.py
index d91fd677d084a739201bff6b1d22fcc45ef9c6d6..1f5fc054cc7c9d540082ac4be2d0a877afd36883 100644
--- a/LArCalorimeter/LArMonitoring/python/LArDigitalTriggMonAlg.py
+++ b/LArCalorimeter/LArMonitoring/python/LArDigitalTriggMonAlg.py
@@ -246,7 +246,18 @@ def LArDigitalTriggMonConfig(flags,larLATOMEBuilderAlg, nsamples=32, streamTypes
                                                ybins=64, ymin=-32, ymax=32,
                                                xlabels=BinLabel_LATOME,
                                                pattern=[(part)])
-                
+
+
+                partGroup_digi.defineHistogram('Digi_part_latomesourceidbin,Digi_part_diff_adc0_ped;Diff_ADC0_Ped_vs_LATOME_'+thisSel,
+                                               title='ADC[0] - Pedestal vs LATOME name '+selStrPart[thisSel]+'; ; ADC[0] - Pedestal',
+                                               type='TH2F',
+                                               cutmask='Digi_part_'+thisSel,
+                                               path=thisTopPath,
+                                               xbins=NLatomeBins,xmin=1,xmax=NLatomeBins+1,
+                                               ybins=68, ymin=-34, ymax=34,
+                                               xlabels=BinLabel_LATOME,
+                                               pattern=[(part)])
+
                 partGroup_digi.defineHistogram('Digi_part_latomesourceidbin,Digi_part_diff_adc_ped_norm;Diff_ADC_Ped_Norm_vs_LATOME_'+thisSel,
                                                title='(ADC-ped)/fabs(ADC_max-ped) '+selStrPart[thisSel]+'; LATOME Name; (ADC - pedestal) / fabs(ADC_max - pedestal)',
                                                type='TH2F',
diff --git a/LArCalorimeter/LArMonitoring/src/LArDigitalTriggMonAlg.cxx b/LArCalorimeter/LArMonitoring/src/LArDigitalTriggMonAlg.cxx
index c1de8ebde8d12b2965a241f25d2b0ee538a3a1ff..1b0531c0b09491ca150e285d0eee87deeaafc268 100755
--- a/LArCalorimeter/LArMonitoring/src/LArDigitalTriggMonAlg.cxx
+++ b/LArCalorimeter/LArMonitoring/src/LArDigitalTriggMonAlg.cxx
@@ -119,6 +119,7 @@ struct Digi_MonValues {
   int digi_partition;
   float digi_diff_adc_ped_norm;
   float digi_diff_adc_ped;
+  float digi_diff_adc0_ped;
   int digi_bcid;
   unsigned int digi_lb;
   bool digi_passDigiNom;
@@ -158,6 +159,7 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const
   
   // General Monitored variables
   auto lumi_block = Monitored::Scalar<unsigned int>("lumi_block", 0);
+  auto time_stamp = Monitored::Scalar<unsigned int>("time_stamp", 0);
   auto BCID = Monitored::Scalar<int>("BCID",0);
   auto Pedestal = Monitored::Scalar<float>("Pedestal",0.0);
   auto PedestalRMS = Monitored::Scalar<float>("PedestalRMS",0.0);
@@ -176,6 +178,7 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const
   auto Digi_sampos = Monitored::Scalar<int>("Digi_sampos",-1); // Msampos
   auto Digi_ADC = Monitored::Scalar<int>("Digi_ADC",-1); // MADC
   auto Digi_Diff_ADC_Ped = Monitored::Scalar<float>("Digi_Diff_ADC_Ped", -999); // Diff_ADC_Pedestal
+  auto Digi_Diff_ADC0_Ped = Monitored::Scalar<float>("Digi_Diff_ADC0_Ped", -999); // Pedestal diff
   auto Digi_Diff_ADC_Ped_Norm = Monitored::Scalar<float>("Digi_Diff_ADC_Ped_Norm",-999); // Diff_ADC_Pedestal_Norm
   // cuts
   auto notBadQual = Monitored::Scalar<bool>("notBadQual",false);
@@ -269,6 +272,7 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const
 
   BCID = thisEvent->bcid();// - 88)%((36+7)*4 + 36 + 31);
   lumi_block = thisEvent->lumiBlock();
+  time_stamp = thisEvent->timeStamp();
 
   float mu = lbInteractionsPerCrossing(ctx);
   float event_mu = lbLuminosityPerBCID(ctx);
@@ -361,7 +365,9 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const
       int thismaxPos = std::distance(digito->begin(), maxSam);
       Digi_maxpos=thismaxPos+1; //count samples [1,5]
       float ADC_max = pLArDigit->samples().at(Digi_maxpos-1);
+      float ADC_0 = pLArDigit->samples().at(0);
       // Start Loop over samples
+      Digi_Diff_ADC0_Ped = ADC_0 - Pedestal;
       for(unsigned i=0; i<trueNSamples;++i) {
 	badNotMasked = false;
 	notBadQual = false;
@@ -395,8 +401,8 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const
 	}
 
   //Should be able to use emplace_back here with C++20, see https://en.cppreference.com/w/cpp/language/aggregate_initialization
-	lvaluemap_digi.push_back({Digi_eta, Digi_phi, Digi_ieta, Digi_iphi, Digi_sampos, Digi_ADC, Digi_latomeSourceIdBIN, Pedestal, Digi_maxpos, Digi_partition, Digi_Diff_ADC_Ped_Norm, Digi_Diff_ADC_Ped, BCID, lumi_block, passDigiNom, badNotMasked});
-	lvaluemap_digi_ALL.push_back({Digi_eta, Digi_phi, Digi_ieta, Digi_iphi, Digi_sampos, Digi_ADC, Digi_latomeSourceIdBIN, Pedestal, Digi_maxpos, Digi_partition, Digi_Diff_ADC_Ped_Norm, Digi_Diff_ADC_Ped, BCID, lumi_block, passDigiNom, badNotMasked});
+	lvaluemap_digi.push_back({Digi_eta, Digi_phi, Digi_ieta, Digi_iphi, Digi_sampos, Digi_ADC, Digi_latomeSourceIdBIN, Pedestal, Digi_maxpos, Digi_partition, Digi_Diff_ADC_Ped_Norm, Digi_Diff_ADC_Ped, Digi_Diff_ADC0_Ped, BCID, lumi_block, passDigiNom, badNotMasked});
+	lvaluemap_digi_ALL.push_back({Digi_eta, Digi_phi, Digi_ieta, Digi_iphi, Digi_sampos, Digi_ADC, Digi_latomeSourceIdBIN, Pedestal, Digi_maxpos, Digi_partition, Digi_Diff_ADC_Ped_Norm, Digi_Diff_ADC_Ped, Digi_Diff_ADC0_Ped, BCID, lumi_block, passDigiNom, badNotMasked});
 
       } // End loop over samples
 
@@ -418,13 +424,14 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const
       auto digi_part_partition = Monitored::Collection("Digi_part_partition",tool,[](const auto& v){return v.digi_partition;});
       auto digi_part_diff_adc_ped_norm = Monitored::Collection("Digi_part_diff_adc_ped_norm",tool,[](const auto& v){return v.digi_diff_adc_ped_norm;});
       auto digi_part_diff_adc_ped = Monitored::Collection("Digi_part_diff_adc_ped",tool,[](const auto& v){return v.digi_diff_adc_ped;});
+      auto digi_part_diff_adc0_ped = Monitored::Collection("Digi_part_diff_adc0_ped",tool,[](const auto& v){return v.digi_diff_adc0_ped;});
       auto digi_part_bcid = Monitored::Collection("Digi_part_BCID",tool,[](const auto& v){return v.digi_bcid;});
       auto digi_part_lb = Monitored::Collection("Digi_part_LB",tool,[](const auto& v){return v.digi_lb;});
       auto digi_part_passDigiNom = Monitored::Collection("Digi_part_passDigiNom",tool,[](const auto& v){return v.digi_passDigiNom;});
       auto digi_part_badNotMasked = Monitored::Collection("Digi_part_badNotMasked",tool,[](const auto& v){return v.digi_badNotMasked;});
 
       fill(m_tools[m_toolmapLayerNames_digi.at(m_layerNames[ilayer])], 
-	   digi_part_eta, digi_part_phi, digi_part_ieta, digi_part_iphi, digi_part_sampos, digi_part_adc, digi_part_latomesourceidbin, digi_part_pedestal, digi_part_maxpos, digi_part_diff_adc_ped_norm, digi_part_diff_adc_ped, digi_part_bcid, digi_part_lb, digi_part_passDigiNom, digi_part_badNotMasked);
+	   digi_part_eta, digi_part_phi, digi_part_ieta, digi_part_iphi, digi_part_sampos, digi_part_adc, digi_part_latomesourceidbin, digi_part_pedestal, digi_part_maxpos, digi_part_diff_adc_ped_norm, digi_part_diff_adc_ped, digi_part_diff_adc0_ped, digi_part_bcid, digi_part_lb, digi_part_passDigiNom, digi_part_badNotMasked);
     }
   
 
@@ -510,18 +517,24 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const
       if ( ! m_bcMask.cellShouldBeMasked(bcCont,id)) {
 	notMasked = true;
       }
-      if ( rawSCReco != 0 && rawSCReco->passTauSelection().at(0) == true){ //only compare Et if tau selection is passed
-	passTauSel = true;
+      // popopopo
+      
+      if ( rawSCReco != 0 && rawSCReco->passTauSelection().size()>0){ //only compare Et if tau selection is passed
+	if (rawSCReco->passTauSelection().at(0) == true) passTauSel = true;
       }
-      int bcid_ind = 0;
+      unsigned int bcid_ind = 0;
       if (rawSC->energies().size()>0){
 	for ( auto & SCe : rawSC->bcids() ){
 	  if ( SCe == BCID ) break;
 	  bcid_ind++;
 	}
-	if ( rawSC->bcids().at(bcid_ind) != BCID ) ATH_MSG_WARNING("BCID not found in SC bcids list!! "<<BCID<<" "<<rawSC->bcids().at(bcid_ind));
+	if ( bcid_ind  >= rawSC->bcids().size() ){
+	  ATH_MSG_WARNING("BCID not found in SC bcids list!! "<<BCID<<" BCIDs size: "<<rawSC->bcids().size()<<", proposed index: "<<bcid_ind);
+	} else if ( rawSC->bcids().at(bcid_ind) != BCID ){
+	  ATH_MSG_WARNING("BCID not found in SC bcids list!! "<<BCID<<" "<<rawSC->bcids().at(bcid_ind));
+	}
 
-	if (rawSC->energies().size() > (unsigned)bcid_ind){
+	if (rawSC->energies().size() > bcid_ind){
 	  SC_energy_onl = rawSC->energies().at(bcid_ind);
 	}else{
 	  ATH_MSG_WARNING("rawSC energies vector is too small for the requested BCID index "<<bcid_ind<<" (size is "<<rawSC->energies().size()<<", bcid vec size is "<<rawSC->bcids().size()<<")");
@@ -537,15 +550,17 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const
 	  SC_energy_ofl = rawSCReco->energies().at(0); // algorithm already selects the correct energy
 	}else{
 	  ATH_MSG_WARNING("rawSCReco energies vector is empty!");
-	SC_energy_ofl = 0;
+	  SC_energy_ofl = 0;
 	}
       } 
       SC_ET_diff = SC_energy_onl - SC_energy_ofl;	
       SC_ET_onl = ( SC_energy_onl* 12.5 ) / 1000;  // Converted to GeV
       SC_ET_ofl = ( SC_energy_ofl* 12.5 ) / 1000;  // Converted to GeV
       SC_ET_onl_muscaled = event_mu > 0. ? SC_ET_onl / event_mu : SC_ET_onl;
-      int Etau = 0; 
-      if ( rawSCReco != 0 ){ Etau = rawSCReco->tauEnergies().at(0); }
+      int Etau = 0;
+      if ( rawSCReco != 0 ){
+	if ( rawSCReco->tauEnergies().size()>0 ){ Etau = rawSCReco->tauEnergies().at(0); }
+      }
       SC_time = (SC_energy_ofl != 0) ? (float)Etau / (float)SC_energy_ofl : Etau; 
       
       ATH_MSG_DEBUG("Energy onl - Energy ofl: "<<SC_energy_onl<<",  "<<SC_energy_ofl<<std::endl); 
@@ -564,7 +579,7 @@ StatusCode LArDigitalTriggMonAlg::fillHistograms(const EventContext& ctx) const
       if (SC_ET_ofl > 1){
         eToflGt1GeV = true;
       }
-      if ( rawSC->satur().size()>0 ){
+      if ( rawSC->satur().size()>bcid_ind ){
 	if ( rawSC->satur().at(bcid_ind) ){
 	  if ( notMasked ){
 	    saturNotMasked = true;  
diff --git a/Projects/AthAnalysis/build_externals.sh b/Projects/AthAnalysis/build_externals.sh
index 9cae6d3abc2d68e2360b8133e29c0b608706cd37..e31097f6b17c97e06e0f64943cf8d936921ffb17 100755
--- a/Projects/AthAnalysis/build_externals.sh
+++ b/Projects/AthAnalysis/build_externals.sh
@@ -12,7 +12,7 @@ ATLAS_BUILDTYPE="RelWithDebInfo"
 ATLAS_EXTRA_CMAKE_ARGS=(-DLCG_VERSION_NUMBER=104
                         -DLCG_VERSION_POSTFIX="d_ATLAS_15"
                         -DATLAS_ONNXRUNTIME_USE_CUDA=FALSE
-                        -DATLAS_GAUDI_SOURCE="URL;https://gitlab.cern.ch/atlas/Gaudi/-/archive/v38r0.001/Gaudi-v38r0.001.tar.gz;URL_MD5;36f071bb81c0a85331c047107f829537")
+                        -DATLAS_GAUDI_SOURCE="URL;https://gitlab.cern.ch/atlas/Gaudi/-/archive/v38r0.002/Gaudi-v38r0.002.tar.gz;URL_MD5;0a845aa8b67b4fd390242300ddd211ba")
 ATLAS_EXTRA_MAKE_ARGS=()
 
 # Let "the common script" do all the heavy lifting.
diff --git a/Projects/AthGeneration/build_externals.sh b/Projects/AthGeneration/build_externals.sh
index 44cca6dd87fef0222ecdcc8da05e240661623a04..d57f734f913d04804e53fbedea515948f430cf48 100755
--- a/Projects/AthGeneration/build_externals.sh
+++ b/Projects/AthGeneration/build_externals.sh
@@ -11,7 +11,7 @@ ATLAS_EXT_PROJECT_NAME="AthGenerationExternals"
 ATLAS_BUILDTYPE="RelWithDebInfo"
 ATLAS_EXTRA_CMAKE_ARGS=(-DLCG_VERSION_NUMBER=104
                         -DLCG_VERSION_POSTFIX="d_ATLAS_15"
-                        -DATLAS_GAUDI_SOURCE="URL;https://gitlab.cern.ch/atlas/Gaudi/-/archive/v38r0.001/Gaudi-v38r0.001.tar.gz;URL_MD5;36f071bb81c0a85331c047107f829537"
+                        -DATLAS_GAUDI_SOURCE="URL;https://gitlab.cern.ch/atlas/Gaudi/-/archive/v38r0.002/Gaudi-v38r0.002.tar.gz;URL_MD5;0a845aa8b67b4fd390242300ddd211ba"
                         -DATLAS_GEOMODEL_SOURCE="URL;https://gitlab.cern.ch/GeoModelDev/GeoModel/-/archive/5.4.0/GeoModel-5.4.0.tar.bz2;URL_MD5;c06fe74de34e6f89e527d83b366f7e03"
 			-DATLAS_GEOMODEL_PATCH=""
 			-DATLAS_GEOMODEL_FORCEDOWNLOAD_MESSAGE="Forcing_the_re-download_of_GeoModel_(2024.01.27.)")
diff --git a/Projects/AthSimulation/build_externals.sh b/Projects/AthSimulation/build_externals.sh
index 0ecfb7053c1822d015b68c175a47e2bc41ee16a3..b7f1c901b4a7cb01fdc2834bf58055d1bb34c597 100755
--- a/Projects/AthSimulation/build_externals.sh
+++ b/Projects/AthSimulation/build_externals.sh
@@ -11,10 +11,10 @@ ATLAS_EXT_PROJECT_NAME="AthSimulationExternals"
 ATLAS_BUILDTYPE="RelWithDebInfo"
 ATLAS_EXTRA_CMAKE_ARGS=(-DLCG_VERSION_NUMBER=104
                         -DLCG_VERSION_POSTFIX="d_ATLAS_15"
-                        -DATLAS_GAUDI_SOURCE="URL;https://gitlab.cern.ch/atlas/Gaudi/-/archive/v38r0.001/Gaudi-v38r0.001.tar.gz;URL_MD5;36f071bb81c0a85331c047107f829537"
+                        -DATLAS_GAUDI_SOURCE="URL;https://gitlab.cern.ch/atlas/Gaudi/-/archive/v38r0.002/Gaudi-v38r0.002.tar.gz;URL_MD5;0a845aa8b67b4fd390242300ddd211ba"
                         -DATLAS_GEOMODEL_SOURCE="URL;https://gitlab.cern.ch/GeoModelDev/GeoModel/-/archive/5.4.0/GeoModel-5.4.0.tar.bz2;URL_MD5;c06fe74de34e6f89e527d83b366f7e03"
-			-DATLAS_GEOMODEL_PATCH=""
-			-DATLAS_GEOMODEL_FORCEDOWNLOAD_MESSAGE="Forcing_the_re-download_of_GeoModel_(2024.01.27.)"
+			                  -DATLAS_GEOMODEL_PATCH=""
+			                  -DATLAS_GEOMODEL_FORCEDOWNLOAD_MESSAGE="Forcing_the_re-download_of_GeoModel_(2024.01.27.)"
                         -DATLAS_GEANT4_USE_LTO=TRUE
                         -DATLAS_VECGEOM_USE_LTO=TRUE)
 ATLAS_EXTRA_MAKE_ARGS=()
diff --git a/Projects/Athena/build_externals.sh b/Projects/Athena/build_externals.sh
index e54de289be7db2e229ffe81f31efab7bfbda289b..e5464ca9e3110ce84003176e77e50351b0bbbcd7 100755
--- a/Projects/Athena/build_externals.sh
+++ b/Projects/Athena/build_externals.sh
@@ -11,10 +11,10 @@ ATLAS_EXT_PROJECT_NAME="AthenaExternals"
 ATLAS_BUILDTYPE="RelWithDebInfo"
 ATLAS_EXTRA_CMAKE_ARGS=(-DLCG_VERSION_NUMBER=104
                         -DLCG_VERSION_POSTFIX="d_ATLAS_15"
-                        -DATLAS_GAUDI_SOURCE="URL;https://gitlab.cern.ch/atlas/Gaudi/-/archive/v38r0.001/Gaudi-v38r0.001.tar.gz;URL_MD5;36f071bb81c0a85331c047107f829537"
+                        -DATLAS_GAUDI_SOURCE="URL;https://gitlab.cern.ch/atlas/Gaudi/-/archive/v38r0.002/Gaudi-v38r0.002.tar.gz;URL_MD5;0a845aa8b67b4fd390242300ddd211ba"
                         -DATLAS_ACTS_SOURCE="URL;https://github.com/acts-project/acts/archive/refs/tags/v34.1.0.tar.gz;URL_HASH;SHA256=eed03c43ede98c0d511fb290c41689992aa5ed64193b9cf62151cfccf1cf26b3"
                         -DATLAS_GEOMODEL_SOURCE="URL;https://gitlab.cern.ch/GeoModelDev/GeoModel/-/archive/5.4.0/GeoModel-5.4.0.tar.bz2;URL_MD5;c06fe74de34e6f89e527d83b366f7e03"
-			-DATLAS_GEOMODEL_PATCH=""
+			                  -DATLAS_GEOMODEL_PATCH=""
                         -DATLAS_GEOMODEL_FORCEDOWNLOAD_MESSAGE="Forcing_the_re-download_of_GeoModel_(2024.01.27.)")
 ATLAS_EXTRA_MAKE_ARGS=()
 
diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/eFEXegAlgo.cxx b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/eFEXegAlgo.cxx
index 7daa93fc2967bef99c1b1a7e5ea3e35d1a3165b6..f8200fe94ea4654655494cb7577f18a37c72fb3e 100644
--- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/eFEXegAlgo.cxx
+++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/eFEXegAlgo.cxx
@@ -331,7 +331,7 @@ unsigned int LVL1::eFEXegAlgo::dmCorrection (unsigned int ET, unsigned int layer
           // replace s_corrections values with values from database ... only try this once
           SG::ReadCondHandle <CondAttrListCollection> dmCorrections{m_dmCorrectionsKey/*, ctx*/ };
           if (dmCorrections.isValid()) {
-              if(dmCorrections->size()==0 && Gaudi::Hive::currentContext().eventID().time_stamp()>1667602800) { // not an error for data before 2022/11/05
+              if(dmCorrections->size()==0 && Gaudi::Hive::currentContext().eventID().time_stamp()>1672527600) { // not an error for data before 2023 (will include MC21 and MC23a)
                 ATH_MSG_ERROR("No dead material corrections found in conditions database for this event in folder " << m_dmCorrectionsKey.key());
                 throw std::runtime_error("No dead material corrections found in database for this event");
               }