68{
70
71
74
75
76 if(triglvl.compare("ALL", Qt::CaseInsensitive)==0 || triglvl.compare("L1", Qt::CaseInsensitive)==0) {
77
78 log_info(
"Retrieving L1 data via TrigDecisionTool: start");
79
80
81 std::string trigID;
82
83
84
86 log_fatal(
"Could not retrieve TrigDecisionTool!");
87 return false;
88 }
89
91 log_fatal(
"Could not retrieve TrigMatchTool!");
92 return false;
93 }
94
95
96 const Trig::ChainGroup* allChains =
m_trigDec->getChainGroup(
".*");
97 if(!allChains) {
98 log_fatal(
"ChainGroup could not be loaded!");
99 return false;
100 }
101
102
104 std::vector<std::string>::iterator trigItr;
105
106
107 for(trigItr=trigList.begin(); trigItr!=trigList.end(); ++trigItr) {
108
109
110 if((*trigItr).empty()) continue;
111
112
114
115 trigID = std::string((*trigItr).c_str());
116
117
118 using namespace Trig;
119 Trig::FeatureContainer
f =
m_trigDec->features(trigID);
120
121
122
123 VP1TriggerHandleL1 handleL1(f, QString::fromStdString(trigID));
125 }
126 }
128 }
129
130
131 if(triglvl.compare("ALL", Qt::CaseInsensitive)==0 || triglvl.compare("L2", Qt::CaseInsensitive)==0) {
132
133
134
135
136
138
139 SG::ConstIterator<MuonFeatureDetailsContainer> mfdContainer;
140 SG::ConstIterator<MuonFeatureDetailsContainer> lastmfdContainer;
141 bool runL2=false;
142
143 while(runL2==false) {
144 if(storeGate->retrieve(mfdContainer,lastmfdContainer).isSuccess())
145 log_verbose(
"MuonFeatureDetailsContainer retrieved");
146
147
148
149
150 std::vector<const MuonFeatureDetails*> vec_muonFeatureDetails;
151
152 for(; mfdContainer!=lastmfdContainer; ++mfdContainer) {
155 for(; mfd != lastmfd; ++mfd) {
156 if((*mfd)==0) continue;
157 vec_muonFeatureDetails.push_back(*mfd);
158 }
159 }
160
161 VP1TriggerHandleL2 handleL2(vec_muonFeatureDetails);
163
164 runL2=true;
165 }
167 }
168
169
170 if(triglvl.compare("ALL", Qt::CaseInsensitive)==0 || triglvl.compare("EF", Qt::CaseInsensitive)==0) {
171
172
173
175
176 SG::ConstIterator<TrigMuonEFInfoContainer> trigMuon;
177 SG::ConstIterator<TrigMuonEFInfoContainer> lastTrigMuon;
178 unsigned int muonCounter=0;
179
180 if(storeGate->retrieve(trigMuon,lastTrigMuon).isSuccess()) {
181 for(; trigMuon!=lastTrigMuon; ++trigMuon) {
182
183 for(const TrigMuonEFInfo* muonInfo : *trigMuon) {
184 std::vector<std::string>
chains
185
186
187
188
189
190 { "CHAIN_INFO_NOT_AVAILABLE_FOR_TrigMuonEFInfo" };
191
192 std::vector<std::string>::iterator itChain;
193 QList<QString> chainIDs;
194
195 for(itChain=
chains.begin(); itChain!=
chains.end(); ++itChain)
196 chainIDs << QString((*itChain).c_str());
197
198 VP1TriggerHandleEF handleEF(muonInfo, QString("Muon No. ")+QString::number(++muonCounter), chainIDs);
200 }
201 }
202 } else {
203 log_fatal(
"Could not retrieve TrigMuonEF from StoreGate!");
204 return false;
205 }
207 }
208
209 return true;
210}
DataModel_detail::const_iterator< DataVector > const_iterator
std::vector< std::string > getListOfTriggers() const
void log_fatal(const QString &msg)
void log_info(const QString &msg)
void clearTriggerHandles()