 |
ATLAS Offline Software
|
Go to the documentation of this file.
6 #include "GaudiKernel/MsgStream.h"
7 #include "GaudiKernel/ClassID.h"
20 m_serializerTool(
"TrigTSerializer/TrigTSerializer"),
21 m_TPTool(
"TrigSerTPTool/TrigSerTPTool"),
22 m_guidTool(
"TrigSerializeGuidHelper/TrigSerializeGuidHelper"),
25 declareInterface<ITrigSerializeConvHelper>(
this );
49 if (!sctp.isSuccess()){
61 if (!scg.isSuccess()){
68 m_oldEDMmap[
"TrigRoiDescriptor" ] =
"TrigRoiDescriptorCollection_tlp1";
69 m_oldEDMmap[
"TrigOperationalInfo" ] =
"TrigOperationalInfoCollection_tlp1";
70 m_oldEDMmap[
"TrigInDetTrackCollection" ] =
"TrigInDetTrackCollection_tlp1";
71 m_oldEDMmap[
"MuonFeature" ] =
"MuonFeatureContainer_tlp1";
72 m_oldEDMmap[
"IsoMuonFeature" ] =
"IsoMuonFeatureContainer_tlp1";
73 m_oldEDMmap[
"CombinedMuonFeature" ] =
"CombinedMuonFeatureContainer_tlp1";
74 m_oldEDMmap[
"TileMuFeature" ] =
"TileMuFeatureContainer_tlp1";
75 m_oldEDMmap[
"TileTrackMuFeature" ] =
"TileTrackMuFeatureContainer_tlp1";
76 m_oldEDMmap[
"TrigEMCluster" ] =
"TrigEMClusterContainer_tlp1";
78 m_oldEDMmap[
"RingerRings" ] =
"RingerRingsContainer_tlp1";
79 m_oldEDMmap[
"TrigTauCluster" ] =
"TrigTauClusterContainer_tlp1";
80 m_oldEDMmap[
"TrigTauClusterDetails" ] =
"TrigTauClusterDetailsContainer_tlp1";
81 m_oldEDMmap[
"TrigTauTracksInfo" ] =
"TrigTauTracksInfoCollection_tlp1";
82 m_oldEDMmap[
"TrigT2Jet" ] =
"TrigT2JetContainer_tlp1";
83 m_oldEDMmap[
"TrigElectronContainer" ] =
"TrigElectronContainer_tlp2";
84 m_oldEDMmap[
"TrigPhotonContainer" ] =
"TrigPhotonContainer_tlp2";
86 m_oldEDMmap[
"TrigL2BjetContainer" ] =
"TrigL2BjetContainer_tlp2";
87 m_oldEDMmap[
"TrigMissingET" ] =
"TrigMissingETContainer_tlp1";
88 m_oldEDMmap[
"TrigT2MbtsBits" ] =
"TrigT2MbtsBitsContainer_tlp1";
89 m_oldEDMmap[
"TrigSpacePointCounts" ] =
"TrigSpacePointCountsCollection_tlp1";
90 m_oldEDMmap[
"TrigTrtHitCounts" ] =
"TrigTrtHitCountsCollection_tlp1";
91 m_oldEDMmap[
"CosmicMuonCollection" ] =
"CosmicMuonCollection_tlp1";
92 m_oldEDMmap[
"MdtTrackSegmentCollection" ] =
"MdtTrackSegmentCollection_tlp1";
93 m_oldEDMmap[
"TrigVertexCollection" ] =
"TrigVertexCollection_tlp1";
94 m_oldEDMmap[
"TrigL2BphysContainer" ] =
"TrigL2BphysContainer_tlp1";
95 m_oldEDMmap[
"TrigEFBphysContainer" ] =
"TrigEFBphysContainer_tlp1";
96 m_oldEDMmap[
"TrigEFBjetContainer" ] =
"TrigEFBjetContainer_tlp2";
97 m_oldEDMmap[
"JetCollection" ] =
"JetCollection_tlp2";
98 m_oldEDMmap[
"CaloClusterContainer" ] =
"CaloClusterContainer_p4";
99 m_oldEDMmap[
"CaloShowerContainer" ] =
"CaloShowerContainer_p2";
101 m_oldEDMmap[
"TrigMuonEFContainer" ] =
"TrigMuonEFContainer_tlp1";
102 m_oldEDMmap[
"TrigMuonEFInfoContainer" ] =
"TrigMuonEFInfoContainer_tlp1";
103 m_oldEDMmap[
"egDetailContainer" ] =
"egDetailContainer_p1";
104 m_oldEDMmap[
"egammaContainer" ] =
"egammaContainer_p1";
105 m_oldEDMmap[
"Analysis::TauJetContainer" ] =
"TauJetContainer_p3";
106 m_oldEDMmap[
"TrigTrackCounts" ] =
"TrigTrackCountsCollection_tlp1";
107 m_oldEDMmap[
"TrackCollection" ] =
"Trk::TrackCollection_tlp2";
108 m_oldEDMmap[
"Rec::TrackParticleContainer" ] =
"Rec::TrackParticleContainer_tlp1";
109 m_oldEDMmap[
"Analysis::TauDetailsContainer" ] =
"TauDetailsContainer_tlp1";
111 m_oldEDMmap[
"CaloCellContainer" ] =
"CaloCompactCellContainer";
114 return StatusCode::SUCCESS;
119 ATH_MSG_DEBUG(
"in TrigSerializeConvHelper::createObj for clname " << clname <<
" is xAOD? " << (
isxAOD?
"yes":
"no"));
125 return StatusCode::FAILURE;
131 std::vector<uint32_t>
v = addr->
get();
134 std::string
cl = clname;
141 bool versionChange =
false;
146 if (scid.isFailure()){
152 <<
" instead of " <<
cl);
158 std::string nclass =
cl;
160 if (ai.isFailure()) {
162 return StatusCode::FAILURE;
166 ATH_MSG_DEBUG(
"Got hint of " <<
cl <<
" different persistent class from the BS payload. Name from GUID: " << nclass);
169 ATH_MSG_DEBUG(
"This is an xAOD so probably the BS version is an older version of the xAOD type.");
171 versionChange =
true;
180 CxxUtils::FPControl fpcontrol;
181 if (
cl ==
"xAOD::BTaggingTrigAuxContainer_v1") {
182 fpcontrol.holdExceptions();
187 ATH_MSG_DEBUG(
cl <<
" deserialized to " <<
ptr <<
" version change detected: " << (versionChange ?
"yes":
"no"));
191 bool isViewVector =
cl.substr(0, 11) ==
"ViewVector<";
192 if (
m_doTP and (!
isxAOD or versionChange) and !isViewVector){
193 std::string transclass;
199 ATH_MSG_DEBUG(
"was converted to " << transclass <<
" at " << transObj);
208 return StatusCode::SUCCESS;
218 ATH_MSG_DEBUG(
"in TrigSerializeConvHelper::createRep for clname" << clname <<
" is xAOD? " << (
isxAOD?
"yes":
"no"));
220 std::string
cl = clname;
225 std::string persclass(
"");
227 cl = std::move(persclass);
246 ATH_MSG_VERBOSE(
"got GUID: " << irep[0] <<
"-" << irep[1] <<
"-" << irep[2] <<
"-" << irep[3]);
248 if (
cl !=
"" && pObj){
TrigSerializeConvHelper(const std::string &name, const std::string &type, const IInterface *parent)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
ToolHandle< TrigSerTPTool > m_TPTool
virtual void serialize(const std::string &nameOfClass, const void *instance, std::vector< uint32_t > &v)=0
serializes an object of a class nameOfClass pointed to by instance and recursively also other objects...
#define ATH_MSG_VERBOSE(x)
Helper to control FP exceptions.
StatusCode createRep(const std::string &clname, void *ptr, std::vector< uint32_t > &out, bool isxAOD=false)
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual ~TrigSerializeConvHelper()
const std::vector< uint32_t > & get() const
virtual void reset()=0
clean internal serializer state.
StatusCode createObj(const std::string &clname, IOpaqueAddress *iAddr, void *&ptr, bool isxAOD=false)
virtual void * deserialize(const std::string &nameOfClass, const std::vector< uint32_t > &v)=0
deserializes an object of a class nameOfClass (and recursively other objects) found in std::vector<ui...
virtual void setCLID(const uint32_t *guid)=0
access clid of the payload virtual CLID getCLID() const = 0;
std::map< std::string, std::string > m_oldEDMmap
#define ATH_MSG_WARNING(x)
ToolHandle< ITrigSerializeGuidHelper > m_guidTool
void Destruct(void *place) const
IOpaqueAddress for TrigSerializenCnvSvc.
ToolHandle< ITrigSerializerToolBase > m_serializerTool
virtual StatusCode peekCLID(const std::vector< uint32_t > &v, uint32_t *guid) const =0
access clid of the payload (stored in BS)
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]