  | 
  
    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)
 
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.
 
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
 
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()) ]