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"); }