112{
114 int combId=0, processId=0;
115 QString feature,
roiId;
116
117
120
121
122
123
124 using namespace Trig;
126
127
128 std::vector< Feature<TrigRoiDescriptor> > forID = cIt->get<
TrigRoiDescriptor>(
"forID");
129 std::vector< Feature<TrigRoiDescriptor> > forMS = cIt->get<
TrigRoiDescriptor>(
"forMS");
130 std::vector< Feature<TrigRoiDescriptor> > initialRoI = cIt->get<
TrigRoiDescriptor>(
"initialRoI");
131 std::vector< Feature<TrigRoiDescriptor> > secondaryRoI_L2 = cIt->get<
TrigRoiDescriptor>(
"secondaryRoI_L2");
132 std::vector< Feature<TrigRoiDescriptor> > secondaryRoI_EF = cIt->get<
TrigRoiDescriptor>(
"secondaryRoI_EF");
133 std::vector< Feature<TrigRoiDescriptor> > T2TauFinal = cIt->get<
TrigRoiDescriptor>(
"T2TauFinal");
134 std::vector< Feature<TrigRoiDescriptor> > TrigT2CaloEgamma = cIt->get<
TrigRoiDescriptor>(
"TrigT2CaloEgamma");
135 std::vector< Feature<TrigRoiDescriptor> > TrigT2CaloJet = cIt->get<
TrigRoiDescriptor>(
"TrigT2CaloJet");
136 std::vector< Feature<TrigRoiDescriptor> > TrigT2CosmicJet = cIt->get<
TrigRoiDescriptor>(
"TrigT2CosmicJet");
137 std::vector< Feature<TrigRoiDescriptor> > TrigT2CaloTau = cIt->get<
TrigRoiDescriptor>(
"TrigT2CaloTau");
138
139
140 Feature<TrigRoiDescriptor>
d;
141
142 if( !forID.empty() ){
143 for(
int dItr=0; dItr<
int(forID.size()); ++dItr) {
145 feature = QString::fromStdString(::str(*
d.cptr()));
146 roiId = QString(
"ROI_ID_")+QString::number(combId)+QString(
":")+QString::number(dItr);
147 if(!feature.isEmpty()) {
148 bool fstatus =
processFeature(processId, roiId, feature); ++processId;
149 if(!fstatus)
150 log_error(
"processitem(): feature processing failed for: "+roiId+
" > "+
qstr(::str(*
d.cptr())));
151 }
152 }
153 }
154
155
156 if( !forMS.empty() ){
157 for(
int dItr=0; dItr<
int(forMS.size()); ++dItr) {
159 feature = QString::fromStdString(::str(*
d.cptr()));
160 roiId = QString(
"ROI_MS_")+QString::number(combId)+QString(
":")+QString::number(dItr);
161 if(!feature.isEmpty()) {
162 bool fstatus =
processFeature(processId, roiId, feature); ++processId;
163 if(!fstatus)
164 log_error(
"processitem(): feature processing failed for: "+roiId+
" > "+
qstr(::str(*
d.cptr())));
165 }
166 }
167 }
168
169
170 if( !initialRoI.empty() ){
171 for(
int dItr=0; dItr<
int(initialRoI.size()); ++dItr) {
172 d = initialRoI[dItr];
173 feature = QString::fromStdString(::str(*
d.cptr()));
174 roiId = QString(
"ROI_Initial_")+QString::number(combId)+QString(
":")+QString::number(dItr);
175 if(!feature.isEmpty()) {
176 bool fstatus =
processFeature(processId, roiId, feature); ++processId;
177 if(!fstatus)
178 log_error(
"processitem(): feature processing failed for: "+roiId+
" > "+
qstr(::str(*
d.cptr())));
179 }
180 }
181 }
182
183
184 if( !secondaryRoI_L2.empty() ){
185 for(
int dItr=0; dItr<
int(secondaryRoI_L2.size()); ++dItr) {
186 d = secondaryRoI_L2[dItr];
187 feature = QString::fromStdString(::str(*
d.cptr()));
188 roiId = QString(
"ROI_SecondaryL2_")+QString::number(combId)+QString(
":")+QString::number(dItr);
189 if(!feature.isEmpty()) {
190 bool fstatus =
processFeature(processId, roiId, feature); ++processId;
191 if(!fstatus)
192 log_error(
"processitem(): feature processing failed for: "+roiId+
" > "+
qstr(::str(*
d.cptr())));
193 }
194 }
195 }
196
197
198 if( !secondaryRoI_EF.empty() ){
199 for(
int dItr=0; dItr<
int(secondaryRoI_EF.size()); ++dItr) {
200 d = secondaryRoI_EF[dItr];
201 feature = QString::fromStdString(::str(*
d.cptr()));
202 roiId = QString(
"ROI_SecondaryEF_")+QString::number(combId)+QString(
":")+QString::number(dItr);
203 if(!feature.isEmpty()) {
204 bool fstatus =
processFeature(processId, roiId, feature); ++processId;
205 if(!fstatus)
206 log_error(
"processitem(): feature processing failed for: "+roiId+
" > "+
qstr(::str(*
d.cptr())));
207 }
208 }
209 }
210
211
212 if( !T2TauFinal.empty() ){
213 for(
int dItr=0; dItr<
int(T2TauFinal.size()); ++dItr) {
214 d = T2TauFinal[dItr];
215 feature = QString::fromStdString(::str(*
d.cptr()));
216 roiId = QString(
"ROI_T2TauFinal_")+QString::number(combId)+QString(
":")+QString::number(dItr);
217 if(!feature.isEmpty()) {
218 bool fstatus =
processFeature(processId, roiId, feature); ++processId;
219 if(!fstatus)
220 log_error(
"processitem(): feature processing failed for: "+roiId+
" > "+
qstr(::str(*
d.cptr())));
221 }
222 }
223 }
224
225
226 if( !TrigT2CaloEgamma.empty() ){
227 for(
int dItr=0; dItr<
int(TrigT2CaloEgamma.size()); ++dItr) {
228 d = TrigT2CaloEgamma[dItr];
229 feature = QString::fromStdString(::str(*
d.cptr()));
230 roiId = QString(
"ROI_TrigT2CaloEgamma_")+QString::number(combId)+QString(
":")+QString::number(dItr);
231 if(!feature.isEmpty()) {
232 bool fstatus =
processFeature(processId, roiId, feature); ++processId;
233 if(!fstatus)
234 log_error(
"processitem(): feature processing failed for: "+roiId+
" > "+
qstr(::str(*
d.cptr())));
235 }
236 }
237 }
238
239
240 if( !TrigT2CaloJet.empty() ){
241 for(
int dItr=0; dItr<
int(TrigT2CaloJet.size()); ++dItr) {
242 d = TrigT2CaloJet[dItr];
243 feature = QString::fromStdString(::str(*
d.cptr()));
244 roiId = QString(
"ROI_TrigT2CaloJet_")+QString::number(combId)+QString(
":")+QString::number(dItr);
245 if(!feature.isEmpty()) {
246 bool fstatus =
processFeature(processId, roiId, feature); ++processId;
247 if(!fstatus)
248 log_error(
"processitem(): feature processing failed for: "+roiId+
" > "+
qstr(::str(*
d.cptr())));
249 }
250 }
251 }
252
253
254 if( !TrigT2CosmicJet.empty() ){
255 for(
int dItr=0; dItr<
int(TrigT2CosmicJet.size()); ++dItr) {
256 d = TrigT2CosmicJet[dItr];
257 feature = QString::fromStdString(::str(*
d.cptr()));
258 roiId = QString(
"ROI_TrigT2CosmicJet_")+QString::number(combId)+QString(
":")+QString::number(dItr);
259 if(!feature.isEmpty()) {
260 bool fstatus =
processFeature(processId, roiId, feature); ++processId;
261 if(!fstatus)
262 log_error(
"processitem(): feature processing failed for: "+roiId+
" > "+
qstr(::str(*
d.cptr())));
263 }
264 }
265 }
266
267
268 if( !TrigT2CaloTau.empty() ){
269 for(
int dItr=0; dItr<
int(TrigT2CaloTau.size()); ++dItr) {
270 d = TrigT2CaloTau[dItr];
271 feature = QString::fromStdString(::str(*
d.cptr()));
272 roiId = QString(
"ROI_TrigT2CaloTau_")+QString::number(combId)+QString(
":")+QString::number(dItr);
273 if(!feature.isEmpty()) {
274 bool fstatus =
processFeature(processId, roiId, feature); ++processId;
275 if(!fstatus)
276 log_error(
"processitem(): feature processing failed for: "+roiId+
" > "+
qstr(::str(*
d.cptr())));
277 }
278 }
279 }
280
281 ++combId;
282 }
283
284
286
289 return true;
290 }
291 else {
292 log_error(
"processitem(): ROI data and ID entries do not match!");
293 return false;
294 }
295 }
296 else
297 log_error(
"processitem(): ROI vectors empty: cannot append IDs!");
298 return false;
299
300}
Athena::TPCnvVers::Current TrigRoiDescriptor
std::vector< Combination >::const_iterator combination_const_iterator
bool processFeature(int processId, QString roiId, QString feature)
setTeId setLumiBlock roiId