|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
    9 #include <boost/tokenizer.hpp> 
   11 #include "GaudiKernel/System.h" 
   22     m_serializerServiceHandle(
"TrigSerializeCnvSvc", 
name),
 
   23     m_clidSvc(
"ClassIDSvc", 
name),
 
   24     m_fullholderfactory(m_objectsKeyPrefix)
 
   28                   "List of classes which need to be serialized together with the Navigation.");
 
   31                   "List of classes which need to be serialized together with the Navigation (Only in DataScouting collection).");
 
   34                   "List of classes (Type[#Key]) to ignore on deserialization of the Navigation.");
 
   37                   "List of classes which need to be put in SG independently if they appear in event.");
 
   41   declareProperty(
"ReadonlyHolders", 
m_readonly = 
false, 
"read only flag for holders (cannot create new feature containers");
 
   67   std::vector<CSPair> 
ignore;
 
   73     ATH_MSG_DEBUG(
"Ignoring CLID " << 
c.first << (
c.second.empty() ? 
"" : 
" with label "+
c.second) <<
 
   74                  " during deserialization");
 
   93         ATH_MSG_ERROR(
"static type information not intialized. Holder is null pointer");
 
  100   for ( 
const std::string& dll : 
m_dlls ) {
 
  101     System::ImageHandle handle = 0;
 
  102     if ( System::loadDynamicLib( dll, &handle)  != 1 )
 
  110   return StatusCode::SUCCESS;
 
  115                              std::vector<CSPair>& decoded ) {
 
  118   for ( 
const std::string& cname : property ) {
 
  123     if ( cname.find(
'#') != std::string::npos ) {
 
  124       type = cname.substr(0, cname.find(
'#') );
 
  125       key  = cname.substr(cname.find(
'#')+1 );
 
  133       return StatusCode::FAILURE;
 
  141     size_t dotpos = 
key.find(
'.');
 
  142     if( dotpos == std::string::npos ) {
 
  147       const char* dummyName = 
"__dummyThatShouldNotMatch";
 
  150       static const std::set<std::string> dummySet { dummyName };
 
  151       sel.selectAux (dummySet);
 
  154       std::string aux_attr = 
key.substr(dotpos+1);
 
  155       key.erase (dotpos, std::string::npos);
 
  157       typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
 
  158       boost::char_separator<char> 
sep(
".");
 
  163     decoded.emplace_back (clid, 
key, std::move (
sel));
 
  165   return StatusCode::SUCCESS;
 
  
std::string m_objectsKeyPrefix
property setting prefix which is to be given to all trigger EDM objects
Helper class to provide type-safe access to aux data.
unsigned m_objectsIndexOffset
small integer used to generate sub type index
std::vector< std::string > m_classesToPayloadProperty
list of classes::keys to be put to BS payload
static const CLIDtoHolderMap & holders()
#define ATH_MSG_VERBOSE(x)
void addClassToIgnore(class_id_type clid, const std::string &label="")
Ignore class with clid (and optional label) during deserialization.
MsgStream & operator<<(MsgStream &m, const Navigation &nav)
The NavigationCore class, adds on top of the TrigNavStructure the EDM read-only handling.
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
std::vector< CSPair > m_classesToPayload
classess are put to payload according to that priority list (CLID + key)
std::vector< std::string > m_classesToPayloadProperty_DSonly
list of classes::keys to be put to DS payload
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
ITrigHolderFactory * m_holderfactory
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
The Navigation class, organizes TriggerElements into the tree structure.
bool msgLvl(const MSG::Level lvl) const
virtual StatusCode initialize() override
void prepare(StoreGateSvc *store, IConversionSvc *serializer, bool readonly=true)
uint32_t CLID
The Class ID type.
ServiceHandle< IConversionSvc > m_serializerServiceHandle
IConversionSvc * m_serializerSvc
Class helping in dealing with dynamic branch selection.
StoreGateSvc * m_storeGate
std::vector< CSPair > m_classesToPreregister
classes mentioned here will be put to SG irrespectively of thier presence in event
FullHolderFactory m_fullholderfactory
#define ATH_MSG_WARNING(x)
ServiceHandle< IClassIDSvc > m_clidSvc
std::vector< CSPair > m_classesToPayload_DSonly
classess are put to payload according to that priority list (CLID + key)
StatusCode classKey2CLIDKey(const std::vector< std::string > &property, std::vector< CSPair > &decoded)
Gaudi::Property< std::vector< std::string > > m_dlls
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
std::vector< std::string > m_classesFromPayloadIgnoreProperty
list of classes::keys to ignore on deserialization
Base class for elements of a container that can have aux data.
std::vector< std::string > m_classesToPreregisterProperty
as above but for preregistration