ATLAS Offline Software
EDM_TypeInfoMethods.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGSTORAGEDEF_TYPEINFO_METHODS
6 #define TRIGSTORAGEDEF_TYPEINFO_METHODS
7 //#include "TrigStorageDefinitions/EDM_MergePackages.h"
8 struct TypeInfo_EDM;
9 
11 #include <boost/mpl/assert.hpp>
12 
13 template<class T, class EDMLIST = TypeInfo_EDM> struct IsKnownFeature{
14  typedef typename master_search<typename EDMLIST::map,
16  static const bool value = !boost::is_same<HLT::TypeInformation::ERROR_THE_FOLLOWING_TYPE_IS_NOT_KNOWN_TO_THE_EDM<T>,search_result>::value;
17  BOOST_MPL_ASSERT_MSG(value,the_following_class_is_not_a_valid_feature_contact_trigger_core_sw_experts_thanks, (T));
18 };
19 
20 template<class CONTAINER, class EDMLIST = TypeInfo_EDM> struct Container2Object{
21  typedef typename master_search<typename EDMLIST::map,
23  CONTAINER
25 };
26 
27 template<class CONTAINER, class EDMLIST = TypeInfo_EDM> struct Container2Aux{
28  typedef typename master_search<typename EDMLIST::map,
30  CONTAINER
31  >::result::search_result::aux type;
32 };
33 
34 template<class OBJECT, class EDMLIST = TypeInfo_EDM> struct Object2Container{
35  typedef typename master_search<typename EDMLIST::map,
37  OBJECT
38  >::result::search_result::container type;
39 };
40 
41 template<class FEATURE, class EDMLIST = TypeInfo_EDM> struct Features2Container{
42  typedef typename master_search<typename EDMLIST::map,
44  FEATURE
45  >::result::search_result::container type;
46 };
47 
48 template<class FEATURE, class EDMLIST = TypeInfo_EDM> struct Features2Object{
49  typedef typename master_search<typename EDMLIST::map,
51  FEATURE
53 };
54 
55 template<class OBJECT, class EDMLIST = TypeInfo_EDM> struct Object2Features{
56  typedef typename master_search<typename EDMLIST::map,
58  OBJECT
59  >::result::search_result::list_of_features type;
60 };
61 
62 template <class CONTAINER, bool isCont> struct lnk_helper;
63 
64 template <class CONTAINER> struct lnk_helper<CONTAINER,false>{
66 };
67 
68 template <class CONTAINER> struct lnk_helper<CONTAINER,true>{
70 };
71 
72 template<class REQUESTED,class CONTAINER> struct Features2LinkHelper{
75 };
76 
77 
78 #endif
lnk_helper< CONTAINER, false >::type
ElementLink< CONTAINER > type
Definition: EDM_TypeInfoMethods.h:65
lnk_helper< CONTAINER, true >::type
DataLink< CONTAINER > type
Definition: EDM_TypeInfoMethods.h:69
Container2Object::type
master_search< typename EDMLIST::map, HLT::TypeInformation::get_cont, CONTAINER >::result::search_result::object type
Definition: EDM_TypeInfoMethods.h:24
athena.value
value
Definition: athena.py:122
EDM_MasterSearch.h
HLT::TypeInformation::get_objt
Definition: TypeInformation.h:283
master_search
Definition: EDM_MasterSearch.h:85
Features2LinkHelper
Definition: EDM_TypeInfoMethods.h:72
HLT::TypeInformation::get_feat
Definition: TypeInformation.h:291
lnk_helper
Definition: EDM_TypeInfoMethods.h:62
IsKnownFeature::search_result
master_search< typename EDMLIST::map, HLT::TypeInformation::get_feat, T >::result::search_result search_result
Definition: EDM_TypeInfoMethods.h:15
IsKnownFeature::value
static const bool value
Definition: EDM_TypeInfoMethods.h:16
HLT::TypeInformation::get_cont
Definition: TypeInformation.h:279
Container2Object
Definition: EDM_TypeInfoMethods.h:20
Container2Aux::type
master_search< typename EDMLIST::map, HLT::TypeInformation::get_cont, CONTAINER >::result::search_result::aux type
Definition: EDM_TypeInfoMethods.h:31
Features2LinkHelper::type
lnk_helper< CONTAINER, isCont >::type type
Definition: EDM_TypeInfoMethods.h:74
Container2Aux
Definition: EDM_TypeInfoMethods.h:27
Features2Object
Definition: EDM_TypeInfoMethods.h:48
Features2Container
Definition: EDM_TypeInfoMethods.h:41
Object2Container::type
master_search< typename EDMLIST::map, HLT::TypeInformation::get_objt, OBJECT >::result::search_result::container type
Definition: EDM_TypeInfoMethods.h:38
IsKnownFeature
Definition: EDM_TypeInfoMethods.h:13
Object2Features
Definition: EDM_TypeInfoMethods.h:55
Object2Features::type
master_search< typename EDMLIST::map, HLT::TypeInformation::get_objt, OBJECT >::result::search_result::list_of_features type
Definition: EDM_TypeInfoMethods.h:59
Features2Object::type
master_search< typename EDMLIST::map, HLT::TypeInformation::get_feat, FEATURE >::result::search_result::object type
Definition: EDM_TypeInfoMethods.h:52
pickleTool.object
object
Definition: pickleTool.py:30
TypeInfo_EDM
Definition: HLTResultReader.cxx:42
IsKnownFeature::BOOST_MPL_ASSERT_MSG
BOOST_MPL_ASSERT_MSG(value, the_following_class_is_not_a_valid_feature_contact_trigger_core_sw_experts_thanks,(T))
Features2LinkHelper::isCont
static const bool isCont
Definition: EDM_TypeInfoMethods.h:73
Object2Container
Definition: EDM_TypeInfoMethods.h:34
Features2Container::type
master_search< typename EDMLIST::map, HLT::TypeInformation::get_feat, FEATURE >::result::search_result::container type
Definition: EDM_TypeInfoMethods.h:45
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35