Skip to content
Snippets Groups Projects
  1. Oct 24, 2023
  2. Oct 17, 2023
  3. Sep 28, 2023
  4. Sep 15, 2023
  5. Aug 28, 2023
  6. Aug 24, 2023
  7. Aug 22, 2023
  8. Aug 14, 2023
  9. Aug 10, 2023
  10. Aug 07, 2023
  11. Aug 02, 2023
    • Simone Francescato's avatar
      NSW MMTP RDOs - finalisation · 851f6606
      Simone Francescato authored and Brian Petersen's avatar Brian Petersen committed
      Memory leakage in test program fixed
      
      In test programs for decoders, a memory leakage due to the use of delete instead of delete []
      on the buffer allocated by eformat readout function has been fixed.
      851f6606
  12. Jul 27, 2023
  13. Jul 21, 2023
    • Scott Snyder's avatar
      MuonTGC_Cabling: Fix LVL1TGC SROD mapping. · f4d0dafc
      Scott Snyder authored and Tomasz Bold's avatar Tomasz Bold committed
      MuonTGC_Cabling: Fix LVL1TGC SROD mapping.
      
      SROD IDs are in the range 17 to 19.
      However, MuonTGC_CablingSvc::getSReadoutIDfromSLID can return IDs outside
      this range.  For example, with phi=15, isAside=true, and isEndcap=true,
      it returns srodID=21.
      
      I think this is due to a typo, writing NumberOfReadoutSector instead of
      NumberOfSReadoutSector.  Fixed here.
      
      This was resulting in crashes in the tests for !64380
      (in particular, running
      
      ```
      runHLT_standalone_newJO.py  --filesInput=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data22_13p6TeV.00440499.physics_EnhancedBias.merge.RAW._lb0470._SFO-11._0001.1 Trigger.triggerMenuSetup="Dev_pp_run3_v1" Trigger.doRuntimeNaviVal=True
      ```
      
      in release 23).
      
      This was cleaning up some cppcheck warnings in TrigT1GC.
      But then i was seeing a crash coming from LVL1TGCTrigger::recordRdoInner:
      
      ```
          int subDetectorId=0, rodId=0, sswId=0, sbLoc=0;
      
          bool status = m_cabling->getSReadoutIDfromSLID(phi, isAside, isEndcap,
                                                         subDetectorId, rodId, sswId, sbLoc);
          if (!status) { ... }
      
          //  secID for TGCRawData
          //  0-3(EC), 0-1(FWD) for 1/12 sector
          //  0-15(EC), 0-7(FWD) for 1/3 sector covered by SROD in RUn3
          int startEndcapSector, coverageOfEndcapSector;
          int startForwardSector, coverageOfForwardSector;
          m_cabling->getCoveragefromSRodID(rodId,
                                           startEndcapSector,
                                           coverageOfEndcapSector,
                                           startForwardSector,
                                           coverageOfForwardSector
                                           ) ;
      
          int secId = 0;
          if (isEndcap){
            secId = sectorId % coverageOfEndcapSector;
      ```
      
      For the phi mentioned above, we were getting rodId=21.
      In that case, getCoveragefromSRodID returns false and does not
      store anything in the output variables.  So in particular,
      coverageOfEndcapSector is then uninitialized.  Without the changes
      in !64380, it is garbage, but just happens to always be nonzero.
      But with the change, the value of the uninitialized coverageOfEndcapSector
      happens to be zero, which results in a trap when it is used with
      the modulus operator.
      
      The return value of getCoveragefromSRodID really ought to be checked.
      
      Further, i'll note in passing that LVL1TGCTrigger::recordRdoInner
      starts by requiring isEndcap==true, but then has tests on isEndcap
      further down.  This is the sort of thing that some of the static
      checkers warns about.
      f4d0dafc
  14. Jul 20, 2023
  15. Jul 19, 2023
  16. Jul 18, 2023
  17. Jul 17, 2023
  18. Jul 16, 2023
  19. Jul 14, 2023
  20. Jul 13, 2023
  21. Jul 11, 2023
  22. Jul 10, 2023
  23. Jul 08, 2023
  24. Jul 07, 2023
  25. Jul 06, 2023
Loading