From 696b8d27d4da404c02516c050ceaa3d71428e61e Mon Sep 17 00:00:00 2001 From: John Derek Chapman <chapman@hep.phy.cam.ac.uk> Date: Mon, 18 Mar 2024 12:15:09 +0100 Subject: [PATCH] MuonSimEventTPCnv and MuonSimEventAthenaPool: Add new persistent classes based on HepMcParticleLink_p3 MuonSimEventTPCnv and MuonSimEventAthenaPool: Add new persistent classes based on HepMcParticleLink_p3 --- .../src/CSCSimHitCollectionCnv.cxx | 23 ++-- .../src/CSCSimHitCollectionCnv.h | 14 +- .../src/GenericMuonSimHitCollectionCnv.cxx | 11 +- .../src/GenericMuonSimHitCollectionCnv.h | 16 ++- .../src/MDTSimHitCollectionCnv.cxx | 14 +- .../src/MDTSimHitCollectionCnv.h | 16 ++- .../src/MMSimHitCollectionCnv.cxx | 11 +- .../src/MMSimHitCollectionCnv.h | 16 ++- .../src/RPCSimHitCollectionCnv.cxx | 21 +-- .../src/RPCSimHitCollectionCnv.h | 16 ++- .../src/TGCSimHitCollectionCnv.cxx | 21 ++- .../src/TGCSimHitCollectionCnv.h | 16 ++- .../src/sTGCSimHitCollectionCnv.cxx | 12 +- .../src/sTGCSimHitCollectionCnv.h | 16 ++- .../MuonCnv/MuonSimEventTPCnv/CMakeLists.txt | 84 +++++++++--- .../CSCSimHitCollectionCnv_p4.h | 32 +++++ .../CSCSimHitCollection_p4.h | 27 ++++ .../GenericMuonSimHitCollectionCnv_p3.h | 31 +++++ .../GenericMuonSimHitCollection_p3.h | 34 +++++ .../MDTSimHitCollectionCnv_p4.h | 28 ++++ .../MDTSimHitCollection_p4.h | 29 +++++ .../MMSimHitCollectionCnv_p3.h | 28 ++++ .../MuonSimEventTPCnv/MMSimHitCollection_p3.h | 28 ++++ .../MuonSimEventTPCnv/MuonSimEventTPCnvDict.h | 9 +- .../RPCSimHitCollectionCnv_p4.h | 31 +++++ .../RPCSimHitCollection_p4.h | 27 ++++ .../TGCSimHitCollectionCnv_p5.h | 28 ++++ .../TGCSimHitCollection_p5.h | 27 ++++ .../sTGCSimHitCollectionCnv_p4.h | 28 ++++ .../sTGCSimHitCollection_p4.h | 26 ++++ .../MuonSimEventTPCnv/selection.xml | 15 ++- .../share/CSCSimHitCollectionCnv_p4_test.ref | 8 ++ ...GenericMuonSimHitCollectionCnv_p3_test.ref | 8 ++ .../share/MDTSimHitCollectionCnv_p4_test.ref | 8 ++ .../share/MMSimHitCollectionCnv_p3_test.ref | 8 ++ .../share/RPCSimHitCollectionCnv_p4_test.ref | 8 ++ .../share/TGCSimHitCollectionCnv_p5_test.ref | 8 ++ .../share/sTGCSimHitCollectionCnv_p4_test.ref | 8 ++ .../src/CSCSimHitCollectionCnv_p4.cxx | 83 ++++++++++++ .../src/GenericMuonSimHitCollectionCnv_p3.cxx | 118 +++++++++++++++++ .../src/MDTSimHitCollectionCnv_p4.cxx | 84 ++++++++++++ .../src/MMSimHitCollectionCnv_p3.cxx | 85 +++++++++++++ .../src/RPCSimHitCollectionCnv_p4.cxx | 88 +++++++++++++ .../src/TGCSimHitCollectionCnv_p5.cxx | 87 +++++++++++++ .../src/sTGCSimHitCollectionCnv_p4.cxx | 96 ++++++++++++++ .../test/CSCSimHitCollectionCnv_p1_test.cxx | 8 +- .../test/CSCSimHitCollectionCnv_p2_test.cxx | 8 +- .../test/CSCSimHitCollectionCnv_p3_test.cxx | 8 +- .../test/CSCSimHitCollectionCnv_p4_test.cxx | 120 ++++++++++++++++++ ...GenericMuonSimHitCollectionCnv_p1_test.cxx | 8 +- ...GenericMuonSimHitCollectionCnv_p2_test.cxx | 8 +- ...GenericMuonSimHitCollectionCnv_p3_test.cxx | 120 ++++++++++++++++++ .../test/MDTSimHitCollectionCnv_p1_test.cxx | 8 +- .../test/MDTSimHitCollectionCnv_p2_test.cxx | 8 +- .../test/MDTSimHitCollectionCnv_p3_test.cxx | 8 +- .../test/MDTSimHitCollectionCnv_p4_test.cxx | 112 ++++++++++++++++ .../test/MMSimHitCollectionCnv_p1_test.cxx | 8 +- .../test/MMSimHitCollectionCnv_p2_test.cxx | 8 +- .../test/MMSimHitCollectionCnv_p3_test.cxx | 103 +++++++++++++++ .../test/RPCSimHitCollectionCnv_p1_test.cxx | 8 +- .../test/RPCSimHitCollectionCnv_p2_test.cxx | 8 +- .../test/RPCSimHitCollectionCnv_p3_test.cxx | 8 +- .../test/RPCSimHitCollectionCnv_p4_test.cxx | 113 +++++++++++++++++ .../test/TGCSimHitCollectionCnv_p1_test.cxx | 8 +- .../test/TGCSimHitCollectionCnv_p2_test.cxx | 8 +- .../test/TGCSimHitCollectionCnv_p3_test.cxx | 8 +- .../test/TGCSimHitCollectionCnv_p4_test.cxx | 8 +- .../test/TGCSimHitCollectionCnv_p5_test.cxx | 112 ++++++++++++++++ .../test/sTGCSimHitCollectionCnv_p1_test.cxx | 8 +- .../test/sTGCSimHitCollectionCnv_p2_test.cxx | 8 +- .../test/sTGCSimHitCollectionCnv_p3_test.cxx | 8 +- .../test/sTGCSimHitCollectionCnv_p4_test.cxx | 109 ++++++++++++++++ 72 files changed, 2212 insertions(+), 169 deletions(-) create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/CSCSimHitCollectionCnv_p4.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/CSCSimHitCollection_p4.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/GenericMuonSimHitCollectionCnv_p3.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/GenericMuonSimHitCollection_p3.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MDTSimHitCollectionCnv_p4.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MDTSimHitCollection_p4.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MMSimHitCollectionCnv_p3.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MMSimHitCollection_p3.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/RPCSimHitCollectionCnv_p4.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/RPCSimHitCollection_p4.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/TGCSimHitCollectionCnv_p5.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/TGCSimHitCollection_p5.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/sTGCSimHitCollectionCnv_p4.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/sTGCSimHitCollection_p4.h create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/CSCSimHitCollectionCnv_p4_test.ref create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/GenericMuonSimHitCollectionCnv_p3_test.ref create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/MDTSimHitCollectionCnv_p4_test.ref create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/MMSimHitCollectionCnv_p3_test.ref create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/RPCSimHitCollectionCnv_p4_test.ref create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/TGCSimHitCollectionCnv_p5_test.ref create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/sTGCSimHitCollectionCnv_p4_test.ref create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/CSCSimHitCollectionCnv_p4.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/GenericMuonSimHitCollectionCnv_p3.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/MDTSimHitCollectionCnv_p4.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/MMSimHitCollectionCnv_p3.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/RPCSimHitCollectionCnv_p4.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/TGCSimHitCollectionCnv_p5.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/sTGCSimHitCollectionCnv_p4.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p4_test.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p3_test.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p4_test.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p3_test.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p4_test.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p5_test.cxx create mode 100644 MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p4_test.cxx diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/CSCSimHitCollectionCnv.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/CSCSimHitCollectionCnv.cxx index 52e4146acc44..06eb83b8eac5 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/CSCSimHitCollectionCnv.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/CSCSimHitCollectionCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #include "CSCSimHitCollectionCnv.h" @@ -15,6 +15,7 @@ #include "MuonSimEventTPCnv/CSCSimHitCollection_p1.h" #include "MuonSimEventTPCnv/CSCSimHitCollection_p2.h" #include "MuonSimEventTPCnv/CSCSimHitCollection_p3.h" +#include "MuonSimEventTPCnv/CSCSimHitCollection_p4.h" #include "HitManagement/AthenaHitsVector.h" //for back-compatibility @@ -35,29 +36,29 @@ CSCSimHitCollection_PERS* CSCSimHitCollectionCnv::createPersistent (CSCSimHit CSCSimHitCollection* CSCSimHitCollectionCnv::createTransient() { MsgStream log(msgSvc(), "CSCSimHitCollectionCnv" ); static const pool::Guid p0_guid("DC744F9B-078A-4C61-B03F-D035D885B559"); // before t/p split - static const pool::Guid p1_guid("E45CD293-4599-41BE-8B65-945A18F41AB7"); + static const pool::Guid p1_guid("E45CD293-4599-41BE-8B65-945A18F41AB7"); static const pool::Guid p2_guid("7E5A120C-E64F-4519-A24B-B485A58724BF"); static const pool::Guid p3_guid("6BFFE81C-C99E-43D9-B06F-1A998C3B3E40"); + static const pool::Guid p4_guid("018E2DAC-18EB-71D2-A246-66F818B3681B"); if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): main converter"<<endmsg; CSCSimHitCollection* p_collection(nullptr); - if( compareClassGuid(p3_guid) ) { + if( compareClassGuid(p4_guid) ) { + if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): T/P version 4 detected"<<endmsg; + std::unique_ptr< Muon::CSCSimHitCollection_p4 > col_vect( this->poolReadObject< Muon::CSCSimHitCollection_p4 >() ); + p_collection = m_TPConverter_p4.createTransient( col_vect.get(), log ); + } + else if( compareClassGuid(p3_guid) ) { if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): T/P version 3 detected"<<endmsg; - // poolReadObject< CSCSimHitCollection_PERS >( m_TPConverter ); - // p_collection = m_TPConverter.createTransient( log ); std::unique_ptr< Muon::CSCSimHitCollection_p3 > col_vect( this->poolReadObject< Muon::CSCSimHitCollection_p3 >() ); p_collection = m_TPConverter_p3.createTransient( col_vect.get(), log ); } else if( compareClassGuid(p2_guid) ) { if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): T/P version 2 detected"<<endmsg; - // poolReadObject< CSCSimHitCollection_PERS >( m_TPConverter ); - // p_collection = m_TPConverter.createTransient( log ); std::unique_ptr< Muon::CSCSimHitCollection_p2 > col_vect( this->poolReadObject< Muon::CSCSimHitCollection_p2 >() ); p_collection = m_TPConverter_p2.createTransient( col_vect.get(), log ); } else if( compareClassGuid(p1_guid) ) { if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): T/P version 1 detected"<<endmsg; - // poolReadObject< CSCSimHitCollection_PERS >( m_TPConverter ); - // p_collection = m_TPConverter.createTransient( log ); std::unique_ptr< Muon::CSCSimHitCollection_p1 > col_vect( this->poolReadObject< Muon::CSCSimHitCollection_p1 >() ); p_collection = m_TPConverter.createTransient( col_vect.get(), log ); } @@ -68,9 +69,9 @@ CSCSimHitCollection* CSCSimHitCollectionCnv::createTransient() { size_t size = oldColl->size(); p_collection=new CSCSimHitCollection("DefaultCollectionName",size); p_collection->reserve(size); - //do the copy + //do the copy for (const CSCSimHit* hit : *oldColl) { - p_collection->push_back(*hit); + p_collection->push_back(*hit); } delete oldColl; } diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/CSCSimHitCollectionCnv.h b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/CSCSimHitCollectionCnv.h index f0c2ade2268f..b1d0f638e201 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/CSCSimHitCollectionCnv.h +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/CSCSimHitCollectionCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONSIMEVENTATHENAPOOL_CSCSIMHITCOLLECTIONCNV_H @@ -11,6 +11,7 @@ #include "MuonSimEventTPCnv/CSCSimHitCollectionCnv_p1.h" #include "MuonSimEventTPCnv/CSCSimHitCollectionCnv_p2.h" #include "MuonSimEventTPCnv/CSCSimHitCollectionCnv_p3.h" +#include "MuonSimEventTPCnv/CSCSimHitCollectionCnv_p4.h" // the latest persistent representation type of DataCollection: typedef Muon::CSCSimHitCollection_p3 CSCSimHitCollection_PERS; @@ -20,16 +21,16 @@ typedef T_AthenaPoolCustomCnv<CSCSimHitCollection, CSCSimHitCollection_PERS > ** Create derived converter to customize the saving of identifiable ** container **/ -class CSCSimHitCollectionCnv : - public CSCSimHitCollectionCnvBase +class CSCSimHitCollectionCnv : + public CSCSimHitCollectionCnvBase { - + friend class CnvFactory<CSCSimHitCollectionCnv>; - + public: CSCSimHitCollectionCnv(ISvcLocator* svcloc); virtual ~CSCSimHitCollectionCnv(); - + virtual CSCSimHitCollection_PERS* createPersistent (CSCSimHitCollection* transCont); virtual CSCSimHitCollection* createTransient (); @@ -37,6 +38,7 @@ private: CSCSimHitCollectionCnv_p1 m_TPConverter; CSCSimHitCollectionCnv_p2 m_TPConverter_p2; CSCSimHitCollectionCnv_p3 m_TPConverter_p3; + CSCSimHitCollectionCnv_p4 m_TPConverter_p4; }; #endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/GenericMuonSimHitCollectionCnv.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/GenericMuonSimHitCollectionCnv.cxx index 3a687bf04575..21df70f0a778 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/GenericMuonSimHitCollectionCnv.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/GenericMuonSimHitCollectionCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #include "GenericMuonSimHitCollectionCnv.h" @@ -13,6 +13,8 @@ #include "MuonSimEvent/GenericMuonSimHitCollection.h" #include "MuonSimEventTPCnv/GenericMuonSimHitCollection_p1.h" +#include "MuonSimEventTPCnv/GenericMuonSimHitCollection_p2.h" +#include "MuonSimEventTPCnv/GenericMuonSimHitCollection_p3.h" #include "HitManagement/AthenaHitsVector.h" //for back-compatibility @@ -34,9 +36,14 @@ GenericMuonSimHitCollection* GenericMuonSimHitCollectionCnv::createTransient() { MsgStream log(msgSvc(), "GenericMuonSimHitCollectionCnv" ); static const pool::Guid p1_guid("C2D5D558-2671-11E1-AAFA-001E4F3E5646"); static const pool::Guid p2_guid("3760C0D8-C7EA-42C7-925A-E841196F2138"); + static const pool::Guid p3_guid("018E2DAC-18EB-7635-A068-B08EFB5CD64A"); ATH_MSG_DEBUG("createTransient(): main converter"); GenericMuonSimHitCollection* p_collection(nullptr); - if( compareClassGuid(p2_guid) ) { + if( compareClassGuid(p3_guid) ) { + ATH_MSG_DEBUG("createTransient(): T/P version 3 detected"); + std::unique_ptr< Muon::GenericMuonSimHitCollection_p3 > col_vect( this->poolReadObject< Muon::GenericMuonSimHitCollection_p3 >() ); + p_collection = m_TPConverter_p3.createTransient( col_vect.get(), log ); + } else if( compareClassGuid(p2_guid) ) { ATH_MSG_DEBUG("createTransient(): T/P version 2 detected"); std::unique_ptr< Muon::GenericMuonSimHitCollection_p2 > col_vect( this->poolReadObject< Muon::GenericMuonSimHitCollection_p2 >() ); p_collection = m_TPConverter_p2.createTransient( col_vect.get(), log ); diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/GenericMuonSimHitCollectionCnv.h b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/GenericMuonSimHitCollectionCnv.h index d6bf07b975b5..f15eca4e06ae 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/GenericMuonSimHitCollectionCnv.h +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/GenericMuonSimHitCollectionCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONSIMEVENTATHENAPOOL_GENERICMUONSIMHITCOLLECTIONCNV_H @@ -10,6 +10,7 @@ #include "MuonSimEventTPCnv/GenericMuonSimHitCollectionCnv_p1.h" #include "MuonSimEventTPCnv/GenericMuonSimHitCollectionCnv_p2.h" +#include "MuonSimEventTPCnv/GenericMuonSimHitCollectionCnv_p3.h" // the latest persistent representation type of DataCollection: typedef Muon::GenericMuonSimHitCollection_p2 GenericMuonSimHitCollection_PERS; @@ -19,22 +20,23 @@ typedef T_AthenaPoolCustomCnv<GenericMuonSimHitCollection, GenericMuonSimHitCol ** Create derived converter to customize the saving of identifiable ** container **/ -class GenericMuonSimHitCollectionCnv : - public GenericMuonSimHitCollectionCnvBase +class GenericMuonSimHitCollectionCnv : + public GenericMuonSimHitCollectionCnvBase { - + friend class CnvFactory<GenericMuonSimHitCollectionCnv>; - + public: GenericMuonSimHitCollectionCnv(ISvcLocator* svcloc); virtual ~GenericMuonSimHitCollectionCnv(); - + virtual GenericMuonSimHitCollection_PERS* createPersistent (GenericMuonSimHitCollection* transCont); virtual GenericMuonSimHitCollection* createTransient (); - + private: GenericMuonSimHitCollectionCnv_p1 m_TPConverter_p1; GenericMuonSimHitCollectionCnv_p2 m_TPConverter_p2; + GenericMuonSimHitCollectionCnv_p3 m_TPConverter_p3; }; #endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MDTSimHitCollectionCnv.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MDTSimHitCollectionCnv.cxx index 2c473d0864fe..879bb79bfa2b 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MDTSimHitCollectionCnv.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MDTSimHitCollectionCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #include "MDTSimHitCollectionCnv.h" @@ -13,6 +13,9 @@ #include "MuonSimEvent/MDTSimHitCollection.h" #include "MuonSimEventTPCnv/MDTSimHitCollection_p1.h" +#include "MuonSimEventTPCnv/MDTSimHitCollection_p2.h" +#include "MuonSimEventTPCnv/MDTSimHitCollection_p3.h" +#include "MuonSimEventTPCnv/MDTSimHitCollection_p4.h" #include "HitManagement/AthenaHitsVector.h" //for back-compatibility @@ -33,12 +36,17 @@ MDTSimHitCollection_PERS* MDTSimHitCollectionCnv::createPersistent (MDTSimHit MDTSimHitCollection* MDTSimHitCollectionCnv::createTransient() { MsgStream log(msgSvc(), "MDTSimHitCollectionCnv" ); static const pool::Guid p0_guid("D76D06CC-C15F-43E6-BBC3-480DE5DA065D"); // before t/p split - static const pool::Guid p1_guid("EA781971-65C5-4B30-9D22-EEFB764BA0B3"); + static const pool::Guid p1_guid("EA781971-65C5-4B30-9D22-EEFB764BA0B3"); static const pool::Guid p2_guid("92880B97-75BB-4C5D-8183-577338059FCC"); static const pool::Guid p3_guid("0E9EEEE2-304F-44B8-B1DF-E75297183A02"); + static const pool::Guid p4_guid("018E2DAC-18EB-7BBC-92AF-EFE3F0E400C2"); ATH_MSG_DEBUG("createTransient(): main converter"); MDTSimHitCollection* p_collection(nullptr); - if( compareClassGuid(p3_guid) ) { + if( compareClassGuid(p4_guid) ) { + ATH_MSG_DEBUG("createTransient(): T/P version 4 detected"); + std::unique_ptr< Muon::MDTSimHitCollection_p4 > col_vect( this->poolReadObject< Muon::MDTSimHitCollection_p4 >() ); + p_collection = m_TPConverter_p4.createTransient( col_vect.get(), log ); + } else if( compareClassGuid(p3_guid) ) { ATH_MSG_DEBUG("createTransient(): T/P version 3 detected"); std::unique_ptr< Muon::MDTSimHitCollection_p3 > col_vect( this->poolReadObject< Muon::MDTSimHitCollection_p3 >() ); p_collection = m_TPConverter_p3.createTransient( col_vect.get(), log ); diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MDTSimHitCollectionCnv.h b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MDTSimHitCollectionCnv.h index 0daa28e63d35..058d92abe009 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MDTSimHitCollectionCnv.h +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MDTSimHitCollectionCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONSIMEVENTATHENAPOOL_MDTSIMHITCOLLECTIONCNV_H @@ -11,6 +11,7 @@ #include "MuonSimEventTPCnv/MDTSimHitCollectionCnv_p1.h" #include "MuonSimEventTPCnv/MDTSimHitCollectionCnv_p2.h" #include "MuonSimEventTPCnv/MDTSimHitCollectionCnv_p3.h" +#include "MuonSimEventTPCnv/MDTSimHitCollectionCnv_p4.h" // the latest persistent representation type of DataCollection: typedef Muon::MDTSimHitCollection_p3 MDTSimHitCollection_PERS; @@ -20,23 +21,24 @@ typedef T_AthenaPoolCustomCnv<MDTSimHitCollection, MDTSimHitCollection_PERS > ** Create derived converter to customize the saving of identifiable ** container **/ -class MDTSimHitCollectionCnv : - public MDTSimHitCollectionCnvBase +class MDTSimHitCollectionCnv : + public MDTSimHitCollectionCnvBase { - + friend class CnvFactory<MDTSimHitCollectionCnv>; - + public: MDTSimHitCollectionCnv(ISvcLocator* svcloc); virtual ~MDTSimHitCollectionCnv(); - + virtual MDTSimHitCollection_PERS* createPersistent (MDTSimHitCollection* transCont); virtual MDTSimHitCollection* createTransient (); - + private: MDTSimHitCollectionCnv_p1 m_TPConverter_p1; MDTSimHitCollectionCnv_p2 m_TPConverter_p2; MDTSimHitCollectionCnv_p3 m_TPConverter_p3; + MDTSimHitCollectionCnv_p4 m_TPConverter_p4; }; #endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MMSimHitCollectionCnv.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MMSimHitCollectionCnv.cxx index c164f50ab2d9..3420e914d461 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MMSimHitCollectionCnv.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MMSimHitCollectionCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #include "MMSimHitCollectionCnv.h" @@ -13,6 +13,8 @@ #include "MuonSimEvent/MMSimHitCollection.h" #include "MuonSimEventTPCnv/MMSimHitCollection_p1.h" +#include "MuonSimEventTPCnv/MMSimHitCollection_p2.h" +#include "MuonSimEventTPCnv/MMSimHitCollection_p3.h" #include "HitManagement/AthenaHitsVector.h" //for back-compatibility @@ -34,9 +36,14 @@ MMSimHitCollection* MMSimHitCollectionCnv::createTransient() { MsgStream log(msgSvc(), "MMSimHitCollectionCnv" ); static const pool::Guid p1_guid("ac0b677c-fe08-11e8-b174-02163e018187"); static const pool::Guid p2_guid("b9bdd436-fe08-11e8-a40f-02163e018187"); + static const pool::Guid p3_guid("018E2DAC-18EB-7EAA-A141-F0FD2A6E1E06"); ATH_MSG_DEBUG("createTransient(): main converter"); MMSimHitCollection* p_collection(nullptr); - if( compareClassGuid(p2_guid) ) { + if( compareClassGuid(p3_guid) ) { + ATH_MSG_DEBUG("createTransient(): T/P version 3 detected"); + std::unique_ptr< Muon::MMSimHitCollection_p3 > col_vect( this->poolReadObject< Muon::MMSimHitCollection_p3 >() ); + p_collection = m_TPConverter_p3.createTransient( col_vect.get(), log ); + } else if( compareClassGuid(p2_guid) ) { ATH_MSG_DEBUG("createTransient(): T/P version 2 detected"); std::unique_ptr< Muon::MMSimHitCollection_p2 > col_vect( this->poolReadObject< Muon::MMSimHitCollection_p2 >() ); p_collection = m_TPConverter_p2.createTransient( col_vect.get(), log ); diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MMSimHitCollectionCnv.h b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MMSimHitCollectionCnv.h index 8b70b55ab10b..9fa773fd2660 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MMSimHitCollectionCnv.h +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/MMSimHitCollectionCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONSIMEVENTATHENAPOOL_MMSIMHITCOLLECTIONCNV_H @@ -10,6 +10,7 @@ #include "MuonSimEventTPCnv/MMSimHitCollectionCnv_p1.h" #include "MuonSimEventTPCnv/MMSimHitCollectionCnv_p2.h" +#include "MuonSimEventTPCnv/MMSimHitCollectionCnv_p3.h" // the latest persistent representation type of DataCollection: typedef Muon::MMSimHitCollection_p2 MMSimHitCollection_PERS; @@ -19,22 +20,23 @@ typedef T_AthenaPoolCustomCnv<MMSimHitCollection, MMSimHitCollection_PERS > MM ** Create derived converter to customize the saving of identifiable ** container **/ -class MMSimHitCollectionCnv : - public MMSimHitCollectionCnvBase +class MMSimHitCollectionCnv : + public MMSimHitCollectionCnvBase { - + friend class CnvFactory<MMSimHitCollectionCnv>; - + public: MMSimHitCollectionCnv(ISvcLocator* svcloc); virtual ~MMSimHitCollectionCnv(); - + virtual MMSimHitCollection_PERS* createPersistent (MMSimHitCollection* transCont); virtual MMSimHitCollection* createTransient (); - + private: MMSimHitCollectionCnv_p1 m_TPConverter_p1; MMSimHitCollectionCnv_p2 m_TPConverter_p2; + MMSimHitCollectionCnv_p3 m_TPConverter_p3; }; #endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/RPCSimHitCollectionCnv.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/RPCSimHitCollectionCnv.cxx index c8aa1376dd45..0c98ee2a4267 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/RPCSimHitCollectionCnv.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/RPCSimHitCollectionCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #include "RPCSimHitCollectionCnv.h" @@ -15,6 +15,7 @@ #include "MuonSimEventTPCnv/RPCSimHitCollection_p1.h" #include "MuonSimEventTPCnv/RPCSimHitCollection_p2.h" #include "MuonSimEventTPCnv/RPCSimHitCollection_p3.h" +#include "MuonSimEventTPCnv/RPCSimHitCollection_p4.h" #include "HitManagement/AthenaHitsVector.h" //for back-compatibility @@ -35,29 +36,29 @@ RPCSimHitCollection_PERS* RPCSimHitCollectionCnv::createPersistent (RPCSimHit RPCSimHitCollection* RPCSimHitCollectionCnv::createTransient() { MsgStream log(msgSvc(), "RPCSimHitCollectionCnv" ); static const pool::Guid p0_guid("45EB013E-FC8E-4612-88B7-6E0CAF718F79"); // before t/p split - static const pool::Guid p1_guid("C4C57487-41DC-4706-9604-721D76F0AA52"); + static const pool::Guid p1_guid("C4C57487-41DC-4706-9604-721D76F0AA52"); static const pool::Guid p2_guid("1B611C70-CC6F-42AE-9F6D-7DA6A9A22546"); static const pool::Guid p3_guid("B48E5E17-FB26-4BC0-A0E2-5324925EAE2F"); + static const pool::Guid p4_guid("018E2DAC-18EB-714B-B9BD-F9354E30CB51"); if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): main converter"<<endmsg; RPCSimHitCollection* p_collection(nullptr); - if( compareClassGuid(p3_guid) ) { + if( compareClassGuid(p4_guid) ) { + if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): T/P version 4 detected"<<endmsg; + std::unique_ptr< Muon::RPCSimHitCollection_p4 > col_vect( this->poolReadObject< Muon::RPCSimHitCollection_p4 >() ); + p_collection = m_TPConverter_p4.createTransient( col_vect.get(), log ); + } + else if( compareClassGuid(p3_guid) ) { if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): T/P version 3 detected"<<endmsg; - // poolReadObject< RPCSimHitCollection_PERS >( m_TPConverter ); - // p_collection = m_TPConverter.createTransient( log ); std::unique_ptr< Muon::RPCSimHitCollection_p3 > col_vect( this->poolReadObject< Muon::RPCSimHitCollection_p3 >() ); p_collection = m_TPConverter_p3.createTransient( col_vect.get(), log ); } else if( compareClassGuid(p2_guid) ) { if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): T/P version 2 detected"<<endmsg; - // poolReadObject< RPCSimHitCollection_PERS >( m_TPConverter ); - // p_collection = m_TPConverter.createTransient( log ); std::unique_ptr< Muon::RPCSimHitCollection_p2 > col_vect( this->poolReadObject< Muon::RPCSimHitCollection_p2 >() ); p_collection = m_TPConverter_p2.createTransient( col_vect.get(), log ); } else if( compareClassGuid(p1_guid) ) { if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): T/P version 1 detected"<<endmsg; - // poolReadObject< RPCSimHitCollection_PERS >( m_TPConverter ); - // p_collection = m_TPConverter.createTransient( log ); std::unique_ptr< Muon::RPCSimHitCollection_p1 > col_vect( this->poolReadObject< Muon::RPCSimHitCollection_p1 >() ); p_collection = m_TPConverter.createTransient( col_vect.get(), log ); } @@ -70,7 +71,7 @@ RPCSimHitCollection* RPCSimHitCollectionCnv::createTransient() { p_collection->reserve(size); //do the copy for (const RPCSimHit* hit : *oldColl) { - p_collection->push_back(*hit); + p_collection->push_back(*hit); } delete oldColl; } diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/RPCSimHitCollectionCnv.h b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/RPCSimHitCollectionCnv.h index 8446237fdeee..af061375ed74 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/RPCSimHitCollectionCnv.h +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/RPCSimHitCollectionCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONSIMEVENTATHENAPOOL_RPCSIMHITCOLLECTIONCNV_H @@ -11,6 +11,7 @@ #include "MuonSimEventTPCnv/RPCSimHitCollectionCnv_p1.h" #include "MuonSimEventTPCnv/RPCSimHitCollectionCnv_p2.h" #include "MuonSimEventTPCnv/RPCSimHitCollectionCnv_p3.h" +#include "MuonSimEventTPCnv/RPCSimHitCollectionCnv_p4.h" // the latest persistent representation type of DataCollection: @@ -21,23 +22,24 @@ typedef T_AthenaPoolCustomCnv<RPCSimHitCollection, RPCSimHitCollection_PERS > ** Create derived converter to customize the saving of identifiable ** container **/ -class RPCSimHitCollectionCnv : - public RPCSimHitCollectionCnvBase +class RPCSimHitCollectionCnv : + public RPCSimHitCollectionCnvBase { - + friend class CnvFactory<RPCSimHitCollectionCnv>; - + public: RPCSimHitCollectionCnv(ISvcLocator* svcloc); virtual ~RPCSimHitCollectionCnv(); - + virtual RPCSimHitCollection_PERS* createPersistent (RPCSimHitCollection* transCont); virtual RPCSimHitCollection* createTransient (); - + private: RPCSimHitCollectionCnv_p1 m_TPConverter; RPCSimHitCollectionCnv_p2 m_TPConverter_p2; RPCSimHitCollectionCnv_p3 m_TPConverter_p3; + RPCSimHitCollectionCnv_p4 m_TPConverter_p4; }; #endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/TGCSimHitCollectionCnv.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/TGCSimHitCollectionCnv.cxx index 4a459d3e85ee..f0c5c2237069 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/TGCSimHitCollectionCnv.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/TGCSimHitCollectionCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #include "TGCSimHitCollectionCnv.h" @@ -13,6 +13,10 @@ #include "MuonSimEvent/TGCSimHitCollection.h" #include "MuonSimEventTPCnv/TGCSimHitCollection_p1.h" +#include "MuonSimEventTPCnv/TGCSimHitCollection_p2.h" +#include "MuonSimEventTPCnv/TGCSimHitCollection_p3.h" +#include "MuonSimEventTPCnv/TGCSimHitCollection_p4.h" +#include "MuonSimEventTPCnv/TGCSimHitCollection_p5.h" #include "HitManagement/AthenaHitsVector.h" //for back-compatibility @@ -33,13 +37,20 @@ TGCSimHitCollection_PERS* TGCSimHitCollectionCnv::createPersistent (TGCSimHit TGCSimHitCollection* TGCSimHitCollectionCnv::createTransient() { MsgStream log(msgSvc(), "TGCSimHitCollectionCnv" ); static const pool::Guid p0_guid("D7C91818-4730-4717-A650-107F52C0221E"); // before t/p split - static const pool::Guid p1_guid("BD569381-2489-4402-BBD3-91EE8C009F26"); - static const pool::Guid p2_guid("710241EE-D5F7-4CB6-A1D7-6E80D040E637"); + static const pool::Guid p1_guid("BD569381-2489-4402-BBD3-91EE8C009F26"); + static const pool::Guid p2_guid("710241EE-D5F7-4CB6-A1D7-6E80D040E637"); static const pool::Guid p3_guid("BACD19A8-4737-4857-A22D-B9DF833A0A80"); static const pool::Guid p4_guid("F8F77562-BBD9-45DB-A276-6A21018EA7FA"); + static const pool::Guid p5_guid("018E2DAC-18EB-7E5B-9F18-CC2E36343F17"); log<<MSG::DEBUG<<"createTransient(): main converter"<<endmsg; TGCSimHitCollection* p_collection(nullptr); - if(compareClassGuid(p4_guid) ) { + if(compareClassGuid(p5_guid) ) { + log<<MSG::DEBUG<<"createTransient(): T/P version 5 detected"<<endmsg; + std::unique_ptr< Muon::TGCSimHitCollection_p5 > col_vect( this->poolReadObject< Muon::TGCSimHitCollection_p5 >() ); + p_collection = m_TPConverter_p5.createTransient( col_vect.get(), log ); + } + //---------------------------------------------------------------- + else if(compareClassGuid(p4_guid) ) { log<<MSG::DEBUG<<"createTransient(): T/P version 4 detected"<<endmsg; std::unique_ptr< Muon::TGCSimHitCollection_p4 > col_vect( this->poolReadObject< Muon::TGCSimHitCollection_p4 >() ); p_collection = m_TPConverter_p4.createTransient( col_vect.get(), log ); @@ -71,7 +82,7 @@ TGCSimHitCollection* TGCSimHitCollectionCnv::createTransient() { p_collection->reserve(size); //do the copy for (const TGCSimHit* hit : *oldColl) { - p_collection->push_back(*hit); + p_collection->push_back(*hit); } delete oldColl; } diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/TGCSimHitCollectionCnv.h b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/TGCSimHitCollectionCnv.h index 47c015a689c0..3df8ce9fdbf4 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/TGCSimHitCollectionCnv.h +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/TGCSimHitCollectionCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONSIMEVENTATHENAPOOL_TGCSIMHITCOLLECTIONCNV_H @@ -12,6 +12,7 @@ #include "MuonSimEventTPCnv/TGCSimHitCollectionCnv_p2.h" #include "MuonSimEventTPCnv/TGCSimHitCollectionCnv_p3.h" #include "MuonSimEventTPCnv/TGCSimHitCollectionCnv_p4.h" +#include "MuonSimEventTPCnv/TGCSimHitCollectionCnv_p5.h" // the latest persistent representation type of DataCollection: typedef Muon::TGCSimHitCollection_p4 TGCSimHitCollection_PERS; @@ -21,24 +22,25 @@ typedef T_AthenaPoolCustomCnv<TGCSimHitCollection, TGCSimHitCollection_PERS > ** Create derived converter to customize the saving of identifiable ** container **/ -class TGCSimHitCollectionCnv : - public TGCSimHitCollectionCnvBase +class TGCSimHitCollectionCnv : + public TGCSimHitCollectionCnvBase { - + friend class CnvFactory<TGCSimHitCollectionCnv>; - + public: TGCSimHitCollectionCnv(ISvcLocator* svcloc); virtual ~TGCSimHitCollectionCnv(); - + virtual TGCSimHitCollection_PERS* createPersistent (TGCSimHitCollection* transCont); virtual TGCSimHitCollection* createTransient (); - + private: TGCSimHitCollectionCnv_p1 m_TPConverter_p1; TGCSimHitCollectionCnv_p2 m_TPConverter_p2; TGCSimHitCollectionCnv_p3 m_TPConverter_p3; TGCSimHitCollectionCnv_p4 m_TPConverter_p4; + TGCSimHitCollectionCnv_p5 m_TPConverter_p5; }; #endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/sTGCSimHitCollectionCnv.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/sTGCSimHitCollectionCnv.cxx index 5931e042519e..948b4ba0a366 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/sTGCSimHitCollectionCnv.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/sTGCSimHitCollectionCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #include "sTGCSimHitCollectionCnv.h" @@ -12,7 +12,10 @@ #include "StoreGate/StoreGateSvc.h" #include "MuonSimEvent/sTGCSimHitCollection.h" +#include "MuonSimEventTPCnv/sTGCSimHitCollection_p1.h" #include "MuonSimEventTPCnv/sTGCSimHitCollection_p2.h" +#include "MuonSimEventTPCnv/sTGCSimHitCollection_p3.h" +#include "MuonSimEventTPCnv/sTGCSimHitCollection_p4.h" #include "HitManagement/AthenaHitsVector.h" //for back-compatibility @@ -35,10 +38,15 @@ sTGCSimHitCollection* sTGCSimHitCollectionCnv::createTransient() { static const pool::Guid p1_guid("f8b975d2-8130-11e8-abf4-4b4a6a2b6ee5"); static const pool::Guid p2_guid("b9521cc6-6e3b-11e8-adbb-02163e01bddd"); static const pool::Guid p3_guid("8f3ffd1c-c9a0-4da7-b99e-a3828b6ac789"); + static const pool::Guid p4_guid("018E2DAC-18EB-79C4-B562-FD7C035C92C1"); ATH_MSG_DEBUG("createTransient(): main converter"); sTGCSimHitCollection* p_collection(nullptr); - if( compareClassGuid(p3_guid) ) { + if( compareClassGuid(p4_guid) ) { + ATH_MSG_DEBUG("createTransient(): T/P version 4 detected"); + std::unique_ptr< Muon::sTGCSimHitCollection_p4 > col_vect( this->poolReadObject< Muon::sTGCSimHitCollection_p4 >() ); + p_collection = m_TPConverter_p4.createTransient( col_vect.get(), log ); + } else if( compareClassGuid(p3_guid) ) { ATH_MSG_DEBUG("createTransient(): T/P version 3 detected"); std::unique_ptr< Muon::sTGCSimHitCollection_p3 > col_vect( this->poolReadObject< Muon::sTGCSimHitCollection_p3 >() ); p_collection = m_TPConverter_p3.createTransient( col_vect.get(), log ); diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/sTGCSimHitCollectionCnv.h b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/sTGCSimHitCollectionCnv.h index bf67461f7e89..d6a9f0eafd49 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/sTGCSimHitCollectionCnv.h +++ b/MuonSpectrometer/MuonCnv/MuonSimEventAthenaPool/src/sTGCSimHitCollectionCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONSIMEVENTATHENAPOOL_STGCSIMHITCOLLECTIONCNV_H @@ -11,6 +11,7 @@ #include "MuonSimEventTPCnv/sTGCSimHitCollectionCnv_p1.h" #include "MuonSimEventTPCnv/sTGCSimHitCollectionCnv_p2.h" #include "MuonSimEventTPCnv/sTGCSimHitCollectionCnv_p3.h" +#include "MuonSimEventTPCnv/sTGCSimHitCollectionCnv_p4.h" // the latest persistent representation type of DataCollection: @@ -21,23 +22,24 @@ typedef T_AthenaPoolCustomCnv<sTGCSimHitCollection, sTGCSimHitCollection_PERS > ** Create derived converter to customize the saving of identifiable ** container **/ -class sTGCSimHitCollectionCnv : - public sTGCSimHitCollectionCnvBase +class sTGCSimHitCollectionCnv : + public sTGCSimHitCollectionCnvBase { - + friend class CnvFactory<sTGCSimHitCollectionCnv>; - + public: sTGCSimHitCollectionCnv(ISvcLocator* svcloc); virtual ~sTGCSimHitCollectionCnv(); - + virtual sTGCSimHitCollection_PERS* createPersistent (sTGCSimHitCollection* transCont); virtual sTGCSimHitCollection* createTransient (); - + private: sTGCSimHitCollectionCnv_p1 m_TPConverter_p1; sTGCSimHitCollectionCnv_p2 m_TPConverter_p2; sTGCSimHitCollectionCnv_p3 m_TPConverter_p3; + sTGCSimHitCollectionCnv_p4 m_TPConverter_p4; }; #endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/CMakeLists.txt b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/CMakeLists.txt index 01991ec7eeae..408e3aeb8565 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/CMakeLists.txt +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/CMakeLists.txt @@ -32,118 +32,160 @@ atlas_add_test( CSCSimHitCollectionCnv_p1_test SOURCES test/CSCSimHitCollectionCnv_p1_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( CSCSimHitCollectionCnv_p2_test SOURCES test/CSCSimHitCollectionCnv_p2_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( CSCSimHitCollectionCnv_p3_test SOURCES test/CSCSimHitCollectionCnv_p3_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) + +atlas_add_test( CSCSimHitCollectionCnv_p4_test + SOURCES + test/CSCSimHitCollectionCnv_p4_test.cxx + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( GenericMuonSimHitCollectionCnv_p1_test SOURCES test/GenericMuonSimHitCollectionCnv_p1_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( GenericMuonSimHitCollectionCnv_p2_test SOURCES test/GenericMuonSimHitCollectionCnv_p2_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) + +atlas_add_test( GenericMuonSimHitCollectionCnv_p3_test + SOURCES + test/GenericMuonSimHitCollectionCnv_p3_test.cxx + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( MDTSimHitCollectionCnv_p1_test SOURCES test/MDTSimHitCollectionCnv_p1_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( MDTSimHitCollectionCnv_p2_test SOURCES test/MDTSimHitCollectionCnv_p2_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( MDTSimHitCollectionCnv_p3_test SOURCES test/MDTSimHitCollectionCnv_p3_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) + +atlas_add_test( MDTSimHitCollectionCnv_p4_test + SOURCES + test/MDTSimHitCollectionCnv_p4_test.cxx + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( RPCSimHitCollectionCnv_p1_test SOURCES test/RPCSimHitCollectionCnv_p1_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( RPCSimHitCollectionCnv_p2_test SOURCES test/RPCSimHitCollectionCnv_p2_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( RPCSimHitCollectionCnv_p3_test SOURCES test/RPCSimHitCollectionCnv_p3_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) + +atlas_add_test( RPCSimHitCollectionCnv_p4_test + SOURCES + test/RPCSimHitCollectionCnv_p4_test.cxx + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( TGCSimHitCollectionCnv_p1_test SOURCES test/TGCSimHitCollectionCnv_p1_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( TGCSimHitCollectionCnv_p2_test SOURCES test/TGCSimHitCollectionCnv_p2_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( TGCSimHitCollectionCnv_p3_test SOURCES test/TGCSimHitCollectionCnv_p3_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( TGCSimHitCollectionCnv_p4_test SOURCES test/TGCSimHitCollectionCnv_p4_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) + +atlas_add_test( TGCSimHitCollectionCnv_p5_test + SOURCES + test/TGCSimHitCollectionCnv_p5_test.cxx + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( sTGCSimHitCollectionCnv_p1_test SOURCES test/sTGCSimHitCollectionCnv_p1_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( sTGCSimHitCollectionCnv_p2_test SOURCES test/sTGCSimHitCollectionCnv_p2_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( sTGCSimHitCollectionCnv_p3_test SOURCES test/sTGCSimHitCollectionCnv_p3_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) + +atlas_add_test( sTGCSimHitCollectionCnv_p4_test + SOURCES + test/sTGCSimHitCollectionCnv_p4_test.cxx + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( MMSimHitCollectionCnv_p1_test SOURCES test/MMSimHitCollectionCnv_p1_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) atlas_add_test( MMSimHitCollectionCnv_p2_test SOURCES test/MMSimHitCollectionCnv_p2_test.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) + +atlas_add_test( MMSimHitCollectionCnv_p3_test + SOURCES + test/MMSimHitCollectionCnv_p3_test.cxx + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib GaudiKernel GeneratorObjectsTPCnv MuonSimEvent TestTools StoreGateLib GeoPrimitives MuonSimEventTPCnv CxxUtils TruthUtils ) diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/CSCSimHitCollectionCnv_p4.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/CSCSimHitCollectionCnv_p4.h new file mode 100644 index 000000000000..5f7c4616f52f --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/CSCSimHitCollectionCnv_p4.h @@ -0,0 +1,32 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef CSCSimHitCOLLECTIONCNV_P4_H +#define CSCSimHitCOLLECTIONCNV_P4_H + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include "MuonSimEvent/CSCSimHitCollection.h" +#include "CSCSimHitCollection_p4.h" +// namespace Muon { +// class CSCSimHitCollection_p1; +// } + +class CSCSimHitCollectionCnv_p4 : public T_AthenaPoolTPCnvBase<CSCSimHitCollection, Muon::CSCSimHitCollection_p4> +{ + public: + + CSCSimHitCollectionCnv_p4() {}; + + virtual CSCSimHitCollection* createTransient(const Muon::CSCSimHitCollection_p4* persObj, MsgStream &log); + virtual void persToTrans(const Muon::CSCSimHitCollection_p4* persCont, + CSCSimHitCollection* transCont, + MsgStream &log) ; + virtual void transToPers(const CSCSimHitCollection* transCont, + Muon::CSCSimHitCollection_p4* persCont, + MsgStream &log) ; + +}; + +#endif + diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/CSCSimHitCollection_p4.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/CSCSimHitCollection_p4.h new file mode 100644 index 000000000000..9fd9c21c8109 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/CSCSimHitCollection_p4.h @@ -0,0 +1,27 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef CSCSIMHITCOLLECTION_P4_H +#define CSCSIMHITCOLLECTION_P4_H + +#include <vector> +#include "GeneratorObjectsTPCnv/HepMcParticleLink_p3.h" + +namespace Muon { +class CSCSimHitCollection_p4 +{ + public: + std::vector<int> m_CSCid; + std::vector<float> m_globalTime; + std::vector<float> m_energyDeposit; + std::vector<float> m_stX, m_stY, m_stZ; //!< Represents m_hitStart in transient class + std::vector<float> m_enX, m_enY, m_enZ; //!< Represents m_hitEnd in transient class + std::vector<int> m_particleID; + std::vector<float> m_meanTime; + std::vector<HepMcParticleLink_p3> m_partLink; + std::vector<float> m_kineticEnergy; +}; +} + +#endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/GenericMuonSimHitCollectionCnv_p3.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/GenericMuonSimHitCollectionCnv_p3.h new file mode 100644 index 000000000000..bbb606c4a325 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/GenericMuonSimHitCollectionCnv_p3.h @@ -0,0 +1,31 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef GenericMuonSimHitCOLLECTIONCNV_P3_H +#define GenericMuonSimHitCOLLECTIONCNV_P3_H + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include "MuonSimEvent/GenericMuonSimHitCollection.h" +#include "GenericMuonSimHitCollection_p3.h" +// namespace Muon { +// class GenericMuonSimHitCollection_p3; +// } + +class GenericMuonSimHitCollectionCnv_p3 : public T_AthenaPoolTPCnvBase<GenericMuonSimHitCollection, Muon::GenericMuonSimHitCollection_p3> +{ + public: + + GenericMuonSimHitCollectionCnv_p3() {}; + + virtual GenericMuonSimHitCollection* createTransient(const Muon::GenericMuonSimHitCollection_p3* persObj, MsgStream &log); + virtual void persToTrans(const Muon::GenericMuonSimHitCollection_p3* persCont, + GenericMuonSimHitCollection* transCont, + MsgStream &log) ; + virtual void transToPers(const GenericMuonSimHitCollection* transCont, + Muon::GenericMuonSimHitCollection_p3* persCont, + MsgStream &log) ; + +}; + +#endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/GenericMuonSimHitCollection_p3.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/GenericMuonSimHitCollection_p3.h new file mode 100644 index 000000000000..7efccdefbf6d --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/GenericMuonSimHitCollection_p3.h @@ -0,0 +1,34 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef GENERICMUONSIMHITCOLLECTION_P3_H +#define GENERICMUONSIMHITCOLLECTION_P3_H + +#include <vector> +#include "GeneratorObjectsTPCnv/HepMcParticleLink_p3.h" + +namespace Muon { + class GenericMuonSimHitCollection_p3 + { + public: + std::vector<int> m_GenericId; + std::vector<float> m_globalTime; + std::vector<float> m_globalpreTime; + //preStep + std::vector<float> m_prestX, m_prestY, m_prestZ; //!< Represents m_globalPosition in transient class + std::vector<float> m_prelocX, m_prelocY, m_prelocZ; //!< Represents m_localPosition in transient class + //postStep + std::vector<float> m_stX, m_stY, m_stZ; //!< Represents m_globalPosition in transient class + std::vector<float> m_locX, m_locY, m_locZ; //!< Represents m_localPosition in transient class + std::vector<float> m_kineticEnergy; + std::vector<int> m_particleEncoding; + std::vector<float> m_ptX, m_ptY, m_ptZ; + std::vector<float> m_depositEnergy; + std::vector<float> m_StepLength; + + std::vector<HepMcParticleLink_p3> m_partLink; + }; +} + +#endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MDTSimHitCollectionCnv_p4.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MDTSimHitCollectionCnv_p4.h new file mode 100644 index 000000000000..b28643922e36 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MDTSimHitCollectionCnv_p4.h @@ -0,0 +1,28 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef MDTSimHitCOLLECTIONCNV_P4_H +#define MDTSimHitCOLLECTIONCNV_P4_H + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include "MuonSimEvent/MDTSimHitCollection.h" +#include "MDTSimHitCollection_p4.h" + +class MDTSimHitCollectionCnv_p4 : public T_AthenaPoolTPCnvBase<MDTSimHitCollection, Muon::MDTSimHitCollection_p4> +{ + public: + + MDTSimHitCollectionCnv_p4() {}; + + virtual MDTSimHitCollection* createTransient(const Muon::MDTSimHitCollection_p4* persObj, MsgStream &log); + virtual void persToTrans(const Muon::MDTSimHitCollection_p4* persCont, + MDTSimHitCollection* transCont, + MsgStream &log) ; + virtual void transToPers(const MDTSimHitCollection* transCont, + Muon::MDTSimHitCollection_p4* persCont, + MsgStream &log) ; + +}; + +#endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MDTSimHitCollection_p4.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MDTSimHitCollection_p4.h new file mode 100644 index 000000000000..d9ff68606326 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MDTSimHitCollection_p4.h @@ -0,0 +1,29 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef MDTSIMHITCOLLECTION_P4_H +#define MDTSIMHITCOLLECTION_P4_H + +#include <vector> +#include "GeneratorObjectsTPCnv/HepMcParticleLink_p3.h" + +namespace Muon { +class MDTSimHitCollection_p4 +{ + public: + std::vector<int> m_MDTid; + std::vector<float> m_globalTime; + std::vector<float> m_driftRadius; + std::vector<float> m_stX, m_stY, m_stZ; //!< Represents m_localPosition in transient class + //std::vector<float> m_meanTime; + std::vector<HepMcParticleLink_p3> m_partLink; + std::vector<float> m_energyDeposit; + std::vector<int> m_particleEncoding; + std::vector<float> m_kineticEnergy; + std::vector<float> m_stepLength; +}; +} + +#endif + diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MMSimHitCollectionCnv_p3.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MMSimHitCollectionCnv_p3.h new file mode 100644 index 000000000000..955bdaf71e7f --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MMSimHitCollectionCnv_p3.h @@ -0,0 +1,28 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef MMSimHitCOLLECTIONCNV_P3_H +#define MMSimHitCOLLECTIONCNV_P3_H + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include "MuonSimEvent/MMSimHitCollection.h" +#include "MMSimHitCollection_p3.h" + +class MMSimHitCollectionCnv_p3 : public T_AthenaPoolTPCnvBase<MMSimHitCollection, Muon::MMSimHitCollection_p3> +{ + public: + + MMSimHitCollectionCnv_p3() {}; + + virtual MMSimHitCollection* createTransient(const Muon::MMSimHitCollection_p3* persObj, MsgStream &log); + virtual void persToTrans(const Muon::MMSimHitCollection_p3* persCont, + MMSimHitCollection* transCont, + MsgStream &log) ; + virtual void transToPers(const MMSimHitCollection* transCont, + Muon::MMSimHitCollection_p3* persCont, + MsgStream &log) ; + +}; + +#endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MMSimHitCollection_p3.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MMSimHitCollection_p3.h new file mode 100644 index 000000000000..64d5fab428fb --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MMSimHitCollection_p3.h @@ -0,0 +1,28 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef MUONSIMEVENTTPCNV_MMSIMHITCOLLECTION_P3_H +#define MUONSIMEVENTTPCNV_MMSIMHITCOLLECTION_P3_H + +#include <vector> +#include "GeneratorObjectsTPCnv/HepMcParticleLink_p3.h" + +namespace Muon { + class MMSimHitCollection_p3 + { + public: + std::vector<int> m_MMId; + std::vector<float> m_globalTime; + //postStep + std::vector<float> m_stX, m_stY, m_stZ; //!< Represents m_globalPosition in transient class + std::vector<float> m_kineticEnergy; + std::vector<int> m_particleEncoding; + std::vector<float> m_ptX, m_ptY, m_ptZ; + std::vector<float> m_depositEnergy; + + std::vector<HepMcParticleLink_p3> m_partLink; + }; +} + +#endif // MUONSIMEVENTTPCNV_MMSIMHITCOLLECTION_P3_H diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MuonSimEventTPCnvDict.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MuonSimEventTPCnvDict.h index 55f505df4f6b..ab8f4a8b48c5 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MuonSimEventTPCnvDict.h +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/MuonSimEventTPCnvDict.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONSIMEVENTTPCNV_MUONSIMEVENTTPCNVDICT_H @@ -14,22 +14,29 @@ #include "MuonSimEventTPCnv/CSCSimHitCollection_p1.h" #include "MuonSimEventTPCnv/CSCSimHitCollection_p2.h" #include "MuonSimEventTPCnv/CSCSimHitCollection_p3.h" +#include "MuonSimEventTPCnv/CSCSimHitCollection_p4.h" #include "MuonSimEventTPCnv/RPCSimHitCollection_p1.h" #include "MuonSimEventTPCnv/RPCSimHitCollection_p2.h" #include "MuonSimEventTPCnv/RPCSimHitCollection_p3.h" +#include "MuonSimEventTPCnv/RPCSimHitCollection_p4.h" #include "MuonSimEventTPCnv/TGCSimHitCollection_p1.h" #include "MuonSimEventTPCnv/TGCSimHitCollection_p2.h" #include "MuonSimEventTPCnv/TGCSimHitCollection_p3.h" #include "MuonSimEventTPCnv/TGCSimHitCollection_p4.h" +#include "MuonSimEventTPCnv/TGCSimHitCollection_p5.h" #include "MuonSimEventTPCnv/MDTSimHitCollection_p1.h" #include "MuonSimEventTPCnv/MDTSimHitCollection_p2.h" #include "MuonSimEventTPCnv/MDTSimHitCollection_p3.h" +#include "MuonSimEventTPCnv/MDTSimHitCollection_p4.h" #include "MuonSimEventTPCnv/GenericMuonSimHitCollection_p1.h" #include "MuonSimEventTPCnv/GenericMuonSimHitCollection_p2.h" +#include "MuonSimEventTPCnv/GenericMuonSimHitCollection_p3.h" #include "MuonSimEventTPCnv/sTGCSimHitCollection_p1.h" #include "MuonSimEventTPCnv/sTGCSimHitCollection_p2.h" #include "MuonSimEventTPCnv/sTGCSimHitCollection_p3.h" +#include "MuonSimEventTPCnv/sTGCSimHitCollection_p4.h" #include "MuonSimEventTPCnv/MMSimHitCollection_p1.h" #include "MuonSimEventTPCnv/MMSimHitCollection_p2.h" +#include "MuonSimEventTPCnv/MMSimHitCollection_p3.h" #endif // MUONSIMEVENTTPCNV_MUONSIMEVENTTPCNVDICT_H diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/RPCSimHitCollectionCnv_p4.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/RPCSimHitCollectionCnv_p4.h new file mode 100644 index 000000000000..a0035b59ab1f --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/RPCSimHitCollectionCnv_p4.h @@ -0,0 +1,31 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef RPCSimHitCOLLECTIONCNV_P4_H +#define RPCSimHitCOLLECTIONCNV_P4_H + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include "MuonSimEvent/RPCSimHitCollection.h" +#include "RPCSimHitCollection_p4.h" +// namespace Muon { +// class RPCSimHitCollection_p1; +// } + +class RPCSimHitCollectionCnv_p4 : public T_AthenaPoolTPCnvBase<RPCSimHitCollection, Muon::RPCSimHitCollection_p4> +{ + public: + + RPCSimHitCollectionCnv_p4() {}; + + virtual RPCSimHitCollection* createTransient(const Muon::RPCSimHitCollection_p4* persObj, MsgStream &log); + virtual void persToTrans(const Muon::RPCSimHitCollection_p4* persCont, + RPCSimHitCollection* transCont, + MsgStream &log) ; + virtual void transToPers(const RPCSimHitCollection* transCont, + Muon::RPCSimHitCollection_p4* persCont, + MsgStream &log) ; + +}; + +#endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/RPCSimHitCollection_p4.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/RPCSimHitCollection_p4.h new file mode 100644 index 000000000000..4c2a701a6a65 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/RPCSimHitCollection_p4.h @@ -0,0 +1,27 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef RPCSIMHITCOLLECTION_P4_H +#define RPCSIMHITCOLLECTION_P4_H + +#include <vector> +#include "GeneratorObjectsTPCnv/HepMcParticleLink_p3.h" + +namespace Muon { +class RPCSimHitCollection_p4 +{ + public: + std::vector<int> m_RPCid; + std::vector<float> m_globalTime; + std::vector<float> m_stX, m_stY, m_stZ; //!< Represents m_localPosition in transient class + std::vector<HepMcParticleLink_p3> m_partLink; + std::vector<float> m_stopX, m_stopY, m_stopZ; //!< Represents end-point of the g4 step in the transient class + std::vector<float> m_energyDeposit; + std::vector<float> m_stepLength; + std::vector<int> m_particleEncoding; + std::vector<float> m_kineticEnergy; +}; +} + +#endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/TGCSimHitCollectionCnv_p5.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/TGCSimHitCollectionCnv_p5.h new file mode 100644 index 000000000000..d6e7fa34307d --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/TGCSimHitCollectionCnv_p5.h @@ -0,0 +1,28 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef TGCSimHitCOLLECTIONCNV_P5_H +#define TGCSimHitCOLLECTIONCNV_P5_H + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include "MuonSimEvent/TGCSimHitCollection.h" +#include "TGCSimHitCollection_p5.h" + +class TGCSimHitCollectionCnv_p5 : public T_AthenaPoolTPCnvBase<TGCSimHitCollection, Muon::TGCSimHitCollection_p5> +{ + public: + + TGCSimHitCollectionCnv_p5() {}; + + virtual TGCSimHitCollection* createTransient(const Muon::TGCSimHitCollection_p5* persObj, MsgStream &log); + virtual void persToTrans(const Muon::TGCSimHitCollection_p5* persCont, + TGCSimHitCollection* transCont, + MsgStream &log) ; + virtual void transToPers(const TGCSimHitCollection* transCont, + Muon::TGCSimHitCollection_p5* persCont, + MsgStream &log) ; + +}; + +#endif // TGCSimHitCOLLECTIONCNV_P5_H diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/TGCSimHitCollection_p5.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/TGCSimHitCollection_p5.h new file mode 100644 index 000000000000..5724b233af8a --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/TGCSimHitCollection_p5.h @@ -0,0 +1,27 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef TGCSIMHITCOLLECTION_P5_H +#define TGCSIMHITCOLLECTION_P5_H + +#include <vector> +#include "GeneratorObjectsTPCnv/HepMcParticleLink_p3.h" + +namespace Muon { +class TGCSimHitCollection_p5 +{ + public: + std::vector<int> m_TGCid; + std::vector<float> m_globalTime; + std::vector<float> m_stX, m_stY, m_stZ; //!< Represents m_localPosition in transient class + std::vector<float> m_enX, m_enY, m_enZ; //!< Represents m_localDireCos in transient class + std::vector<HepMcParticleLink_p3> m_partLink; + std::vector<float> m_energyDeposit; + std::vector<float> m_stepLength; + std::vector<int> m_particleEncoding; + std::vector<float> m_kineticEnergy; +}; +} + +#endif // TGCSIMHITCOLLECTION_P5_H diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/sTGCSimHitCollectionCnv_p4.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/sTGCSimHitCollectionCnv_p4.h new file mode 100644 index 000000000000..a84db1635f8d --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/sTGCSimHitCollectionCnv_p4.h @@ -0,0 +1,28 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef sTGCSimHitCOLLECTIONCNV_P4_H +#define sTGCSimHitCOLLECTIONCNV_P4_H + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include "MuonSimEvent/sTGCSimHitCollection.h" +#include "sTGCSimHitCollection_p4.h" + +class sTGCSimHitCollectionCnv_p4 : public T_AthenaPoolTPCnvBase<sTGCSimHitCollection, Muon::sTGCSimHitCollection_p4> +{ + public: + + sTGCSimHitCollectionCnv_p4() {}; + + virtual sTGCSimHitCollection* createTransient(const Muon::sTGCSimHitCollection_p4* persObj, MsgStream &log); + virtual void persToTrans(const Muon::sTGCSimHitCollection_p4* persCont, + sTGCSimHitCollection* transCont, + MsgStream &log) ; + virtual void transToPers(const sTGCSimHitCollection* transCont, + Muon::sTGCSimHitCollection_p4* persCont, + MsgStream &log) ; + +}; + +#endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/sTGCSimHitCollection_p4.h b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/sTGCSimHitCollection_p4.h new file mode 100644 index 000000000000..3b31ee21d8a7 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/sTGCSimHitCollection_p4.h @@ -0,0 +1,26 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef STGCSIMHITCOLLECTION_P4_H +#define STGCSIMHITCOLLECTION_P4_H + +#include <vector> +#include "GeneratorObjectsTPCnv/HepMcParticleLink_p3.h" + +namespace Muon { + class sTGCSimHitCollection_p4 + { + public: + std::vector<int> m_sTGCId; + std::vector<float> m_globalTime; + std::vector<float> m_stX, m_stY, m_stZ; //!< Represents m_globalPosition in transient class + std::vector<int> m_particleEncoding; + std::vector<float> m_depositEnergy; + std::vector<HepMcParticleLink_p3> m_partLink; + std::vector<float> m_kineticEnergy; + std::vector<float> m_prestX, m_prestY, m_prestZ; + }; +} + +#endif diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/selection.xml b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/selection.xml index c4195796ce66..66f717f33793 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/selection.xml +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/MuonSimEventTPCnv/selection.xml @@ -6,22 +6,29 @@ <class name="Muon::CSCSimHitCollection_p1" id="E45CD293-4599-41BE-8B65-945A18F41AB7"/> <class name="Muon::CSCSimHitCollection_p2" id="7E5A120C-E64F-4519-A24B-B485A58724BF"/> <class name="Muon::CSCSimHitCollection_p3" id="6BFFE81C-C99E-43D9-B06F-1A998C3B3E40"/> + <class name="Muon::CSCSimHitCollection_p4" id="018E2DAC-18EB-71D2-A246-66F818B3681B"/> <class name="Muon::RPCSimHitCollection_p1" id="C4C57487-41DC-4706-9604-721D76F0AA52"/> <class name="Muon::RPCSimHitCollection_p2" id="1B611C70-CC6F-42AE-9F6D-7DA6A9A22546"/> <class name="Muon::RPCSimHitCollection_p3" id="B48E5E17-FB26-4BC0-A0E2-5324925EAE2F"/> + <class name="Muon::RPCSimHitCollection_p4" id="018E2DAC-18EB-714B-B9BD-F9354E30CB51"/> <class name="Muon::TGCSimHitCollection_p1" id="BD569381-2489-4402-BBD3-91EE8C009F26"/> <class name="Muon::TGCSimHitCollection_p2" id="710241EE-D5F7-4CB6-A1D7-6E80D040E637"/> <class name="Muon::TGCSimHitCollection_p3" id="BACD19A8-4737-4857-A22D-B9DF833A0A80"/> <class name="Muon::TGCSimHitCollection_p4" id="F8F77562-BBD9-45DB-A276-6A21018EA7FA"/> + <class name="Muon::TGCSimHitCollection_p5" id="018E2DAC-18EB-7E5B-9F18-CC2E36343F17"/> <class name="Muon::MDTSimHitCollection_p1" id="EA781971-65C5-4B30-9D22-EEFB764BA0B3"/> <class name="Muon::MDTSimHitCollection_p2" id="92880B97-75BB-4C5D-8183-577338059FCC"/> <class name="Muon::MDTSimHitCollection_p3" id="0E9EEEE2-304F-44B8-B1DF-E75297183A02"/> + <class name="Muon::MDTSimHitCollection_p4" id="018E2DAC-18EB-7BBC-92AF-EFE3F0E400C2"/> <class name="Muon::GenericMuonSimHitCollection_p1" id="C2D5D558-2671-11E1-AAFA-001E4F3E5646"/> <class name="Muon::GenericMuonSimHitCollection_p2" id="3760C0D8-C7EA-42C7-925A-E841196F2138"/> - <class name="Muon::sTGCSimHitCollection_p1" id="f8b975d2-8130-11e8-abf4-4b4a6a2b6ee5"/> - <class name="Muon::sTGCSimHitCollection_p2" id="b9521cc6-6e3b-11e8-adbb-02163e01bddd"/> - <class name="Muon::sTGCSimHitCollection_p3" id="8f3ffd1c-c9a0-4da7-b99e-a3828b6ac789"/> + <class name="Muon::GenericMuonSimHitCollection_p3" id="018E2DAC-18EB-7635-A068-B08EFB5CD64A"/> + <class name="Muon::sTGCSimHitCollection_p1" id="f8b975d2-8130-11e8-abf4-4b4a6a2b6ee5"/> + <class name="Muon::sTGCSimHitCollection_p2" id="b9521cc6-6e3b-11e8-adbb-02163e01bddd"/> + <class name="Muon::sTGCSimHitCollection_p3" id="8f3ffd1c-c9a0-4da7-b99e-a3828b6ac789"/> + <class name="Muon::sTGCSimHitCollection_p4" id="018E2DAC-18EB-79C4-B562-FD7C035C92C1"/> <class name="Muon::MMSimHitCollection_p1" id="ac0b677c-fe08-11e8-b174-02163e018187"/> <class name="Muon::MMSimHitCollection_p2" id="b9bdd436-fe08-11e8-a40f-02163e018187"/> - + <class name="Muon::MMSimHitCollection_p3" id="018E2DAC-18EB-7EAA-A141-F0FD2A6E1E06"/> + </lcgdict> diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/CSCSimHitCollectionCnv_p4_test.ref b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/CSCSimHitCollectionCnv_p4_test.ref new file mode 100644 index 000000000000..4a7c11977bb1 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/CSCSimHitCollectionCnv_p4_test.ref @@ -0,0 +1,8 @@ +ApplicationMgr INFO Application Manager Configured successfully +EventLoopMgr WARNING Unable to locate service "EventSelector" +EventLoopMgr WARNING No events will be processed from external input. +HistogramPersis...WARNING Histograms saving not required. +ApplicationMgr INFO Application Manager Initialized successfully +ApplicationMgr Ready +test1 +HepMcParticleLink INFO find_proxy: Using TruthEvent as McEventCollection key for this job diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/GenericMuonSimHitCollectionCnv_p3_test.ref b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/GenericMuonSimHitCollectionCnv_p3_test.ref new file mode 100644 index 000000000000..4a7c11977bb1 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/GenericMuonSimHitCollectionCnv_p3_test.ref @@ -0,0 +1,8 @@ +ApplicationMgr INFO Application Manager Configured successfully +EventLoopMgr WARNING Unable to locate service "EventSelector" +EventLoopMgr WARNING No events will be processed from external input. +HistogramPersis...WARNING Histograms saving not required. +ApplicationMgr INFO Application Manager Initialized successfully +ApplicationMgr Ready +test1 +HepMcParticleLink INFO find_proxy: Using TruthEvent as McEventCollection key for this job diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/MDTSimHitCollectionCnv_p4_test.ref b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/MDTSimHitCollectionCnv_p4_test.ref new file mode 100644 index 000000000000..4a7c11977bb1 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/MDTSimHitCollectionCnv_p4_test.ref @@ -0,0 +1,8 @@ +ApplicationMgr INFO Application Manager Configured successfully +EventLoopMgr WARNING Unable to locate service "EventSelector" +EventLoopMgr WARNING No events will be processed from external input. +HistogramPersis...WARNING Histograms saving not required. +ApplicationMgr INFO Application Manager Initialized successfully +ApplicationMgr Ready +test1 +HepMcParticleLink INFO find_proxy: Using TruthEvent as McEventCollection key for this job diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/MMSimHitCollectionCnv_p3_test.ref b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/MMSimHitCollectionCnv_p3_test.ref new file mode 100644 index 000000000000..4a7c11977bb1 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/MMSimHitCollectionCnv_p3_test.ref @@ -0,0 +1,8 @@ +ApplicationMgr INFO Application Manager Configured successfully +EventLoopMgr WARNING Unable to locate service "EventSelector" +EventLoopMgr WARNING No events will be processed from external input. +HistogramPersis...WARNING Histograms saving not required. +ApplicationMgr INFO Application Manager Initialized successfully +ApplicationMgr Ready +test1 +HepMcParticleLink INFO find_proxy: Using TruthEvent as McEventCollection key for this job diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/RPCSimHitCollectionCnv_p4_test.ref b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/RPCSimHitCollectionCnv_p4_test.ref new file mode 100644 index 000000000000..4a7c11977bb1 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/RPCSimHitCollectionCnv_p4_test.ref @@ -0,0 +1,8 @@ +ApplicationMgr INFO Application Manager Configured successfully +EventLoopMgr WARNING Unable to locate service "EventSelector" +EventLoopMgr WARNING No events will be processed from external input. +HistogramPersis...WARNING Histograms saving not required. +ApplicationMgr INFO Application Manager Initialized successfully +ApplicationMgr Ready +test1 +HepMcParticleLink INFO find_proxy: Using TruthEvent as McEventCollection key for this job diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/TGCSimHitCollectionCnv_p5_test.ref b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/TGCSimHitCollectionCnv_p5_test.ref new file mode 100644 index 000000000000..4a7c11977bb1 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/TGCSimHitCollectionCnv_p5_test.ref @@ -0,0 +1,8 @@ +ApplicationMgr INFO Application Manager Configured successfully +EventLoopMgr WARNING Unable to locate service "EventSelector" +EventLoopMgr WARNING No events will be processed from external input. +HistogramPersis...WARNING Histograms saving not required. +ApplicationMgr INFO Application Manager Initialized successfully +ApplicationMgr Ready +test1 +HepMcParticleLink INFO find_proxy: Using TruthEvent as McEventCollection key for this job diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/sTGCSimHitCollectionCnv_p4_test.ref b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/sTGCSimHitCollectionCnv_p4_test.ref new file mode 100644 index 000000000000..fcde3756ca56 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/share/sTGCSimHitCollectionCnv_p4_test.ref @@ -0,0 +1,8 @@ +ApplicationMgr INFO Application Manager Configured successfully +EventLoopMgr WARNING Unable to locate service "EventSelector" +EventLoopMgr WARNING No events will be processed from external input. +ApplicationMgr INFO Application Manager Initialized successfully +ApplicationMgr Ready +ClassIDSvc INFO getRegistryEntries: read 1917 CLIDRegistry entries for module ALL +test1 +HepMcParticleLink INFO find_proxy: Using TruthEvent as McEventCollection key for this job diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/CSCSimHitCollectionCnv_p4.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/CSCSimHitCollectionCnv_p4.cxx new file mode 100644 index 000000000000..7b4800c359a7 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/CSCSimHitCollectionCnv_p4.cxx @@ -0,0 +1,83 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#include "MuonSimEvent/CSCSimHit.h" +#include "MuonSimEventTPCnv/CSCSimHitCollectionCnv_p4.h" +#include "MuonSimEventTPCnv/CSCSimHitCollection_p4.h" +#include "GeneratorObjectsTPCnv/HepMcParticleLinkCnv_p3.h" + +//#include <cmath> +#include "GeoPrimitives/GeoPrimitives.h" + +// Gaudi +#include "GaudiKernel/MsgStream.h" +// Athena +#include "StoreGate/StoreGateSvc.h" + +void CSCSimHitCollectionCnv_p4::transToPers(const CSCSimHitCollection* transCont, Muon::CSCSimHitCollection_p4* persCont, MsgStream &log) +{ + // for reasons of efficiency, set size before hand + unsigned int size=transCont->size(); + persCont->m_CSCid.reserve(size); + persCont->m_globalTime.reserve(size); + persCont->m_energyDeposit.reserve(size); + persCont->m_stX.reserve(size); + persCont->m_stY.reserve(size); + persCont->m_stZ.reserve(size); + persCont->m_enX.reserve(size); + persCont->m_enY.reserve(size); + persCont->m_enZ.reserve(size); + persCont->m_particleID.reserve(size); + // persCont->m_meanTime.reserve(size); + persCont->m_partLink.reserve(size); + + // make convertor to handle HepMcParticleLinks + HepMcParticleLinkCnv_p3 hepMcPLCnv; + HepMcParticleLink_p3 persLink; // will use this as a temp object inside the loop + + // loop through container, filling pers object + CSCSimHitCollection::const_iterator it = transCont->begin(), itEnd = transCont->end(); + for (; it != itEnd; ++it) { + persCont->m_CSCid.push_back(it->CSCid()); + persCont->m_globalTime.push_back(it->globalTime()); + persCont->m_energyDeposit.push_back(it->energyDeposit()); + persCont->m_stX.push_back(it->getHitStart().x()); + persCont->m_stY.push_back(it->getHitStart().y()); + persCont->m_stZ.push_back(it->getHitStart().z()); + persCont->m_enX.push_back(it->getHitEnd().x()); + persCont->m_enY.push_back(it->getHitEnd().y()); + persCont->m_enZ.push_back(it->getHitEnd().z()); + persCont->m_particleID.push_back(it->particleID()); + // persCont->m_meanTime.push_back(hit->m_meanTime); + + hepMcPLCnv.transToPers(&(it->particleLink()),&persLink, log); + persCont->m_partLink.push_back(persLink); + persCont->m_kineticEnergy.push_back(it->kineticEnergy()); + } +} + + +CSCSimHitCollection* CSCSimHitCollectionCnv_p4::createTransient(const Muon::CSCSimHitCollection_p4* persObj, MsgStream &log) { + std::unique_ptr<CSCSimHitCollection> trans(new CSCSimHitCollection("DefaultCollectionName",persObj->m_globalTime.size())); + persToTrans(persObj, trans.get(), log); + return(trans.release()); +} + + +void CSCSimHitCollectionCnv_p4::persToTrans(const Muon::CSCSimHitCollection_p4* persCont, CSCSimHitCollection* transCont, MsgStream &log) +{ + HepMcParticleLinkCnv_p3 hepMcPLCnv; + + //transCont->reserve(persCont->m_CSCid.size());//done in createTransient + for (unsigned int i = 0; i < persCont->m_CSCid.size(); i++) { + Amg::Vector3D start(persCont->m_stX[i], persCont->m_stY[i], persCont->m_stZ[i]); + Amg::Vector3D end(persCont->m_enX[i], persCont->m_enY[i], persCont->m_enZ[i]); + + HepMcParticleLink link; + hepMcPLCnv.persToTrans(&persCont->m_partLink[i],&link, log); + + transCont->Emplace (persCont->m_CSCid[i], persCont->m_globalTime[i], persCont->m_energyDeposit[i], start, end, persCont->m_particleID[i], + link, persCont->m_kineticEnergy[i]); + } +} diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/GenericMuonSimHitCollectionCnv_p3.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/GenericMuonSimHitCollectionCnv_p3.cxx new file mode 100644 index 000000000000..e160b8b9803a --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/GenericMuonSimHitCollectionCnv_p3.cxx @@ -0,0 +1,118 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#include "MuonSimEvent/GenericMuonSimHit.h" +#include "MuonSimEventTPCnv/GenericMuonSimHitCollectionCnv_p3.h" +#include "MuonSimEventTPCnv/GenericMuonSimHitCollection_p3.h" +#include "GeneratorObjectsTPCnv/HepMcParticleLinkCnv_p3.h" + +//#include <cmath> +#include "GeoPrimitives/GeoPrimitives.h" + +// Gaudi +#include "GaudiKernel/MsgStream.h" +// Athena +#include "StoreGate/StoreGateSvc.h" + +void GenericMuonSimHitCollectionCnv_p3::transToPers(const GenericMuonSimHitCollection* transCont, Muon::GenericMuonSimHitCollection_p3* persCont, MsgStream &log) +{ + // for reasons of efficiency, set size before hand + unsigned int size=transCont->size(); + persCont->m_GenericId.reserve(size); + persCont->m_globalTime.reserve(size); + persCont->m_globalpreTime.reserve(size); + // preStep Global + persCont->m_prestX.reserve(size); + persCont->m_prestY.reserve(size); + persCont->m_prestZ.reserve(size); + // preStep Local + persCont->m_prelocX.reserve(size); + persCont->m_prelocY.reserve(size); + persCont->m_prelocZ.reserve(size); + // postStep Global + persCont->m_stX.reserve(size); + persCont->m_stY.reserve(size); + persCont->m_stZ.reserve(size); + // postStep Local + persCont->m_locX.reserve(size); + persCont->m_locY.reserve(size); + persCont->m_locZ.reserve(size); + persCont->m_kineticEnergy.reserve(size); + persCont->m_particleEncoding.reserve(size); + persCont->m_ptX.reserve(size); + persCont->m_ptY.reserve(size); + persCont->m_ptZ.reserve(size); + persCont->m_depositEnergy.reserve(size); + persCont->m_StepLength.reserve(size); + persCont->m_partLink.reserve(size); + + // make convertor to handle HepMcParticleLinks + HepMcParticleLinkCnv_p3 hepMcPLCnv; + HepMcParticleLink_p3 persLink; // will use this as a temp object inside the loop + + // loop through container, filling pers object + GenericMuonSimHitCollection::const_iterator it = transCont->begin(), itEnd = transCont->end(); + for (; it != itEnd; ++it) { + persCont->m_GenericId.push_back(it->GenericId()); + persCont->m_globalTime.push_back(it->globalTime()); + persCont->m_globalpreTime.push_back(it->globalpreTime()); + // preStep Global + persCont->m_prestX.push_back(it->globalPrePosition().x()); + persCont->m_prestY.push_back(it->globalPrePosition().y()); + persCont->m_prestZ.push_back(it->globalPrePosition().z()); + // preStep Local + persCont->m_prelocX.push_back(it->localPrePosition().x()); + persCont->m_prelocY.push_back(it->localPrePosition().y()); + persCont->m_prelocZ.push_back(it->localPrePosition().z()); + // postStep Global + persCont->m_stX.push_back(it->globalPosition().x()); + persCont->m_stY.push_back(it->globalPosition().y()); + persCont->m_stZ.push_back(it->globalPosition().z()); + // postStep Local + persCont->m_locX.push_back(it->localPosition().x()); + persCont->m_locY.push_back(it->localPosition().y()); + persCont->m_locZ.push_back(it->localPosition().z()); + persCont->m_kineticEnergy.push_back(it->kineticEnergy()); + persCont->m_particleEncoding.push_back(it->particleEncoding()); + persCont->m_ptX.push_back(it->globalDirection().x()); + persCont->m_ptY.push_back(it->globalDirection().y()); + persCont->m_ptZ.push_back(it->globalDirection().z()); + persCont->m_depositEnergy.push_back(it->depositEnergy()); + persCont->m_StepLength.push_back(it->StepLength()); + + hepMcPLCnv.transToPers(&it->particleLink(),&persLink, log); + persCont->m_partLink.push_back(persLink); + + } +} + + +GenericMuonSimHitCollection* GenericMuonSimHitCollectionCnv_p3::createTransient(const Muon::GenericMuonSimHitCollection_p3* persObj, MsgStream &log) { + std::unique_ptr<GenericMuonSimHitCollection> trans(new GenericMuonSimHitCollection("DefaultCollectionName",persObj->m_globalTime.size())); + persToTrans(persObj, trans.get(), log); + return(trans.release()); +} + + +void GenericMuonSimHitCollectionCnv_p3::persToTrans(const Muon::GenericMuonSimHitCollection_p3* persCont, GenericMuonSimHitCollection* transCont, MsgStream &log) +{ + HepMcParticleLinkCnv_p3 hepMcPLCnv; + + //transCont->reserve(persCont->m_GenericId.size());//done in createTransient + for (unsigned int i = 0; i < persCont->m_GenericId.size(); i++) { + //pre + Amg::Vector3D preposition(persCont->m_prestX[i], persCont->m_prestY[i], persCont->m_prestZ[i]); + Amg::Vector3D loc_preposition(persCont->m_prelocX[i], persCont->m_prelocY[i], persCont->m_prelocZ[i]); + //post + Amg::Vector3D position(persCont->m_stX[i], persCont->m_stY[i], persCont->m_stZ[i]); + Amg::Vector3D loc_position(persCont->m_locX[i], persCont->m_locY[i], persCont->m_locZ[i]); + Amg::Vector3D direction(persCont->m_ptX[i], persCont->m_ptY[i], persCont->m_ptZ[i]); + + HepMcParticleLink link; + hepMcPLCnv.persToTrans(&persCont->m_partLink[i],&link, log); + + transCont->Emplace(persCont->m_GenericId[i], persCont->m_globalTime[i], persCont->m_globalpreTime[i], position, loc_position, preposition, loc_preposition, persCont->m_particleEncoding[i], persCont->m_kineticEnergy[i], direction, persCont->m_depositEnergy[i], persCont->m_StepLength[i], link); + } +} + diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/MDTSimHitCollectionCnv_p4.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/MDTSimHitCollectionCnv_p4.cxx new file mode 100644 index 000000000000..ba88b0103295 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/MDTSimHitCollectionCnv_p4.cxx @@ -0,0 +1,84 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#include "MuonSimEvent/MDTSimHit.h" +#include "MuonSimEventTPCnv/MDTSimHitCollectionCnv_p4.h" +#include "MuonSimEventTPCnv/MDTSimHitCollection_p4.h" +#include "GeneratorObjectsTPCnv/HepMcParticleLinkCnv_p3.h" + +//#include <cmath> +#include "GeoPrimitives/GeoPrimitives.h" + +// Gaudi +#include "GaudiKernel/MsgStream.h" +// Athena +#include "StoreGate/StoreGateSvc.h" + +void MDTSimHitCollectionCnv_p4::transToPers(const MDTSimHitCollection* transCont, Muon::MDTSimHitCollection_p4* persCont, MsgStream &log) +{ + // for reasons of efficiency, set size before hand + unsigned int size=transCont->size(); + persCont->m_MDTid.reserve(size); + persCont->m_globalTime.reserve(size); + persCont->m_driftRadius.reserve(size); + persCont->m_stX.reserve(size); + persCont->m_stY.reserve(size); + persCont->m_stZ.reserve(size); + persCont->m_stepLength.reserve(size); + persCont->m_energyDeposit.reserve(size); + persCont->m_particleEncoding.reserve(size); + persCont->m_kineticEnergy.reserve(size); + // persCont->m_meanTime.reserve(size); + persCont->m_partLink.reserve(size); + + // make convertor to handle HepMcParticleLinks + HepMcParticleLinkCnv_p3 hepMcPLCnv; + HepMcParticleLink_p3 persLink; // will use this as a temp object inside the loop + + // loop through container, filling pers object + MDTSimHitCollection::const_iterator it = transCont->begin(), itEnd = transCont->end(); + for (; it != itEnd; ++it) { + persCont->m_MDTid.push_back(it->MDTid()); + persCont->m_globalTime.push_back(it->globalTime()); + persCont->m_driftRadius.push_back(it->driftRadius()); + persCont->m_stX.push_back(it->localPosition().x()); + persCont->m_stY.push_back(it->localPosition().y()); + persCont->m_stZ.push_back(it->localPosition().z()); + // persCont->m_meanTime.push_back(hit->m_meanTime); + persCont->m_stepLength.push_back(it->stepLength()); + persCont->m_energyDeposit.push_back(it->energyDeposit()); + persCont->m_particleEncoding.push_back(it->particleEncoding()); + persCont->m_kineticEnergy.push_back(it->kineticEnergy()); + + hepMcPLCnv.transToPers(&it->particleLink(),&persLink, log); + persCont->m_partLink.push_back(persLink); + + } +} + + +MDTSimHitCollection* MDTSimHitCollectionCnv_p4::createTransient(const Muon::MDTSimHitCollection_p4* persObj, MsgStream &log) { + std::unique_ptr<MDTSimHitCollection> trans(new MDTSimHitCollection("DefaultCollectionName",persObj->m_globalTime.size())); + persToTrans(persObj, trans.get(), log); + return(trans.release()); +} + + +void MDTSimHitCollectionCnv_p4::persToTrans(const Muon::MDTSimHitCollection_p4* persCont, MDTSimHitCollection* transCont, MsgStream &log) +{ + HepMcParticleLinkCnv_p3 hepMcPLCnv; + + //transCont->reserve(persCont->m_MDTid.size());//done in createTransient + for (unsigned int i = 0; i < persCont->m_MDTid.size(); i++) { + Amg::Vector3D position(persCont->m_stX[i], persCont->m_stY[i], persCont->m_stZ[i]); + + HepMcParticleLink link; + hepMcPLCnv.persToTrans(&persCont->m_partLink[i],&link, log); + + transCont->Emplace(persCont->m_MDTid[i], persCont->m_globalTime[i], persCont->m_driftRadius[i], position, + link, + persCont->m_stepLength[i], persCont->m_energyDeposit[i], persCont->m_particleEncoding[i], persCont->m_kineticEnergy[i]); + } +} + diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/MMSimHitCollectionCnv_p3.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/MMSimHitCollectionCnv_p3.cxx new file mode 100644 index 000000000000..0690370f251c --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/MMSimHitCollectionCnv_p3.cxx @@ -0,0 +1,85 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#include "MuonSimEvent/MMSimHit.h" +#include "MuonSimEventTPCnv/MMSimHitCollectionCnv_p3.h" +#include "MuonSimEventTPCnv/MMSimHitCollection_p3.h" +#include "GeneratorObjectsTPCnv/HepMcParticleLinkCnv_p3.h" + +//#include <cmath> +#include "GeoPrimitives/GeoPrimitives.h" + +// Gaudi +#include "GaudiKernel/MsgStream.h" +// Athena +#include "StoreGate/StoreGateSvc.h" + +void MMSimHitCollectionCnv_p3::transToPers(const MMSimHitCollection* transCont, Muon::MMSimHitCollection_p3* persCont, MsgStream &log) +{ + // for reasons of efficiency, set size before hand + unsigned int size=transCont->size(); + persCont->m_MMId.reserve(size); + persCont->m_globalTime.reserve(size); + // postStep Global + persCont->m_stX.reserve(size); + persCont->m_stY.reserve(size); + persCont->m_stZ.reserve(size); + persCont->m_kineticEnergy.reserve(size); + persCont->m_particleEncoding.reserve(size); + persCont->m_ptX.reserve(size); + persCont->m_ptY.reserve(size); + persCont->m_ptZ.reserve(size); + persCont->m_depositEnergy.reserve(size); + persCont->m_partLink.reserve(size); + + // make convertor to handle HepMcParticleLinks + HepMcParticleLinkCnv_p3 hepMcPLCnv; + HepMcParticleLink_p3 persLink; // will use this as a temp object inside the loop + + // loop through container, filling pers object + MMSimHitCollection::const_iterator it = transCont->begin(), itEnd = transCont->end(); + for (; it != itEnd; ++it) { + persCont->m_MMId.push_back(it->MMId()); + persCont->m_globalTime.push_back(it->globalTime()); + // postStep Global + persCont->m_stX.push_back(it->globalPosition().x()); + persCont->m_stY.push_back(it->globalPosition().y()); + persCont->m_stZ.push_back(it->globalPosition().z()); + persCont->m_kineticEnergy.push_back(it->kineticEnergy()); + persCont->m_particleEncoding.push_back(it->particleEncoding()); + persCont->m_ptX.push_back(it->globalDirection().x()); + persCont->m_ptY.push_back(it->globalDirection().y()); + persCont->m_ptZ.push_back(it->globalDirection().z()); + persCont->m_depositEnergy.push_back(it->depositEnergy()); + + hepMcPLCnv.transToPers(&it->particleLink(),&persLink, log); + persCont->m_partLink.push_back(persLink); + + } +} + + +MMSimHitCollection* MMSimHitCollectionCnv_p3::createTransient(const Muon::MMSimHitCollection_p3* persObj, MsgStream &log) { + std::unique_ptr<MMSimHitCollection> trans(new MMSimHitCollection("DefaultCollectionName",persObj->m_globalTime.size())); + persToTrans(persObj, trans.get(), log); + return(trans.release()); +} + + +void MMSimHitCollectionCnv_p3::persToTrans(const Muon::MMSimHitCollection_p3* persCont, MMSimHitCollection* transCont, MsgStream &log) +{ + HepMcParticleLinkCnv_p3 hepMcPLCnv; + + for (unsigned int i = 0; i < persCont->m_MMId.size(); i++) { + //post + Amg::Vector3D position(persCont->m_stX[i], persCont->m_stY[i], persCont->m_stZ[i]); + Amg::Vector3D direction(persCont->m_ptX[i], persCont->m_ptY[i], persCont->m_ptZ[i]); + + HepMcParticleLink link; + hepMcPLCnv.persToTrans(&persCont->m_partLink[i],&link, log); + + transCont->Emplace(persCont->m_MMId[i], persCont->m_globalTime[i], position, persCont->m_particleEncoding[i], persCont->m_kineticEnergy[i], direction, persCont->m_depositEnergy[i], link); + } +} + diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/RPCSimHitCollectionCnv_p4.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/RPCSimHitCollectionCnv_p4.cxx new file mode 100644 index 000000000000..2c907afe2934 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/RPCSimHitCollectionCnv_p4.cxx @@ -0,0 +1,88 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#include "MuonSimEvent/RPCSimHit.h" +#include "MuonSimEventTPCnv/RPCSimHitCollectionCnv_p4.h" +#include "MuonSimEventTPCnv/RPCSimHitCollection_p4.h" +#include "GeneratorObjectsTPCnv/HepMcParticleLinkCnv_p3.h" + +//#include <cmath> +#include "GeoPrimitives/GeoPrimitives.h" + +// Gaudi +#include "GaudiKernel/MsgStream.h" +// Athena +#include "StoreGate/StoreGateSvc.h" + +void RPCSimHitCollectionCnv_p4::transToPers(const RPCSimHitCollection* transCont, Muon::RPCSimHitCollection_p4* persCont, MsgStream &log) +{ + // for reasons of efficiency, set size before hand + unsigned int size=transCont->size(); + persCont->m_RPCid.reserve(size); + persCont->m_globalTime.reserve(size); + persCont->m_stX.reserve(size); + persCont->m_stY.reserve(size); + persCont->m_stZ.reserve(size); + persCont->m_partLink.reserve(size); + persCont->m_stopX.reserve(size); + persCont->m_stopY.reserve(size); + persCont->m_stopZ.reserve(size); + persCont->m_energyDeposit.reserve(size); + persCont->m_stepLength.reserve(size); + persCont->m_particleEncoding.reserve(size); + persCont->m_kineticEnergy.reserve(size); + + // make convertor to handle HepMcParticleLinks + HepMcParticleLinkCnv_p3 hepMcPLCnv; + HepMcParticleLink_p3 persLink; // will use this as a temp object inside the loop + + // loop through container, filling pers object + RPCSimHitCollection::const_iterator it = transCont->begin(), itEnd = transCont->end(); + for (; it != itEnd; ++it) { + persCont->m_RPCid.push_back(it->RPCid()); + persCont->m_globalTime.push_back(it->globalTime()); + persCont->m_stX.push_back(it->localPosition().x()); + persCont->m_stY.push_back(it->localPosition().y()); + persCont->m_stZ.push_back(it->localPosition().z()); + + hepMcPLCnv.transToPers(&it->particleLink(),&persLink, log); + persCont->m_partLink.push_back(persLink); + persCont->m_stopX.push_back(it->postLocalPosition().x()); + persCont->m_stopY.push_back(it->postLocalPosition().y()); + persCont->m_stopZ.push_back(it->postLocalPosition().z()); + persCont->m_energyDeposit.push_back(it->energyDeposit()); + persCont->m_stepLength.push_back(it->stepLength()); + persCont->m_particleEncoding.push_back(it->particleEncoding()); + persCont->m_kineticEnergy.push_back(it->kineticEnergy()); + } +} + + +RPCSimHitCollection* RPCSimHitCollectionCnv_p4::createTransient(const Muon::RPCSimHitCollection_p4* persObj, MsgStream &log) { + std::unique_ptr<RPCSimHitCollection> trans(new RPCSimHitCollection("DefaultCollectionName",persObj->m_globalTime.size())); + persToTrans(persObj, trans.get(), log); + return(trans.release()); +} + + +void RPCSimHitCollectionCnv_p4::persToTrans(const Muon::RPCSimHitCollection_p4* persCont, RPCSimHitCollection* transCont, MsgStream &log) +{ + HepMcParticleLinkCnv_p3 hepMcPLCnv; + + //transCont->reserve(persCont->m_RPCid.size());//done in createTransient + for (unsigned int i = 0; i < persCont->m_RPCid.size(); i++) { + Amg::Vector3D position(persCont->m_stX[i], persCont->m_stY[i], persCont->m_stZ[i]); + Amg::Vector3D postPosition(persCont->m_stopX[i], persCont->m_stopY[i], persCont->m_stopZ[i]); + + + HepMcParticleLink link; + hepMcPLCnv.persToTrans(&persCont->m_partLink[i],&link, log); + + transCont->Emplace(persCont->m_RPCid[i], persCont->m_globalTime[i], position, + link, postPosition, + persCont->m_energyDeposit[i], persCont->m_stepLength[i], + persCont->m_particleEncoding[i], persCont->m_kineticEnergy[i]); + } +} + diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/TGCSimHitCollectionCnv_p5.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/TGCSimHitCollectionCnv_p5.cxx new file mode 100644 index 000000000000..c52727e725ed --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/TGCSimHitCollectionCnv_p5.cxx @@ -0,0 +1,87 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#include "MuonSimEvent/TGCSimHit.h" +#include "MuonSimEventTPCnv/TGCSimHitCollectionCnv_p5.h" +#include "MuonSimEventTPCnv/TGCSimHitCollection_p5.h" +#include "GeneratorObjectsTPCnv/HepMcParticleLinkCnv_p3.h" + +//#include <cmath> +#include "GeoPrimitives/GeoPrimitives.h" + +// Gaudi +#include "GaudiKernel/MsgStream.h" +// Athena +#include "StoreGate/StoreGateSvc.h" + +void TGCSimHitCollectionCnv_p5::transToPers(const TGCSimHitCollection* transCont, Muon::TGCSimHitCollection_p5* persCont, MsgStream &log) +{ + // for reasons of efficiency, set size before hand + unsigned int size=transCont->size(); + persCont->m_TGCid.reserve(size); + persCont->m_globalTime.reserve(size); + persCont->m_stX.reserve(size); + persCont->m_stY.reserve(size); + persCont->m_stZ.reserve(size); + persCont->m_enX.reserve(size); + persCont->m_enY.reserve(size); + persCont->m_enZ.reserve(size); + persCont->m_partLink.reserve(size); + persCont->m_energyDeposit.reserve(size); + persCont->m_stepLength.reserve(size); + persCont->m_particleEncoding.reserve(size); + persCont->m_kineticEnergy.reserve(size); + + // make convertor to handle HepMcParticleLinks + HepMcParticleLinkCnv_p3 hepMcPLCnv; + HepMcParticleLink_p3 persLink; // will use this as a temp object inside the loop + + // loop through container, filling pers object + TGCSimHitCollection::const_iterator it = transCont->begin(), itEnd = transCont->end(); + for (; it != itEnd; ++it) { + persCont->m_TGCid.push_back(it->TGCid()); + persCont->m_globalTime.push_back(it->globalTime()); + persCont->m_stX.push_back(it->localPosition().x()); + persCont->m_stY.push_back(it->localPosition().y()); + persCont->m_stZ.push_back(it->localPosition().z()); + persCont->m_enX.push_back(it->localDireCos().x()); + persCont->m_enY.push_back(it->localDireCos().y()); + persCont->m_enZ.push_back(it->localDireCos().z()); + persCont->m_energyDeposit.push_back(it->energyDeposit()); + persCont->m_stepLength.push_back(it->stepLength()); + persCont->m_particleEncoding.push_back(it->particleEncoding()); + persCont->m_kineticEnergy.push_back(it->kineticEnergy()); + + hepMcPLCnv.transToPers(&it->particleLink(),&persLink, log); + persCont->m_partLink.push_back(persLink); + } +} + + +TGCSimHitCollection* TGCSimHitCollectionCnv_p5::createTransient(const Muon::TGCSimHitCollection_p5* persObj, MsgStream &log) { + std::unique_ptr<TGCSimHitCollection> trans(new TGCSimHitCollection("DefaultCollectionName",persObj->m_globalTime.size())); + persToTrans(persObj, trans.get(), log); + return(trans.release()); +} + + +void TGCSimHitCollectionCnv_p5::persToTrans(const Muon::TGCSimHitCollection_p5* persCont, TGCSimHitCollection* transCont, MsgStream &log) +{ + HepMcParticleLinkCnv_p3 hepMcPLCnv; + + //transCont->reserve(persCont->m_TGCid.size()); //done in createTransient + for (unsigned int i = 0; i < persCont->m_TGCid.size(); i++) { + Amg::Vector3D position(persCont->m_stX[i], persCont->m_stY[i], persCont->m_stZ[i]); + Amg::Vector3D localDireCos(persCont->m_enX[i], persCont->m_enY[i], persCont->m_enZ[i]); + + HepMcParticleLink link; + hepMcPLCnv.persToTrans(&persCont->m_partLink[i],&link, log); + + transCont->Emplace(persCont->m_TGCid[i], persCont->m_globalTime[i], position, localDireCos, + link, + persCont->m_energyDeposit[i], persCont->m_stepLength[i], + persCont->m_particleEncoding[i], persCont->m_kineticEnergy[i]); + } +} + diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/sTGCSimHitCollectionCnv_p4.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/sTGCSimHitCollectionCnv_p4.cxx new file mode 100644 index 000000000000..a112d1c13365 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/src/sTGCSimHitCollectionCnv_p4.cxx @@ -0,0 +1,96 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#include "MuonSimEvent/sTGCSimHit.h" +#include "MuonSimEventTPCnv/sTGCSimHitCollectionCnv_p4.h" +#include "MuonSimEventTPCnv/sTGCSimHitCollection_p4.h" +#include "GeneratorObjectsTPCnv/HepMcParticleLinkCnv_p3.h" + +#include "GeoPrimitives/GeoPrimitives.h" + +// Gaudi +#include "GaudiKernel/MsgStream.h" +// Athena +#include "StoreGate/StoreGateSvc.h" + + +void sTGCSimHitCollectionCnv_p4::transToPers(const sTGCSimHitCollection* transCont, Muon::sTGCSimHitCollection_p4* persCont, MsgStream &log) +{ + // for reasons of efficiency, set size before hand + unsigned int size=transCont->size(); + persCont->m_sTGCId.reserve(size); + persCont->m_globalTime.reserve(size); + // postStep Global position + persCont->m_stX.reserve(size); + persCont->m_stY.reserve(size); + persCont->m_stZ.reserve(size); + persCont->m_particleEncoding.reserve(size); + persCont->m_depositEnergy.reserve(size); + persCont->m_partLink.reserve(size); + persCont->m_kineticEnergy.reserve(size); + // preStep global position + persCont->m_prestX.reserve(size); + persCont->m_prestY.reserve(size); + persCont->m_prestZ.reserve(size); + + // make convertor to handle HepMcParticleLinks + HepMcParticleLinkCnv_p3 hepMcPLCnv; + HepMcParticleLink_p3 persLink; // will use this as a temp object inside the loop + + // loop through container, filling pers object + sTGCSimHitCollection::const_iterator it = transCont->begin(), itEnd = transCont->end(); + for (; it != itEnd; ++it) { + persCont->m_sTGCId.push_back(it->sTGCId()); + persCont->m_globalTime.push_back(it->globalTime()); + // postStep Global position + persCont->m_stX.push_back(it->globalPosition().x()); + persCont->m_stY.push_back(it->globalPosition().y()); + persCont->m_stZ.push_back(it->globalPosition().z()); + persCont->m_particleEncoding.push_back(it->particleEncoding()); + persCont->m_depositEnergy.push_back(it->depositEnergy()); + persCont->m_kineticEnergy.push_back(it->kineticEnergy()); + // preStep global position + persCont->m_prestX.push_back(it->globalPrePosition().x()); + persCont->m_prestY.push_back(it->globalPrePosition().y()); + persCont->m_prestZ.push_back(it->globalPrePosition().z()); + + hepMcPLCnv.transToPers(&it->particleLink(),&persLink, log); + persCont->m_partLink.push_back(persLink); + + } +} + + +sTGCSimHitCollection* sTGCSimHitCollectionCnv_p4::createTransient(const Muon::sTGCSimHitCollection_p4* persObj, MsgStream &log) { + std::unique_ptr<sTGCSimHitCollection> trans(new sTGCSimHitCollection("DefaultCollectionName",persObj->m_globalTime.size())); + persToTrans(persObj, trans.get(), log); + return(trans.release()); +} + + +void sTGCSimHitCollectionCnv_p4::persToTrans(const Muon::sTGCSimHitCollection_p4* persCont, sTGCSimHitCollection* transCont, MsgStream &log) +{ + HepMcParticleLinkCnv_p3 hepMcPLCnv; + + //transCont->reserve(persCont->m_sTGCId.size());//done in createTransient + for (unsigned int i = 0; i < persCont->m_sTGCId.size(); i++) { + //postStep position + Amg::Vector3D position(persCont->m_stX[i], persCont->m_stY[i], persCont->m_stZ[i]); + // preStep position + Amg::Vector3D preposition(persCont->m_prestX[i], persCont->m_prestY[i], persCont->m_prestZ[i]); + // direction + Amg::Vector3D direction(persCont->m_stX[i] - persCont->m_prestX[i], + persCont->m_stY[i] - persCont->m_prestY[i], + persCont->m_stZ[i] - persCont->m_prestZ[i]); + // Normalize the direction vector if its length is greater than zero + if (direction.mag() > 0.0001) direction /= direction.mag(); + + HepMcParticleLink link; + hepMcPLCnv.persToTrans(&persCont->m_partLink[i],&link, log); + + transCont->Emplace(persCont->m_sTGCId[i], persCont->m_globalTime[i], position, + persCont->m_particleEncoding[i], direction, persCont->m_depositEnergy[i], link, + persCont->m_kineticEnergy[i], preposition); + } +} diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p1_test.cxx index d574cafd6310..f707c709b9e3 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p1_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p1_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p1_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -83,7 +85,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr>& genPartVec std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. CSCSimHitCollection dum ("coll"); @@ -92,7 +94,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr>& genPartVec CSCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, 11.5, Amg::Vector3D (12.5, 13.5, 14.5), Amg::Vector3D (15.5, 16.5, 17.5), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p2_test.cxx index 0e198a1fcd05..719f9a5f00ea 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p2_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p2_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p2_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -83,7 +85,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr>& genPartVec std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. CSCSimHitCollection dum ("coll"); @@ -92,7 +94,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr>& genPartVec CSCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, 11.5, Amg::Vector3D (12.5, 13.5, 14.5), Amg::Vector3D (15.5, 16.5, 17.5), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p3_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p3_test.cxx index 231c40072ddb..5ca1048c3c99 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p3_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p3_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p3_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -83,7 +85,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr>& genPartVec std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. CSCSimHitCollection dum ("coll"); @@ -92,7 +94,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr>& genPartVec CSCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, 11.5, Amg::Vector3D (12.5, 13.5, 14.5), Amg::Vector3D (15.5, 16.5, 17.5), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p4_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p4_test.cxx new file mode 100644 index 000000000000..533a3d817c87 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p4_test.cxx @@ -0,0 +1,120 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ +/** + * @file MuonSimEventTPCnv/test/CSCSimHitCollectionCnv_p4_test.cxx + * @author scott snyder <snyder@bnl.gov> + * @date Mar, 2016 + * @brief Tests for CSCSimHitCollectionCnv_p4. + */ + + +#undef NDEBUG +#include "MuonSimEventTPCnv/CSCSimHitCollectionCnv_p4.h" +#include "CxxUtils/checker_macros.h" +#include "TestTools/leakcheck.h" +#include <cassert> +#include <iostream> + +#include "TruthUtils/MagicNumbers.h" +#include "GeneratorObjectsTPCnv/initMcEventCollection.h" +#include "AtlasHepMC/GenEvent.h" +#include "AtlasHepMC/GenParticle.h" +#include "AtlasHepMC/Operators.h" + + +void compare (const HepMcParticleLink& p1, + const HepMcParticleLink& p2) +{ + assert ( p1.isValid() == p2.isValid() ); + assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); + assert ( p1.eventIndex() == p2.eventIndex() ); + assert ( p1.cptr() == p2.cptr() ); + assert ( p1 == p2 ); +} + +void compare (const CSCSimHit& p1, + const CSCSimHit& p2) +{ + assert (p1.CSCid() == p2.CSCid()); + assert (p1.globalTime() == p2.globalTime()); + assert (p1.energyDeposit() == p2.energyDeposit()); + assert (p1.getHitStart() == p2.getHitStart()); + assert (p1.getHitEnd() == p2.getHitEnd()); + assert (p1.particleID() == p2.particleID()); + compare(p1.particleLink(), p2.particleLink()); + assert (p1.particleLink() == p2.particleLink()); + assert (p1.kineticEnergy() == p2.kineticEnergy()); +} + + +void compare (const CSCSimHitCollection& p1, + const CSCSimHitCollection& p2) +{ + //assert (p1.Name() == p2.Name()); + assert (p1.size() == p2.size()); + for (size_t i=0; i < p1.size(); i++) + compare (p1[i], p2[i]); +} + + +void testit (const CSCSimHitCollection& trans1) +{ + MsgStream log (nullptr, "test"); + CSCSimHitCollectionCnv_p4 cnv; + Muon::CSCSimHitCollection_p4 pers; + cnv.transToPers (&trans1, &pers, log); + CSCSimHitCollection trans2; + cnv.persToTrans (&pers, &trans2, log); + + compare (trans1, trans2); +} + +int lundCode(int pdgid) { + if(pdgid==22) { return 1; } + if(pdgid==11) { return 2; } + if(pdgid==-11) { return 3; } + if(pdgid==13) { return 5; } + if(pdgid==-13) { return 6; } + return -1; +} + +void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr>& genPartVector) +{ + std::cout << "test1\n"; + auto particle = genPartVector.at(0); + // Create HepMcParticleLink outside of leak check. + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + assert(dummyHMPL.cptr()==particle); + // Create DVL info outside of leak check. + CSCSimHitCollection dum ("coll"); + Athena_test::Leakcheck check; + + CSCSimHitCollection trans1 ("coll"); + for (int i=0; i < 10; i++) { + auto pGenParticle = genPartVector.at(i); + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + trans1.Emplace (123, 10.5, 11.5, + Amg::Vector3D (12.5, 13.5, 14.5), + Amg::Vector3D (15.5, 16.5, 17.5), + lundCode(pGenParticle->pdg_id()), trkLink, 20.5 + ); + } + + testit (trans1); +} + + +int main ATLAS_NOT_THREAD_SAFE () +{ + ISvcLocator* pSvcLoc = nullptr; + std::vector<HepMC::GenParticlePtr> genPartVector; + if (!Athena_test::initMcEventCollection(pSvcLoc,genPartVector)) { + std::cerr << "This test can not be run" << std::endl; + return 0; + } + + test1(genPartVector); + return 0; +} diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p1_test.cxx index 7583f85426ce..90922b16a447 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p1_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p1_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p1_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -80,7 +82,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. GenericMuonSimHitCollection dum ("coll"); @@ -89,7 +91,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect GenericMuonSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, 11.5, Amg::Vector3D (12.5, 13.5, 14.5), Amg::Vector3D (15.5, 16.5, 17.5), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p2_test.cxx index 5ba0255785b7..0e340faebf4c 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p2_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p2_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ // $Id$ @@ -17,6 +17,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -80,7 +82,7 @@ void test1(std::vector<HepMC::GenParticlePtr> genPartVector) std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. GenericMuonSimHitCollection dum ("coll"); @@ -88,7 +90,7 @@ void test1(std::vector<HepMC::GenParticlePtr> genPartVector) GenericMuonSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, 11.5, Amg::Vector3D (12.5, 13.5, 14.5), Amg::Vector3D (15.5, 16.5, 17.5), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p3_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p3_test.cxx new file mode 100644 index 000000000000..c0e6a081414c --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p3_test.cxx @@ -0,0 +1,120 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +// $Id$ +/** + * @file MuonSimEventTPCnv/test/GenericMuonSimHitCollectionCnv_p3_test.cxx + * @author scott snyder <snyder@bnl.gov> + * @date Mar, 2016 + * @brief Tests for GenericMuonSimHitCollectionCnv_p3. + */ + + +#undef NDEBUG +#include "MuonSimEventTPCnv/GenericMuonSimHitCollectionCnv_p3.h" +#include "TestTools/leakcheck.h" +#include <cassert> +#include <iostream> + +#include "TruthUtils/MagicNumbers.h" +#include "GeneratorObjectsTPCnv/initMcEventCollection.h" +#include "AtlasHepMC/GenEvent.h" +#include "AtlasHepMC/GenParticle.h" +#include "AtlasHepMC/Operators.h" + +void compare (const HepMcParticleLink& p1, + const HepMcParticleLink& p2) +{ + assert ( p1.isValid() == p2.isValid() ); + assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); + assert ( p1.eventIndex() == p2.eventIndex() ); + assert ( p1.cptr() == p2.cptr() ); + assert ( p1 == p2 ); +} + +void compare (const GenericMuonSimHit& p1, + const GenericMuonSimHit& p2) +{ + assert (p1.GenericId() == p2.GenericId()); + assert (p1.globalTime() == p2.globalTime()); + assert (p1.globalpreTime() == p2.globalpreTime()); + assert (p1.globalPosition() == p2.globalPosition()); + assert (p1.localPosition() == p2.localPosition()); + assert (p1.globalPrePosition() == p2.globalPrePosition()); + assert (p1.localPrePosition() == p2.localPrePosition()); + assert (p1.particleEncoding() == p2.particleEncoding()); + assert (p1.kineticEnergy() == p2.kineticEnergy()); + assert (p1.globalDirection() == p2.globalDirection()); + assert (p1.depositEnergy() == p2.depositEnergy()); + assert (p1.StepLength() == p2.StepLength()); + compare(p1.particleLink(), p2.particleLink()); + assert (p1.particleLink() == p2.particleLink()); +} + + +void compare (const GenericMuonSimHitCollection& p1, + const GenericMuonSimHitCollection& p2) +{ + //assert (p1.Name() == p2.Name()); + assert (p1.size() == p2.size()); + for (size_t i=0; i < p1.size(); i++) + compare (p1[i], p2[i]); +} + + +void testit (const GenericMuonSimHitCollection& trans1) +{ + MsgStream log (nullptr, "test"); + GenericMuonSimHitCollectionCnv_p3 cnv; + Muon::GenericMuonSimHitCollection_p3 pers; + cnv.transToPers (&trans1, &pers, log); + GenericMuonSimHitCollection trans2; + cnv.persToTrans (&pers, &trans2, log); + + compare (trans1, trans2); +} + + +void test1(std::vector<HepMC::GenParticlePtr> genPartVector) +{ + std::cout << "test1\n"; + auto particle = genPartVector.at(0); + // Create HepMcParticleLink outside of leak check. + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + assert(dummyHMPL.cptr()==particle); + // Create DVL info outside of leak check. + GenericMuonSimHitCollection dum ("coll"); + + GenericMuonSimHitCollection trans1 ("coll"); + for (int i=0; i < 10; i++) { + auto pGenParticle = genPartVector.at(i); + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + trans1.Emplace (123, 10.5, 11.5, + Amg::Vector3D (12.5, 13.5, 14.5), + Amg::Vector3D (15.5, 16.5, 17.5), + Amg::Vector3D (18.5, 19.5, 20.5), + Amg::Vector3D (21.5, 22.5, 23.5), + pGenParticle->pdg_id(), 25.5, + Amg::Vector3D (26.5, 27.5, 28.5), + 29.5, 30.5, trkLink + ); + } + + testit (trans1); +} + + +int main() +{ + ISvcLocator* pSvcLoc = nullptr; + std::vector<HepMC::GenParticlePtr> genPartVector; + if (!Athena_test::initMcEventCollection(pSvcLoc,genPartVector)) { + std::cerr << "This test can not be run" << std::endl; + return 0; + } + + test1(genPartVector); + return 0; +} diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p1_test.cxx index 5577ac6809c7..4026af3f7835 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p1_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p1_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p1_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -76,7 +78,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. MDTSimHitCollection dum ("coll"); @@ -85,7 +87,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect MDTSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, 11.5, Amg::Vector3D (12.5, 13.5, 14.5), trkLink, 19.5, 20.5, pGenParticle->pdg_id(), 22.5 diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p2_test.cxx index 4a893ef4aceb..ca5b542d716b 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p2_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p2_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p2_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -76,7 +78,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. MDTSimHitCollection dum ("coll"); @@ -85,7 +87,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect MDTSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, 11.5, Amg::Vector3D (12.5, 13.5, 14.5), trkLink, 19.5, 20.5, pGenParticle->pdg_id(), 22.5 diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p3_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p3_test.cxx index e4a1507e9e86..50daf5f66b66 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p3_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p3_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p3_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -76,7 +78,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. MDTSimHitCollection dum ("coll"); @@ -85,7 +87,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect MDTSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, 11.5, Amg::Vector3D (12.5, 13.5, 14.5), trkLink, 19.5, 20.5, pGenParticle->pdg_id(), 22.5 diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p4_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p4_test.cxx new file mode 100644 index 000000000000..7958c6f154f3 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p4_test.cxx @@ -0,0 +1,112 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ +/** + * @file MuonSimEventTPCnv/test/MDTSimHitCollectionCnv_p4_test.cxx + * @author scott snyder <snyder@bnl.gov> + * @date Mar, 2016 + * @brief Tests for MDTSimHitCollectionCnv_p4. + */ + + +#undef NDEBUG +#include "MuonSimEventTPCnv/MDTSimHitCollectionCnv_p4.h" +#include "CxxUtils/checker_macros.h" +#include "TestTools/leakcheck.h" +#include <cassert> +#include <iostream> + +#include "TruthUtils/MagicNumbers.h" +#include "GeneratorObjectsTPCnv/initMcEventCollection.h" +#include "AtlasHepMC/GenEvent.h" +#include "AtlasHepMC/GenParticle.h" +#include "AtlasHepMC/Operators.h" + + +void compare (const HepMcParticleLink& p1, + const HepMcParticleLink& p2) +{ + assert ( p1.isValid() == p2.isValid() ); + assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); + assert ( p1.eventIndex() == p2.eventIndex() ); + assert ( p1.cptr() == p2.cptr() ); + assert ( p1 == p2 ); +} + +void compare (const MDTSimHit& p1, + const MDTSimHit& p2) +{ + assert (p1.MDTid() == p2.MDTid()); + assert (p1.globalTime() == p2.globalTime()); + assert (p1.driftRadius() == p2.driftRadius()); + assert (p1.localPosition() == p2.localPosition()); + compare(p1.particleLink(), p2.particleLink()); + assert (p1.particleLink() == p2.particleLink()); + assert (p1.stepLength() == p2.stepLength()); + assert (p1.energyDeposit() == p2.energyDeposit()); + assert (p1.particleEncoding() == p2.particleEncoding()); + assert (p1.kineticEnergy() == p2.kineticEnergy()); +} + + +void compare (const MDTSimHitCollection& p1, + const MDTSimHitCollection& p2) +{ + //assert (p1.Name() == p2.Name()); + assert (p1.size() == p2.size()); + for (size_t i=0; i < p1.size(); i++) + compare (p1[i], p2[i]); +} + + +void testit (const MDTSimHitCollection& trans1) +{ + MsgStream log (nullptr, "test"); + MDTSimHitCollectionCnv_p4 cnv; + Muon::MDTSimHitCollection_p4 pers; + cnv.transToPers (&trans1, &pers, log); + MDTSimHitCollection trans2; + cnv.persToTrans (&pers, &trans2, log); + + compare (trans1, trans2); +} + + +void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVector) +{ + std::cout << "test1\n"; + auto particle = genPartVector.at(0); + // Create HepMcParticleLink outside of leak check. + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + assert(dummyHMPL.cptr()==particle); + // Create DVL info outside of leak check. + MDTSimHitCollection dum ("coll"); + Athena_test::Leakcheck check; + + MDTSimHitCollection trans1 ("coll"); + for (int i=0; i < 10; i++) { + auto pGenParticle = genPartVector.at(i); + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + trans1.Emplace (123, 10.5, 11.5, + Amg::Vector3D (12.5, 13.5, 14.5), + trkLink, 19.5, 20.5, pGenParticle->pdg_id(), 22.5 + ); + } + + testit (trans1); +} + + +int main ATLAS_NOT_THREAD_SAFE () +{ + ISvcLocator* pSvcLoc = nullptr; + std::vector<HepMC::GenParticlePtr> genPartVector; + if (!Athena_test::initMcEventCollection(pSvcLoc,genPartVector)) { + std::cerr << "This test can not be run" << std::endl; + return 0; + } + + test1(genPartVector); + return 0; +} diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p1_test.cxx index a211a3e66192..146acc461633 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p1_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p1_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #undef NDEBUG @@ -8,6 +8,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -19,6 +20,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -67,7 +69,7 @@ void test1(std::vector<HepMC::GenParticlePtr> genPartVector) std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. MMSimHitCollection dum ("coll"); @@ -75,7 +77,7 @@ void test1(std::vector<HepMC::GenParticlePtr> genPartVector) MMSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 14.5), pGenParticle->pdg_id(), 25.5, diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p2_test.cxx index 2c82d44aed7c..d4bbf891ef31 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p2_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p2_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ #undef NDEBUG @@ -8,6 +8,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -18,6 +19,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -66,7 +68,7 @@ void test1(std::vector<HepMC::GenParticlePtr> genPartVector) std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. MMSimHitCollection dum ("coll"); @@ -74,7 +76,7 @@ void test1(std::vector<HepMC::GenParticlePtr> genPartVector) MMSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 14.5), pGenParticle->pdg_id(), 25.5, diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p3_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p3_test.cxx new file mode 100644 index 000000000000..3b9e296b561c --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/MMSimHitCollectionCnv_p3_test.cxx @@ -0,0 +1,103 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + +#undef NDEBUG +#include "MuonSimEventTPCnv/MMSimHitCollectionCnv_p3.h" +#include "TestTools/leakcheck.h" +#include <cassert> +#include <iostream> + +#include "TruthUtils/MagicNumbers.h" +#include "GeneratorObjectsTPCnv/initMcEventCollection.h" +#include "AtlasHepMC/GenEvent.h" +#include "AtlasHepMC/GenParticle.h" +#include "AtlasHepMC/Operators.h" + +void compare (const HepMcParticleLink& p1, + const HepMcParticleLink& p2) +{ + assert ( p1.isValid() == p2.isValid() ); + assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); + assert ( p1.eventIndex() == p2.eventIndex() ); + assert ( p1.cptr() == p2.cptr() ); + assert ( p1 == p2 ); +} + +void compare (const MMSimHit& p1, + const MMSimHit& p2) +{ + assert (p1.MMId() == p2.MMId()); + assert (p1.globalTime() == p2.globalTime()); + assert (p1.globalPosition() == p2.globalPosition()); + assert (p1.particleEncoding() == p2.particleEncoding()); + assert (p1.kineticEnergy() == p2.kineticEnergy()); + assert (p1.globalDirection() == p2.globalDirection()); + assert (p1.depositEnergy() == p2.depositEnergy()); + compare(p1.particleLink(), p2.particleLink()); + assert (p1.particleLink() == p2.particleLink()); +} + + +void compare (const MMSimHitCollection& p1, + const MMSimHitCollection& p2) +{ + //assert (p1.Name() == p2.Name()); + assert (p1.size() == p2.size()); + for (size_t i=0; i < p1.size(); i++) + compare (p1[i], p2[i]); +} + + +void testit (const MMSimHitCollection& trans1) +{ + MsgStream log (nullptr, "test"); + MMSimHitCollectionCnv_p3 cnv; + Muon::MMSimHitCollection_p3 pers; + cnv.transToPers (&trans1, &pers, log); + MMSimHitCollection trans2; + cnv.persToTrans (&pers, &trans2, log); + + compare (trans1, trans2); +} + + +void test1(std::vector<HepMC::GenParticlePtr> genPartVector) +{ + std::cout << "test1\n"; + auto particle = genPartVector.at(0); + // Create HepMcParticleLink outside of leak check. + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + assert(dummyHMPL.cptr()==particle); + // Create DVL info outside of leak check. + MMSimHitCollection dum ("coll"); + + MMSimHitCollection trans1 ("coll"); + for (int i=0; i < 10; i++) { + auto pGenParticle = genPartVector.at(i); + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + trans1.Emplace (123, 10.5, + Amg::Vector3D (12.5, 13.5, 14.5), + pGenParticle->pdg_id(), 25.5, + Amg::Vector3D (26.5, 27.5, 28.5), + 29.5, trkLink + ); + } + + testit (trans1); +} + + +int main() +{ + ISvcLocator* pSvcLoc = nullptr; + std::vector<HepMC::GenParticlePtr> genPartVector; + if (!Athena_test::initMcEventCollection(pSvcLoc,genPartVector)) { + std::cerr << "This test can not be run" << std::endl; + return 0; + } + + test1(genPartVector); + return 0; +} diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p1_test.cxx index 49008b85746b..bf049f13ff0b 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p1_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p1_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p1_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -76,7 +78,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. RPCSimHitCollection dum ("coll"); @@ -85,7 +87,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect RPCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 14.5), trkLink, diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p2_test.cxx index 66ad4c9f12a7..ff7a08b5075f 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p2_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p2_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p2_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -76,7 +78,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. RPCSimHitCollection dum ("coll"); @@ -85,7 +87,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect RPCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 14.5), trkLink, diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p3_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p3_test.cxx index 42bb37a6f676..b7e4b85b3e8f 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p3_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p3_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p2_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -76,7 +78,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. RPCSimHitCollection dum ("coll"); @@ -85,7 +87,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect RPCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 14.5), trkLink, diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p4_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p4_test.cxx new file mode 100644 index 000000000000..79a7b332e617 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p4_test.cxx @@ -0,0 +1,113 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ +/** + * @file MuonSimEventTPCnv/test/RPCSimHitCollectionCnv_p3_test.cxx + * @author scott snyder <snyder@bnl.gov> + * @date Mar, 2016 + * @brief Tests for RPCSimHitCollectionCnv_p4. + */ + + +#undef NDEBUG +#include "MuonSimEventTPCnv/RPCSimHitCollectionCnv_p4.h" +#include "CxxUtils/checker_macros.h" +#include "TestTools/leakcheck.h" +#include <cassert> +#include <iostream> + +#include "TruthUtils/MagicNumbers.h" +#include "GeneratorObjectsTPCnv/initMcEventCollection.h" +#include "AtlasHepMC/GenEvent.h" +#include "AtlasHepMC/GenParticle.h" +#include "AtlasHepMC/Operators.h" + + +void compare (const HepMcParticleLink& p1, + const HepMcParticleLink& p2) +{ + assert ( p1.isValid() == p2.isValid() ); + assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); + assert ( p1.eventIndex() == p2.eventIndex() ); + assert ( p1.cptr() == p2.cptr() ); + assert ( p1 == p2 ); +} + +void compare (const RPCSimHit& p1, + const RPCSimHit& p2) +{ + assert (p1.RPCid() == p2.RPCid()); + assert (p1.globalTime() == p2.globalTime()); + assert (p1.localPosition() == p2.localPosition()); + compare(p1.particleLink(), p2.particleLink()); + assert (p1.particleLink() == p2.particleLink()); + assert (p1.postLocalPosition() == p2.postLocalPosition()); + assert (p1.energyDeposit() == p2.energyDeposit()); + assert (p1.stepLength() == p2.stepLength()); + assert (p1.particleEncoding() == p2.particleEncoding()); + assert (p1.kineticEnergy() == p2.kineticEnergy()); +} + + +void compare (const RPCSimHitCollection& p1, + const RPCSimHitCollection& p2) +{ + //assert (p1.Name() == p2.Name()); + assert (p1.size() == p2.size()); + for (size_t i=0; i < p1.size(); i++) + compare (p1[i], p2[i]); +} + + +void testit (const RPCSimHitCollection& trans1) +{ + MsgStream log (nullptr, "test"); + RPCSimHitCollectionCnv_p4 cnv; + Muon::RPCSimHitCollection_p4 pers; + cnv.transToPers (&trans1, &pers, log); + RPCSimHitCollection trans2; + cnv.persToTrans (&pers, &trans2, log); + + compare (trans1, trans2); +} + + +void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVector) +{ + std::cout << "test1\n"; + auto particle = genPartVector.at(0); + // Create HepMcParticleLink outside of leak check. + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + assert(dummyHMPL.cptr()==particle); + // Create DVL info outside of leak check. + RPCSimHitCollection dum ("coll"); + Athena_test::Leakcheck check; + + RPCSimHitCollection trans1 ("coll"); + for (int i=0; i < 10; i++) { + auto pGenParticle = genPartVector.at(i); + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + trans1.Emplace (123, 10.5, + Amg::Vector3D (12.5, 13.5, 14.5), + trkLink, + Amg::Vector3D (16.5, 17.5, 18.5), + 19.5, 20.5, pGenParticle->pdg_id(), 22.5); + } + + testit (trans1); +} + + +int main ATLAS_NOT_THREAD_SAFE () +{ + ISvcLocator* pSvcLoc = nullptr; + std::vector<HepMC::GenParticlePtr> genPartVector; + if (!Athena_test::initMcEventCollection(pSvcLoc,genPartVector)) { + std::cerr << "This test can not be run" << std::endl; + return 0; + } + + test1(genPartVector); + return 0; +} diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p1_test.cxx index d95b544bc7aa..93e2c81e0427 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p1_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p1_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p1_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -76,7 +78,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. TGCSimHitCollection dum ("coll"); @@ -85,7 +87,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect TGCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 14.5), Amg::Vector3D (16.5, 17.5, 18.5), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p2_test.cxx index 12fc7ccb2ec3..73914ac92f60 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p2_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p2_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p2_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -76,7 +78,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. TGCSimHitCollection dum ("coll"); @@ -85,7 +87,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect TGCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 14.5), Amg::Vector3D (16.5, 17.5, 18.5), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p3_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p3_test.cxx index 2334259115af..8c39774e8f86 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p3_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p3_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p3_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -76,7 +78,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr>& genPartVec std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. TGCSimHitCollection dum ("coll"); @@ -85,7 +87,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr>& genPartVec TGCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 14.5), Amg::Vector3D (16.5, 17.5, 18.5), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p4_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p4_test.cxx index efe6fd290476..9ff2029b01bb 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p4_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p4_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p4_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -27,6 +28,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -76,7 +78,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. TGCSimHitCollection dum ("coll"); @@ -85,7 +87,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect TGCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 14.5), Amg::Vector3D (16.5, 17.5, 18.5), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p5_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p5_test.cxx new file mode 100644 index 000000000000..0eed0a182755 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p5_test.cxx @@ -0,0 +1,112 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ +/** + * @file MuonSimEventTPCnv/test/TGCSimHitCollectionCnv_p5_test.cxx + * @author scott snyder <snyder@bnl.gov> + * @date Mar, 2016 + * @brief Tests for TGCSimHitCollectionCnv_p5. + */ + + +#undef NDEBUG +#include "MuonSimEventTPCnv/TGCSimHitCollectionCnv_p5.h" +#include "CxxUtils/checker_macros.h" +#include "TestTools/leakcheck.h" +#include <cassert> +#include <iostream> + +#include "TruthUtils/MagicNumbers.h" +#include "GeneratorObjectsTPCnv/initMcEventCollection.h" +#include "AtlasHepMC/GenEvent.h" +#include "AtlasHepMC/GenParticle.h" +#include "AtlasHepMC/Operators.h" + + +void compare (const HepMcParticleLink& p1, + const HepMcParticleLink& p2) +{ + assert ( p1.isValid() == p2.isValid() ); + assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); + assert ( p1.eventIndex() == p2.eventIndex() ); + assert ( p1.cptr() == p2.cptr() ); + assert ( p1 == p2 ); +} + +void compare (const TGCSimHit& p1, + const TGCSimHit& p2) +{ + assert (p1.TGCid() == p2.TGCid()); + assert (p1.globalTime() == p2.globalTime()); + assert (p1.localPosition() == p2.localPosition()); + assert (p1.localDireCos() == p2.localDireCos()); + compare(p1.particleLink(), p2.particleLink()); + assert (p1.particleLink() == p2.particleLink()); + assert (p1.energyDeposit() == p2.energyDeposit()); + assert (p1.stepLength() == p2.stepLength()); + assert (p1.particleEncoding() == p2.particleEncoding()); + assert (p1.kineticEnergy() == p2.kineticEnergy()); +} + + +void compare (const TGCSimHitCollection& p1, + const TGCSimHitCollection& p2) +{ + //assert (p1.Name() == p2.Name()); + assert (p1.size() == p2.size()); + for (size_t i=0; i < p1.size(); i++) + compare (p1[i], p2[i]); +} + + +void testit (const TGCSimHitCollection& trans1) +{ + MsgStream log (nullptr, "test"); + TGCSimHitCollectionCnv_p5 cnv; + Muon::TGCSimHitCollection_p5 pers; + cnv.transToPers (&trans1, &pers, log); + TGCSimHitCollection trans2; + cnv.persToTrans (&pers, &trans2, log); + + compare (trans1, trans2); +} + + +void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVector) +{ + std::cout << "test1\n"; + auto particle = genPartVector.at(0); + // Create HepMcParticleLink outside of leak check. + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + assert(dummyHMPL.cptr()==particle); + // Create DVL info outside of leak check. + TGCSimHitCollection dum ("coll"); + Athena_test::Leakcheck check; + + TGCSimHitCollection trans1 ("coll"); + for (int i=0; i < 10; i++) { + auto pGenParticle = genPartVector.at(i); + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + trans1.Emplace (123, 10.5, + Amg::Vector3D (12.5, 13.5, 14.5), + Amg::Vector3D (16.5, 17.5, 18.5), + trkLink, 20.5, 21.5, pGenParticle->pdg_id(), 23.5); + } + + testit (trans1); +} + + +int main ATLAS_NOT_THREAD_SAFE () +{ + ISvcLocator* pSvcLoc = nullptr; + std::vector<HepMC::GenParticlePtr> genPartVector; + if (!Athena_test::initMcEventCollection(pSvcLoc,genPartVector)) { + std::cerr << "This test can not be run" << std::endl; + return 0; + } + + test1(genPartVector); + return 0; +} diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p1_test.cxx index ce78468b97db..2d0b80a0ae11 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p1_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p1_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p1_test.cxx @@ -16,6 +16,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -26,6 +27,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -73,7 +75,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. sTGCSimHitCollection dum ("coll"); @@ -82,7 +84,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect sTGCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 14.5), pGenParticle->pdg_id(), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p2_test.cxx index 0eb3eec6aae8..51103bea1fbd 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p2_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p2_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ /** * @file MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p2_test.cxx @@ -24,6 +24,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -34,6 +35,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -82,7 +84,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. sTGCSimHitCollection dum ("coll"); @@ -91,7 +93,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect sTGCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 14.5), pGenParticle->pdg_id(), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p3_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p3_test.cxx index 4c664ecef99f..a51f84dda51d 100644 --- a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p3_test.cxx +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p3_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration */ @@ -10,6 +10,7 @@ #include <cassert> #include <iostream> +#include "TruthUtils/MagicNumbers.h" #include "GeneratorObjectsTPCnv/initMcEventCollection.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" @@ -21,6 +22,7 @@ void compare (const HepMcParticleLink& p1, { assert ( p1.isValid() == p2.isValid() ); assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); assert ( p1.eventIndex() == p2.eventIndex() ); assert ( p1.cptr() == p2.cptr() ); assert ( p1 == p2 ); @@ -71,7 +73,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect std::cout << "test1\n"; auto particle = genPartVector.at(0); // Create HepMcParticleLink outside of leak check. - HepMcParticleLink dummyHMPL(HepMC::barcode(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); assert(dummyHMPL.cptr()==particle); // Create DVL info outside of leak check. sTGCSimHitCollection dum ("coll"); @@ -80,7 +82,7 @@ void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVect sTGCSimHitCollection trans1 ("coll"); for (int i=0; i < 10; i++) { auto pGenParticle = genPartVector.at(i); - HepMcParticleLink trkLink(HepMC::barcode(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_BARCODE); // FIXME barcode-based + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); trans1.Emplace (123, 10.5, Amg::Vector3D (12.5, 13.5, 15.5), pGenParticle->pdg_id(), diff --git a/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p4_test.cxx b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p4_test.cxx new file mode 100644 index 000000000000..e109bc6e5406 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonSimEventTPCnv/test/sTGCSimHitCollectionCnv_p4_test.cxx @@ -0,0 +1,109 @@ +/* + Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +*/ + + +#undef NDEBUG +#include "MuonSimEventTPCnv/sTGCSimHitCollectionCnv_p4.h" +#include "CxxUtils/checker_macros.h" +#include "TestTools/leakcheck.h" +#include <cassert> +#include <iostream> + +#include "TruthUtils/MagicNumbers.h" +#include "GeneratorObjectsTPCnv/initMcEventCollection.h" +#include "AtlasHepMC/GenEvent.h" +#include "AtlasHepMC/GenParticle.h" +#include "AtlasHepMC/Operators.h" + + +void compare (const HepMcParticleLink& p1, + const HepMcParticleLink& p2) +{ + assert ( p1.isValid() == p2.isValid() ); + assert ( HepMC::barcode(p1) == HepMC::barcode(p2) ); + assert ( p1.id() == p2.id() ); + assert ( p1.eventIndex() == p2.eventIndex() ); + assert ( p1.cptr() == p2.cptr() ); + assert ( p1 == p2 ); +} + + +void compare (const sTGCSimHit& p1, + const sTGCSimHit& p2) +{ + assert (p1.sTGCId() == p2.sTGCId()); + assert (p1.globalTime() == p2.globalTime()); + assert (p1.globalPosition() == p2.globalPosition()); + assert (p1.particleEncoding() == p2.particleEncoding()); + assert (p1.globalDirection() == p2.globalDirection()); + assert (p1.depositEnergy() == p2.depositEnergy()); + compare(p1.particleLink(), p2.particleLink()); + assert (p1.particleLink() == p2.particleLink()); + assert (p1.kineticEnergy() == p2.kineticEnergy()); + assert (p1.globalPrePosition() == p2.globalPrePosition()); +} + + +void compare (const sTGCSimHitCollection& p1, + const sTGCSimHitCollection& p2) +{ + //assert (p1.Name() == p2.Name()); + assert (p1.size() == p2.size()); + for (size_t i=0; i < p1.size(); i++) + compare (p1[i], p2[i]); +} + + +void testit (const sTGCSimHitCollection& trans1) +{ + MsgStream log (nullptr, "test"); + sTGCSimHitCollectionCnv_p4 cnv; + Muon::sTGCSimHitCollection_p4 pers; + cnv.transToPers (&trans1, &pers, log); + sTGCSimHitCollection trans2; + cnv.persToTrans (&pers, &trans2, log); + + compare (trans1, trans2); +} + + +void test1 ATLAS_NOT_THREAD_SAFE (std::vector<HepMC::GenParticlePtr> genPartVector) +{ + std::cout << "test1\n"; + auto particle = genPartVector.at(0); + // Create HepMcParticleLink outside of leak check. + HepMcParticleLink dummyHMPL(HepMC::uniqueID(particle),particle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + assert(dummyHMPL.cptr()==particle); + // Create DVL info outside of leak check. + sTGCSimHitCollection dum ("coll"); + Athena_test::Leakcheck check; + + sTGCSimHitCollection trans1 ("coll"); + for (int i=0; i < 10; i++) { + auto pGenParticle = genPartVector.at(i); + HepMcParticleLink trkLink(HepMC::uniqueID(pGenParticle),pGenParticle->parent_event()->event_number(),HepMcParticleLink::IS_EVENTNUM,HepMcParticleLink::IS_ID); + trans1.Emplace (123, 10.5, + Amg::Vector3D (12.5, 13.5, 15.5), + pGenParticle->pdg_id(), + Amg::Vector3D (0.0, 0.0, 1.0), + 19.5, trkLink, 22.5, + Amg::Vector3D (12.5, 13.5, 14.5)); + } + + testit (trans1); +} + + +int main ATLAS_NOT_THREAD_SAFE () +{ + ISvcLocator* pSvcLoc = nullptr; + std::vector<HepMC::GenParticlePtr> genPartVector; + if (!Athena_test::initMcEventCollection(pSvcLoc,genPartVector)) { + std::cerr << "This test can not be run" << std::endl; + return 0; + } + + test1(genPartVector); + return 0; +} -- GitLab