13 #include "GaudiKernel/ISvcLocator.h" 
   14 #include "GaudiKernel/MsgStream.h" 
   15 #include "GaudiKernel/StatusCode.h" 
   20 #include "Identifier/Identifier.h" 
   30   ISvcLocator* svcLocator = Gaudi::svcLocator();
 
   33   SmartIF<StoreGateSvc> 
detStore{svcLocator->service(
"DetectorStore")};
 
   39   return StatusCode::SUCCESS;
 
   43     const Trans_t* transient_container, 
Pers_t* persistent_container,
 
   47     if (this->
initialize(log) != StatusCode::SUCCESS) {
 
   48       log << 
MSG::FATAL << 
"Could not initialize HGTD_ALTIROC_RDO_ContainerCnv_p1 " 
   54   size_t n_collections = transient_container->numberOfCollections();
 
   55   Trans_t::const_iterator container_itr = transient_container->begin();
 
   59   size_t collection_separator_index_begin = 0;
 
   60   size_t total_n_clusters = 0;
 
   62   for (
size_t coll_i = 0; coll_i < n_collections; coll_i++, ++container_itr) {
 
   65     size_t collection_size = collection.
size();
 
   74     total_n_clusters += collection_size;
 
   75     persistent_container->
m_rdo_list.resize(total_n_clusters);
 
   79           << collection_size << 
endmsg;
 
   82     for (
size_t rdo_i = 0; rdo_i < collection_size; rdo_i++) {
 
   86                 .at(rdo_i + collection_separator_index_begin));
 
   94     collection_separator_index_begin += collection.
size();
 
   99         << 
"Writing HGTD_ClusterContainer to HGTD_ClusterContainer_p1 done" 
  108     const Pers_t* persistent_container, 
Trans_t* transient_container,
 
  112     if (this->
initialize(log) != StatusCode::SUCCESS) {
 
  113       log << 
MSG::FATAL << 
"Could not initialize HGTD_ALTIROC_RDO_ContainerCnv_p1 " 
  118   std::unique_ptr<HGTD_ALTIROC_RDO_Collection> collection = 
nullptr;
 
  121   size_t collection_separator_index_begin = 0;
 
  123   for (
size_t coll_i = 0;
 
  131     collection = std::make_unique<HGTD_ALTIROC_RDO_Collection>(coll_idhash);
 
  134     unsigned short n_clusters = rdo_coll.
m_size;
 
  135     collection->
resize(n_clusters);
 
  136     for (
unsigned short rdo_i = 0; rdo_i < n_clusters; ++rdo_i) {
 
  139                 .at(rdo_i + collection_separator_index_begin));
 
  144       (*collection).at(rdo_i) = trans_rdo;
 
  146     collection_separator_index_begin += n_clusters;
 
  149         transient_container->addCollection(collection.release(), coll_idhash);
 
  150     if (
sc.isFailure()) {
 
  151       throw std::runtime_error(
"Failed to add collection to ID Container");
 
  158     const Pers_t* persistent_container, MsgStream& 
log) {
 
  161     if (this->
initialize(log) != StatusCode::SUCCESS) {
 
  162       log << 
MSG::FATAL << 
"Could not initialize HGTD_ALTIROC_RDO_ContainerCnv_p1 " 
  167   std::unique_ptr<Trans_t> transient_container =
 
  170   persToTrans(persistent_container, transient_container.get(), 
log);
 
  172   return (transient_container.release());