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
24template<> inline std::vector<TrigMonROB>::const_iterator TrigMonEvent::begin<TrigMonROB>() const {
27template<> inline std::vector<TrigMonROB>::const_iterator TrigMonEvent::end<TrigMonROB>() const {
31template<> inline std::vector<TrigMonRoi>::const_iterator TrigMonEvent::begin<TrigMonRoi>() const {
34template<> inline std::vector<TrigMonRoi>::const_iterator TrigMonEvent::end<TrigMonRoi>() const {
38template<> inline std::vector<TrigMonSeq>::const_iterator TrigMonEvent::begin<TrigMonSeq>() const {
41template<> inline std::vector<TrigMonSeq>::const_iterator TrigMonEvent::end<TrigMonSeq>() const {
45template<> inline std::vector<TrigMonTE>::const_iterator TrigMonEvent::begin<TrigMonTE>() const {
48template<> inline std::vector<TrigMonTE>::const_iterator TrigMonEvent::end<TrigMonTE>() const {
52// template specialization for Size() function
53template<> inline unsigned int TrigMonEvent::size<TrigMonROB>() const { return m_rob.size(); }
54template<> inline unsigned int TrigMonEvent::size<TrigMonRoi>() const { return m_roi.size(); }
55template<> inline unsigned int TrigMonEvent::size<TrigMonSeq>() const { return m_seq.size(); }
56template<> inline unsigned int TrigMonEvent::size<TrigMonTE>() const { return m_te.size(); }
58// template specialization for at() function
59template<> inline const TrigMonROB& TrigMonEvent::at<TrigMonROB>(unsigned int i) const { return m_rob[i]; }
60template<> inline const TrigMonRoi& TrigMonEvent::at<TrigMonRoi>(unsigned int i) const { return m_roi[i]; }
61template<> inline const TrigMonSeq& TrigMonEvent::at<TrigMonSeq>(unsigned int i) const { return m_seq[i]; }
62template<> inline const TrigMonTE& TrigMonEvent::at<TrigMonTE> (unsigned int i) const { return m_te[i]; }
64// template specialization for GetVec() function
65template<> inline std::vector<TrigMonROB>& TrigMonEvent::getVec<TrigMonROB>() { return m_rob; }
66template<> inline std::vector<TrigMonRoi>& TrigMonEvent::getVec<TrigMonRoi>() { return m_roi; }
67template<> inline std::vector<TrigMonSeq>& TrigMonEvent::getVec<TrigMonSeq>() { return m_seq; }
68template<> inline std::vector<TrigMonTE>& TrigMonEvent::getVec<TrigMonTE>() { return m_te; }
70template<> inline const std::vector<TrigMonROB>& TrigMonEvent::getVec<TrigMonROB>() const { return m_rob; }
71template<> inline const std::vector<TrigMonRoi>& TrigMonEvent::getVec<TrigMonRoi>() const { return m_roi; }
72template<> inline const std::vector<TrigMonSeq>& TrigMonEvent::getVec<TrigMonSeq>() const { return m_seq; }
73template<> inline const std::vector<TrigMonTE>& TrigMonEvent::getVec<TrigMonTE>() const { return m_te; }
75// template specialization for add() function
76template<> inline bool TrigMonEvent::add<TrigMonChain>(const TrigMonChain &obj) {
77 m_hlt.push_back(obj.getEncoded());
80template<> inline bool TrigMonEvent::add<TrigMonL1Item>(const TrigMonL1Item &obj) {
81 m_l1.push_back(obj.getEncoded());
84template<> inline bool TrigMonEvent::add<TrigMonROB>(const TrigMonROB &obj) {
88template<> inline bool TrigMonEvent::add<TrigMonRoi>(const TrigMonRoi &obj) {
92template<> inline bool TrigMonEvent::add<TrigMonSeq>(const TrigMonSeq &obj) {
96template<> inline bool TrigMonEvent::add<TrigMonTE>(const TrigMonTE &obj) {