ATLAS Offline Software
Loading...
Searching...
No Matches
CaloClusterMomentContainerCnv_p1.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
6//#include "CaloTPCnv/CaloClusterMomentContainer_p1.h"
9
13
16{
20 for(;it!=it_e;++it) {
21 mom.key=it.getMomentType();
22 mom.value=it.getMoment().getValue();
23 pers->m_store.push_back(mom);
24 }
25}
26
29 CaloClusterMomentContainer_p1::const_iterator& momentStoreIterator) const
30{
31 typedef CaloClusterMomentStore::moment_store moment_store;
32 typedef moment_store::value_type value_type;
33 moment_store transStore;
34
35 for (unsigned short i=0;i<pers->m_nMoments;++i) {
36 //trans->insert((CaloClusterMoment::MomentType)momentStoreIterator->key,
37 // CaloClusterMoment(momentStoreIterator->value));
38 //Insert with 'hint', should be faster
39 transStore.insert(transStore.end(),
40 value_type(momentStoreIterator->key,
41 momentStoreIterator->value));
42 ++momentStoreIterator;
43 }
44 trans->setMomentStore (std::move (transStore));
45}
46
48 unsigned int ncluster,
49 CaloClusterMomentContainer_p1::const_iterator& momentStoreIterator) const
50{
51 momentStoreIterator=pers->m_store.begin();
52
53 if (pers->m_nMoments * ncluster != pers->m_store.size()) {
54 REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING, "CaloClusterMomentContainerCnv_p1")
55 << "Corrupted persistent data seen: "
56 << ncluster << " clusters * "
57 << pers->m_nMoments << " moments != "
58 << pers->m_store.size() << " stored values.";
59 return false;
60 }
61
62 return true;
63}
64
65
Helpers for checking error return status codes and reporting errors.
#define REPORT_MESSAGE_WITH_CONTEXT(LVL, CONTEXT_NAME)
Report a message, with an explicitly specified context name.
void transToPers(const CaloClusterMomentStore *trans, CaloClusterMomentContainer_p1 *pers) const
bool setIterator(const CaloClusterMomentContainer_p1 *pers, unsigned int ncluster, CaloClusterMomentContainer_p1::const_iterator &momentStoreIterator) const
void persToTrans(const CaloClusterMomentContainer_p1 *pers, CaloClusterMomentStore *trans, CaloClusterMomentContainer_p1::const_iterator &momentStoreIterator) const
std::vector< ClusterMoment_p > m_store
std::vector< ClusterMoment_p >::const_iterator const_iterator
Stores CaloClusterMoment in a keyed map.
virtual moment_iterator end() const
iterator loop terminator
CaloClusterMomentIterator moment_iterator
External moment iterator type.
virtual void setMomentStore(const moment_store &rMomStore)
Set internal store.
std::map< moment_key, moment_value > moment_store
Internal moment store type.
virtual moment_iterator begin() const
{