4 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
7 #ifndef TRIGMON_EVENT_ICC
8 #define TRIGMON_EVENT_ICC
10 // Hide template code from ROOTCINT and GCCXML
15 // Template specilizations only, there are no default implementations.
23 // template specialization for Beg() and End() functions
24 template<> inline std::vector<TrigMonROB>::const_iterator TrigMonEvent::begin<TrigMonROB>() const {
27 template<> inline std::vector<TrigMonROB>::const_iterator TrigMonEvent::end<TrigMonROB>() const {
31 template<> inline std::vector<TrigMonRoi>::const_iterator TrigMonEvent::begin<TrigMonRoi>() const {
34 template<> inline std::vector<TrigMonRoi>::const_iterator TrigMonEvent::end<TrigMonRoi>() const {
38 template<> inline std::vector<TrigMonSeq>::const_iterator TrigMonEvent::begin<TrigMonSeq>() const {
41 template<> inline std::vector<TrigMonSeq>::const_iterator TrigMonEvent::end<TrigMonSeq>() const {
45 template<> inline std::vector<TrigMonTE>::const_iterator TrigMonEvent::begin<TrigMonTE>() const {
48 template<> inline std::vector<TrigMonTE>::const_iterator TrigMonEvent::end<TrigMonTE>() const {
52 // template specialization for Size() function
53 template<> inline unsigned int TrigMonEvent::size<TrigMonROB>() const { return m_rob.size(); }
54 template<> inline unsigned int TrigMonEvent::size<TrigMonRoi>() const { return m_roi.size(); }
55 template<> inline unsigned int TrigMonEvent::size<TrigMonSeq>() const { return m_seq.size(); }
56 template<> inline unsigned int TrigMonEvent::size<TrigMonTE>() const { return m_te.size(); }
58 // template specialization for at() function
59 template<> inline const TrigMonROB& TrigMonEvent::at<TrigMonROB>(unsigned int i) const { return m_rob[i]; }
60 template<> inline const TrigMonRoi& TrigMonEvent::at<TrigMonRoi>(unsigned int i) const { return m_roi[i]; }
61 template<> inline const TrigMonSeq& TrigMonEvent::at<TrigMonSeq>(unsigned int i) const { return m_seq[i]; }
62 template<> inline const TrigMonTE& TrigMonEvent::at<TrigMonTE> (unsigned int i) const { return m_te[i]; }
64 // template specialization for GetVec() function
65 template<> inline std::vector<TrigMonROB>& TrigMonEvent::getVec<TrigMonROB>() { return m_rob; }
66 template<> inline std::vector<TrigMonRoi>& TrigMonEvent::getVec<TrigMonRoi>() { return m_roi; }
67 template<> inline std::vector<TrigMonSeq>& TrigMonEvent::getVec<TrigMonSeq>() { return m_seq; }
68 template<> inline std::vector<TrigMonTE>& TrigMonEvent::getVec<TrigMonTE>() { return m_te; }
70 template<> inline const std::vector<TrigMonROB>& TrigMonEvent::getVec<TrigMonROB>() const { return m_rob; }
71 template<> inline const std::vector<TrigMonRoi>& TrigMonEvent::getVec<TrigMonRoi>() const { return m_roi; }
72 template<> inline const std::vector<TrigMonSeq>& TrigMonEvent::getVec<TrigMonSeq>() const { return m_seq; }
73 template<> inline const std::vector<TrigMonTE>& TrigMonEvent::getVec<TrigMonTE>() const { return m_te; }
75 // template specialization for add() function
76 template<> inline bool TrigMonEvent::add<TrigMonChain>(const TrigMonChain &obj) {
77 m_hlt.push_back(obj.getEncoded());
80 template<> inline bool TrigMonEvent::add<TrigMonL1Item>(const TrigMonL1Item &obj) {
81 m_l1.push_back(obj.getEncoded());
84 template<> inline bool TrigMonEvent::add<TrigMonROB>(const TrigMonROB &obj) {
88 template<> inline bool TrigMonEvent::add<TrigMonRoi>(const TrigMonRoi &obj) {
92 template<> inline bool TrigMonEvent::add<TrigMonSeq>(const TrigMonSeq &obj) {
96 template<> inline bool TrigMonEvent::add<TrigMonTE>(const TrigMonTE &obj) {