ATLAS Offline Software
TriggerInfoCnv_p3.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 #include "EventTPCnv/vectorize.h"
8 
9 void TriggerInfoCnv_p3::persToTrans(std::vector<unsigned int>::const_iterator &i, TriggerInfo* trans, bool bugcompat) const{
10  trans->setStatusElement (*i); ++i;
11  trans->setExtendedLevel1ID (*i); ++i;
12  trans->setLevel1TriggerType (*i); ++i;
13 
14 // std::cout<<"persToTrans of TriggerInfo\t"<<trans->m_level1TriggerType<<std::endl;
15 
16  {
17  unsigned int size=(*i); ++i;
18  std::vector<TriggerInfo::number_type> l1info (i, i+size); i += size;
19  trans->setLevel1TriggerInfo (std::move (l1info));
20  }
21 
22  {
23  unsigned int size=(*i); ++i;
24  std::vector<TriggerInfo::number_type> l2info (i, i+size); i += size;
25  trans->setLevel2TriggerInfo (std::move (l2info));
26  }
27 
28  {
29  unsigned int size=(*i); ++i;
30  std::vector<TriggerInfo::number_type> efinfo (i, i+size); i += size;
31  trans->setEventFilterInfo (std::move (efinfo));
32  }
33 
34 // std::cout<<"persToTrans of TriggerInfo\t"<<trans->m_eventFilterInfo.size()<<std::endl;
35  {
36  unsigned int size=(*i); ++i;
37  std::vector<std::string> names(size);
38  std::vector<std::string> types(size);
39  for (unsigned int w=0;w<size;w++) {
40  UITostr(names[w],i, bugcompat);
41  UITostr(types[w],i, bugcompat);
42  }
43 
44  std::vector<bool> t;
45  UITobitmap(t, i, bugcompat);
46 
47  std::vector<TriggerInfo::StreamTag> st;
48  st.reserve (size);
49  for (unsigned int w=0;w<size;w++) {
50  st.emplace_back (std::move(names[w]), std::move(types[w]), t[w]);
51  }
52 
53  trans->setStreamTags (std::move (st));
54  }
55 }
56 
57 void TriggerInfoCnv_p3::transToPers(const TriggerInfo* trans, std::vector<unsigned int> &pers) const{
58  pers.push_back(trans->statusElement());
59  pers.push_back(trans->extendedLevel1ID());
60  pers.push_back(trans->level1TriggerType());
61 
62  {
63  const std::vector<TriggerInfo::number_type>& l1info =
64  trans->level1TriggerInfo();
65  // std::cout<<"transToPers of TriggerInfo \t"<<trans->m_level1TriggerType<<std::endl;
66  pers.push_back(l1info.size());
67  std::copy (l1info.begin(), l1info.end(), std::back_inserter (pers));
68  }
69 
70  {
71  const std::vector<TriggerInfo::number_type>& l2info =
72  trans->level2TriggerInfo();
73  pers.push_back(l2info.size());
74  std::copy (l2info.begin(), l2info.end(), std::back_inserter (pers));
75  }
76 
77  {
78  const std::vector<TriggerInfo::number_type>& efinfo =
79  trans->eventFilterInfo();
80  pers.push_back(efinfo.size());
81  std::copy (efinfo.begin(), efinfo.end(), std::back_inserter (pers));
82  }
83 
84  {
85  size_t sz = trans->streamTags().size();
86  // std::cout<<"transToPers of TriggerInfo \t"<<trans->m_eventFilterInfo.size()<<std::endl;
87  pers.push_back(sz);
88  std::vector<bool> t; t.reserve(sz);
89  for (unsigned int i = 0; i < sz; ++i) {
90  const TriggerInfo::StreamTag& st = trans->streamTags()[i];
91  strToUI(st.name(), pers);
92  strToUI(st.type(), pers);
93  t.push_back(st.obeysLumiblock());
94  // std::cout<<"transToPers of TriggerInfo "<<trans->m_streamTags[i].m_obeysLumiblock<<std::endl;
95  }
96  bitmapToUI(t, pers);
97  }
98 }
99 
100 
TriggerInfo::setLevel1TriggerType
void setLevel1TriggerType(const number_type level1TriggerType)
set level1 trigger type
Definition: TriggerInfo.cxx:173
TriggerInfo::streamTags
const std::vector< StreamTag > & streamTags() const
get stream tags
Definition: TriggerInfo.cxx:158
TriggerInfo::StreamTag::name
const std::string & name() const
Definition: TriggerInfo.cxx:50
fitman.sz
sz
Definition: fitman.py:527
TriggerInfo::setExtendedLevel1ID
void setExtendedLevel1ID(const number_type extendedLevel1ID)
set extended level1 ID
Definition: TriggerInfo.cxx:168
TriggerInfo::StreamTag::obeysLumiblock
bool obeysLumiblock() const
Definition: TriggerInfo.cxx:60
TriggerInfo::setLevel2TriggerInfo
void setLevel2TriggerInfo(const std::vector< number_type > &level2TriggerInfo)
set level2 trigger info
Definition: TriggerInfo.cxx:188
TriggerInfo::setEventFilterInfo
void setEventFilterInfo(const std::vector< number_type > &eventFilterInfo)
set event filter trigger info
Definition: TriggerInfo.cxx:198
TriggerInfo.h
This class contains trigger related information.
vectorize.h
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
UITostr
void UITostr(std::string &n, std::vector< unsigned int >::const_iterator &i, bool bugcompat)
Definition: vectorize.cxx:29
strToUI
void strToUI(const std::string &m, std::vector< unsigned int > &v)
Definition: vectorize.cxx:9
UITobitmap
void UITobitmap(std::vector< bool > &n, std::vector< unsigned int >::const_iterator &i, bool bugcompat)
Definition: vectorize.cxx:103
TriggerInfo::level1TriggerInfo
const std::vector< number_type > & level1TriggerInfo() const
get level1 trigger info
Definition: TriggerInfo.cxx:143
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
bitmapToUI
void bitmapToUI(const std::vector< bool > &m, std::vector< unsigned int > &v)
Definition: vectorize.cxx:85
TriggerInfo::setStatusElement
void setStatusElement(const number_type statusElement)
set status element
Definition: TriggerInfo.cxx:163
TriggerInfo::StreamTag
Definition: TriggerInfo.h:87
TriggerInfoCnv_p3.h
TriggerInfo::StreamTag::type
const std::string & type() const
Definition: TriggerInfo.cxx:55
lumiFormat.i
int i
Definition: lumiFormat.py:92
TriggerInfo::level2TriggerInfo
const std::vector< number_type > & level2TriggerInfo() const
get level2 trigger info
Definition: TriggerInfo.cxx:148
python.subdetectors.mmg.names
names
Definition: mmg.py:8
TriggerInfoCnv_p3::transToPers
void transToPers(const TriggerInfo *transObj, std::vector< unsigned int > &persObj) const
Definition: TriggerInfoCnv_p3.cxx:57
TriggerInfo::setStreamTags
void setStreamTags(const std::vector< StreamTag > &streamTags)
Definition: TriggerInfo.cxx:208
TriggerInfo::level1TriggerType
number_type level1TriggerType() const
get level1 trigger type
Definition: TriggerInfo.cxx:138
TriggerInfoCnv_p3::persToTrans
void persToTrans(std::vector< unsigned int >::const_iterator &persObj, TriggerInfo *transObj, bool bugcompat) const
Definition: TriggerInfoCnv_p3.cxx:9
TriggerInfo
This class contains trigger related information.
Definition: TriggerInfo.h:77
TriggerInfo::extendedLevel1ID
number_type extendedLevel1ID() const
get extended level1 ID
Definition: TriggerInfo.cxx:133
TriggerInfo::eventFilterInfo
const std::vector< number_type > & eventFilterInfo() const
get event filter trigger info
Definition: TriggerInfo.cxx:153
TriggerInfo::setLevel1TriggerInfo
void setLevel1TriggerInfo(const std::vector< number_type > &level1TriggerInfo)
set level1 trigger info
Definition: TriggerInfo.cxx:178
calibdata.copy
bool copy
Definition: calibdata.py:27
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
TriggerInfo::statusElement
number_type statusElement() const
get status element
Definition: TriggerInfo.cxx:128