72{
74
75
78
79
80 if(triglvl.compare("ALL", Qt::CaseInsensitive)==0 || triglvl.compare("L1", Qt::CaseInsensitive)==0) {
81
82 log_info(
"Retrieving L1 data via TrigDecisionTool: start");
83
84
85 std::string trigID;
86 int trigcount=0;
87
88
90 log_fatal(
"Could not retrieve TrigDecisionTool!");
91 return false;
92 }
93
95 log_fatal(
"Could not retrieve TrigMatchTool!");
96 return false;
97 }
98
99
100 const Trig::ChainGroup* allChains =
m_trigDec->getChainGroup(
".*");
101 if(!allChains) {
102 log_fatal(
"ChainGroup could not be loaded!");
103 return false;
104 }
105
106
108 std::vector<std::string>::iterator trigItr;
109
110
111 for(trigItr=trigList.begin(); trigItr!=trigList.end(); ++trigItr) {
112
113
114 if((*trigItr).empty()) continue;
115
116
118 ++trigcount;
119 trigID = std::string((*trigItr).c_str());
120
121
122 using namespace Trig;
123 Trig::FeatureContainer
f =
m_trigDec->features(trigID);
124
125
126
127 VP1TriggerHandleL1 handleL1(f, QString::fromStdString(trigID));
129 }
130 }
132 }
133
134
135 if(triglvl.compare("ALL", Qt::CaseInsensitive)==0 || triglvl.compare("L2", Qt::CaseInsensitive)==0) {
136
137
138
139
140
142
143 const DataHandle<MuonFeatureDetailsContainer> mfdContainer;
144 const DataHandle<MuonFeatureDetailsContainer> lastmfdContainer;
145 bool runL2=false;
146
147 while(runL2==false) {
148 if(
storeGate->retrieve(mfdContainer,lastmfdContainer).isSuccess())
149 log_verbose(
"MuonFeatureDetailsContainer retrieved");
150
151 if(!mfdContainer) {
152 log_fatal(
"MuonFeatureDetailsContainer not retrieved!");
153 return false;
154 }
155
156
157
158
159 std::vector<const MuonFeatureDetails*> vec_muonFeatureDetails;
160
161 for(; mfdContainer!=lastmfdContainer; mfdContainer++) {
164 for(; mfd != lastmfd; ++mfd) {
165 if((*mfd)==0) continue;
166 vec_muonFeatureDetails.push_back(*mfd);
167 }
168 }
169
170 VP1TriggerHandleL2 handleL2(vec_muonFeatureDetails);
172
173 runL2=true;
174 }
176 }
177
178
179 if(triglvl.compare("ALL", Qt::CaseInsensitive)==0 || triglvl.compare("EF", Qt::CaseInsensitive)==0) {
180
181
182
184
185 const DataHandle<TrigMuonEFInfoContainer> trigMuon;
186 const DataHandle<TrigMuonEFInfoContainer> lastTrigMuon;
187 unsigned int muonCounter=0;
188
189 if(
storeGate->retrieve(trigMuon,lastTrigMuon).isSuccess()) {
190 for(
int i=0; trigMuon!=lastTrigMuon; ++trigMuon, ++
i) {
193
194 for(int j=0; MuonItr!=MuonItrE; ++MuonItr, ++j ) {
195 const TrigMuonEFInfo* muonInfo = (*MuonItr);
196 std::vector<std::string>
chains =
m_trigMatch->chainsPassedByObject<TrigMuonEFInfo>(muonInfo);
197 std::vector<std::string>::iterator itChain;
198 QList<QString> chainIDs;
199
200 for(itChain=
chains.begin(); itChain!=
chains.end(); ++itChain)
201 chainIDs << QString((*itChain).c_str());
202
203 VP1TriggerHandleEF handleEF(muonInfo, QString("Muon No. ")+QString::number(++muonCounter), chainIDs);
205 }
206 }
207 } else {
208 log_fatal(
"Could not retrieve TrigMuonEF from StoreGate!");
209 return false;
210 }
212 }
213
214 return true;
215}
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()