ATLAS Offline Software
Loading...
Searching...
No Matches
VP1Trig::VP1TriggerProcessor Class Reference

#include <VP1TriggerProcessor.h>

Inheritance diagram for VP1Trig::VP1TriggerProcessor:
Collaboration diagram for VP1Trig::VP1TriggerProcessor:

Public Member Functions

 VP1TriggerProcessor ()
virtual ~VP1TriggerProcessor ()
void initialize ()
void loadData (StoreGateSvc *m_storeGate)
void clearSystem ()
bool getInitStatus ()
bool getDaqStatus ()
char getDataFormat ()
QString getTrigLvl ()
int getMuonsInEvt ()
void setDataFormat (char ctnid)
void setTrigLvl (QString triglvl)
QList< QTreeWidgetItem * > getQTrigData (QString)
void log_info (const QString &msg)
void log_warning (const QString &msg)
void log_verbose (const QString &msg)
void log_error (const QString &msg)
void log_fatal (const QString &msg)
void log_debug (const QString &msg)
std::string prefix (std::string str)
QString qstr (char c)
QString qstr (std::string str)

Static Public Member Functions

static const QString pfx1 ()
static const QString pfx2 ()
static const QString pfx3 ()

Private Member Functions

void processData ()

Private Attributes

VP1TriggerSystemm_triggersystem
bool m_initStatus
bool m_daqStatus
QString m_trigLvl
char m_dataFormat
QTreeWidgetItem * m_L1_QData
QTreeWidgetItem * m_L2_QData
QTreeWidgetItem * m_EF_QData
QList< QTreeWidgetItem * > m_trigLvlDataSet
std::string m_name
int m_lvl

Detailed Description

Definition at line 31 of file VP1TriggerProcessor.h.

Constructor & Destructor Documentation

◆ VP1TriggerProcessor()

VP1Trig::VP1TriggerProcessor::VP1TriggerProcessor ( )

◆ ~VP1TriggerProcessor()

VP1Trig::VP1TriggerProcessor::~VP1TriggerProcessor ( )
virtual

Definition at line 49 of file VP1TriggerProcessor.cxx.

50{
51 log_verbose("destructor");
52 delete m_triggersystem;
53}

Member Function Documentation

◆ clearSystem()

void VP1Trig::VP1TriggerProcessor::clearSystem ( )

Definition at line 299 of file VP1TriggerProcessor.cxx.

300{
301 log_info("clearSystem()");
302
303 m_triggersystem->clearTriggerHandles();
304
305 m_trigLvlDataSet.clear();
306
307 m_L1_QData->takeChildren();
308 m_L2_QData->takeChildren();
309 m_EF_QData->takeChildren();
310}//END: clearSystem
QList< QTreeWidgetItem * > m_trigLvlDataSet

◆ getDaqStatus()

bool VP1Trig::VP1TriggerProcessor::getDaqStatus ( )

Definition at line 329 of file VP1TriggerProcessor.cxx.

330{
331 log_verbose("User request: return daq status");
332 return m_daqStatus;
333}

◆ getDataFormat()

char VP1Trig::VP1TriggerProcessor::getDataFormat ( )

Definition at line 338 of file VP1TriggerProcessor.cxx.

339{
340 log_verbose("User request: return data container export type");
341 return m_dataFormat;
342}

◆ getInitStatus()

bool VP1Trig::VP1TriggerProcessor::getInitStatus ( )

Definition at line 320 of file VP1TriggerProcessor.cxx.

321{
322 log_verbose("User request: return status of initalization");
323 return m_initStatus;
324}

◆ getMuonsInEvt()

int VP1Trig::VP1TriggerProcessor::getMuonsInEvt ( )

Definition at line 356 of file VP1TriggerProcessor.cxx.

357{
358 log_verbose("User request: return number of muons in event");
359 return muonsInEvt;
360}
int muonsInEvt

◆ getQTrigData()

QList< QTreeWidgetItem * > VP1Trig::VP1TriggerProcessor::getQTrigData ( QString triglvl)

Definition at line 365 of file VP1TriggerProcessor.cxx.

366{
367 log_verbose("User request: return collected trigger data in QTree container format");
368 QList<QTreeWidgetItem *> customDataSet;
369
370 if(m_daqStatus) {
371 if(triglvl.compare("ALL", Qt::CaseInsensitive)==0 || triglvl.compare("L1", Qt::CaseInsensitive)==0 || triglvl.compare("L2", Qt::CaseInsensitive)==0 || triglvl.compare("EF", Qt::CaseInsensitive)==0) {
372 if(m_trigLvl.compare(triglvl, Qt::CaseInsensitive)==0)
373 return m_trigLvlDataSet;
374 else if(m_trigLvl.compare("ALL", Qt::CaseInsensitive)==0) {
375 if(triglvl.compare("ALL", Qt::CaseInsensitive)==0)
376 return m_trigLvlDataSet;
377 else if(triglvl.compare("L1", Qt::CaseInsensitive)==0) {
378 customDataSet << m_L1_QData;
379 return customDataSet;
380 }
381 else if(triglvl.compare("L2", Qt::CaseInsensitive)==0) {
382 customDataSet << m_L2_QData;
383 return customDataSet;
384 }
385 else if(triglvl.compare("EF", Qt::CaseInsensitive)==0) {
386 customDataSet << m_EF_QData;
387 return customDataSet;
388 }
389 }//all available
390 }//available trigger levels
391 }//daq status ok
392 else {
393 log_fatal("User data request: DAQ not available!");
394 return customDataSet;
395 }
396
397 log_error("User requested ["+triglvl+"] trigger data which is not available! Only ["+m_trigLvl+"] available.");
398 return m_trigLvlDataSet;
399}

◆ getTrigLvl()

QString VP1Trig::VP1TriggerProcessor::getTrigLvl ( )

Definition at line 347 of file VP1TriggerProcessor.cxx.

348{
349 log_verbose("User request: return trigger level flag to process");
350 return m_trigLvl;
351}

◆ initialize()

void VP1Trig::VP1TriggerProcessor::initialize ( )

Definition at line 58 of file VP1TriggerProcessor.cxx.

59{
60 log_info("Initializing VP1Trig::VP1TriggerSystem");
61 m_triggersystem = new VP1TriggerSystem();
62 m_initStatus=true;
63}

◆ loadData()

void VP1Trig::VP1TriggerProcessor::loadData ( StoreGateSvc * m_storeGate)

Definition at line 68 of file VP1TriggerProcessor.cxx.

69{
70 QString method="loadData(): ";
71 log_info("Loading trigger data via VP1TriggerSystem");
72
73 //--- Note: Filling trigger handle (L1, L2, EF) objects via the VP1TriggerSystem. ---
74 if(m_initStatus) {
75 m_daqStatus = m_triggersystem->loadTriggerHandles(storeGate, m_trigLvl);
76 if(m_daqStatus)
78 else
79 log_fatal(method+"system initialized but retrieving data failed!");
80 }
81 else
82 log_error(method+"trigger system not initialized!");
83}

◆ log_debug()

void VP1Trig::Logger::log_debug ( const QString & msg)
inherited

Definition at line 54 of file graphics/VP1/VP1Systems/VP1TriggerSystems/src/Logger.cxx.

54 {
55 std::cout<<prefix(m_name)<<"DEBUG "<<msg.toStdString()<<std::endl;
56}
MsgStream & msg
Definition testRead.cxx:32

◆ log_error()

void VP1Trig::Logger::log_error ( const QString & msg)
inherited

Definition at line 46 of file graphics/VP1/VP1Systems/VP1TriggerSystems/src/Logger.cxx.

46 {
47 std::cout<<prefix(m_name)<<"ERROR "<<msg.toStdString()<<std::endl;
48}

◆ log_fatal()

void VP1Trig::Logger::log_fatal ( const QString & msg)
inherited

Definition at line 49 of file graphics/VP1/VP1Systems/VP1TriggerSystems/src/Logger.cxx.

49 {
50 std::cout<<prefix(m_name)<<"FATAL "<<msg.toStdString()<<std::endl;
51}

◆ log_info()

void VP1Trig::Logger::log_info ( const QString & msg)
inherited

Definition at line 32 of file graphics/VP1/VP1Systems/VP1TriggerSystems/src/Logger.cxx.

32 {
33 if(m_lvl>=1)
34 std::cout<<prefix(m_name)<<"INFO "<<msg.toStdString()<<std::endl;
35}

◆ log_verbose()

void VP1Trig::Logger::log_verbose ( const QString & msg)
inherited

Definition at line 40 of file graphics/VP1/VP1Systems/VP1TriggerSystems/src/Logger.cxx.

40 {
41 if(m_lvl>=3)
42 std::cout<<prefix(m_name)<<"VERBOSE "<<msg.toStdString()<<std::endl;
43}

◆ log_warning()

void VP1Trig::Logger::log_warning ( const QString & msg)
inherited

Definition at line 36 of file graphics/VP1/VP1Systems/VP1TriggerSystems/src/Logger.cxx.

36 {
37 if(m_lvl>=2)
38 std::cout<<prefix(m_name)<<"WARNING "<<msg.toStdString()<<std::endl;
39}

◆ pfx1()

const QString VP1Trig::Logger::pfx1 ( )
inlinestaticinherited

Definition at line 51 of file graphics/VP1/VP1Systems/VP1TriggerSystems/VP1TriggerSystems/Logger.h.

51{return " ";}

◆ pfx2()

const QString VP1Trig::Logger::pfx2 ( )
inlinestaticinherited

Definition at line 52 of file graphics/VP1/VP1Systems/VP1TriggerSystems/VP1TriggerSystems/Logger.h.

52{return " ";}

◆ pfx3()

const QString VP1Trig::Logger::pfx3 ( )
inlinestaticinherited

Definition at line 53 of file graphics/VP1/VP1Systems/VP1TriggerSystems/VP1TriggerSystems/Logger.h.

53{return " ";}

◆ prefix()

std::string VP1Trig::Logger::prefix ( std::string str)
inherited

Definition at line 61 of file graphics/VP1/VP1Systems/VP1TriggerSystems/src/Logger.cxx.

62{
63 //15 character prefix standard
64 if(int(str.size())>15) {
65 str.resize(15);
66 str=str+std::string("... ");
67 return str;
68 }
69 else if(int(str.size())==15) {
70 str=str+std::string(" ");
71 return str;
72 }
73 int q=21-int(str.size());
74 for(int i=0;i<q;++i)
75 str=str+std::string(" ");
76 return str;
77}

◆ processData()

void VP1Trig::VP1TriggerProcessor::processData ( )
private

Definition at line 88 of file VP1TriggerProcessor.cxx.

89{
90 QString method="processData(): ";
91 log_info("Processing trigger data: start");
92
93 //Status flags
94 bool l1status=false,l2status=false,efstatus=false;
95
96 //L2 and EF triggers from L1 handle processor ------------->
97 QTreeWidgetItem * L1_triggers, * L2_triggers, * EF_triggers;
98 L1_triggers = new QTreeWidgetItem(0);
99 L2_triggers = new QTreeWidgetItem(0);
100 EF_triggers = new QTreeWidgetItem(0);
101 L1_triggers->setText(0, QString("Triggers"));
102 L2_triggers->setText(0, QString("Triggers"));
103 EF_triggers->setText(0, QString("Triggers"));
104 //---------------------------------------------------------<
105
106 //--- Note: Handles for L1, L2, EF contain trigger data previously stored in each ---
107 //--- object's containers by the VP1TriggerSystem via loadData() and are ---
108 //--- being modified in each "Fill" section below by calling each handles' ---
109 //--- processing methods, which fill m_trigData with processed data. ---
110
111 //L1 PROCESSING ------------------------------------------------------------------------------>
112 if(m_trigLvl.compare("ALL", Qt::CaseInsensitive)==0 || m_trigLvl.compare("L1", Qt::CaseInsensitive)==0) {
113 std::vector<VP1Trig::VP1TriggerHandleL1> handleL1 = m_triggersystem->getHandleL1();
114 std::vector<VP1Trig::VP1TriggerHandleL1>::iterator l1it;
115
116 if(handleL1.size()>0) {
117 log_info(pfx1()+"processing L1 data: start");
118
119 if(m_dataFormat=='q') {
120 log_verbose("processing sector for QTree format");
121 //************************* INIT *************************//
122 m_L1_QData = new QTreeWidgetItem(0);
123 m_L1_QData->setText(0, QString("L1 Data"));
124
125 //************************* FILL *************************//
126 for(l1it=handleL1.begin(); l1it!=handleL1.end(); ++l1it) {
127 if(l1it->processQTrigItem()) {
128 QString trigID = l1it->m_trigID;
129 if(trigID.contains("L2_"))
130 L2_triggers->addChild(l1it->m_qtrigitem);
131 else if(trigID.contains("EF_"))
132 EF_triggers->addChild(l1it->m_qtrigitem);
133 else
134 L1_triggers->addChild(l1it->m_qtrigitem);
135 }
136 }
137 m_L1_QData->addChild(L1_triggers);
138
139 //************************* DIST *************************//
141
142 //General processing status update
143 if(int(m_L1_QData->childCount())>0)
144 l1status=true;
145 else
146 log_warning("L1 QTree has no children");
147
148 }//END: [q] processing
149 else if(m_dataFormat=='v') {
150 log_verbose("processing sector for vector format");
151 //************************* INIT *************************//
152 int p_success=0, p_failed=0;
153
154 //************************* FILL *************************//
155 for(l1it=handleL1.begin(); l1it!=handleL1.end(); ++l1it) {
156 if(l1it->processVTrigItem())
157 ++p_success;
158 else
159 ++p_failed;
160 }
161
162 //General processing status update
163 if(p_success>0)
164 l1status=true;
165 if(p_failed>0)
166 log_warning("L1 data item(s) failed processing: "+VP1String::str(p_failed));
167 }//END: [v] processing
168 else
169 log_error(method+"data container format invalid!");
170 log_info(pfx1()+"processing L1 data: complete");
171 }//END: size>0
172 else
173 log_warning(method+"L1 data requested but not available");
174 }//END: L1
175 //--------------------------------------------------------------------------------------------<
176
177
178 //L2 PROCESSING ------------------------------------------------------------------------------>
179 if(m_trigLvl.compare("ALL", Qt::CaseInsensitive)==0 || m_trigLvl.compare("L2", Qt::CaseInsensitive)==0) {
180 std::vector<VP1Trig::VP1TriggerHandleL2> handleL2 = m_triggersystem->getHandleL2();
181 std::vector<VP1Trig::VP1TriggerHandleL2>::iterator l2it = handleL2.begin();
182
183 if(handleL2.size()>0) {
184 log_info(pfx1()+"processing L2 data: start");
185 if(m_dataFormat=='q') {
186 log_verbose("processing sector for QTree format");
187 //************************* FILL *************************//
188 if(l2it->processQTrigItem())
189 m_L2_QData = l2it->m_qtrigData;
190 else
191 m_L2_QData = new QTreeWidgetItem(0);
192 m_L2_QData->setText(0, QString("L2 Data"));
193
194 if(int(L2_triggers->childCount())>0)
195 m_L2_QData->insertChild(0,L2_triggers); //from L1 processor
196
197 //************************* DIST *************************//
199
200 //General processing status update
201 if(int(m_L2_QData->childCount())>0)
202 l2status=true;
203 else
204 log_warning("L2 QTree has no children");
205 }//END: [q] processing
206 else if(m_dataFormat=='v') {
207 log_verbose("processing sector for vector format");
208 //************************* FILL *************************//
209 l2it->processVTrigItem();
210
211 //General processing status update
212 l2status=true;
213 }//END: [v] processing
214 else
215 log_error(method+"data container format invalid!");
216 log_info(pfx1()+"processing L2 data: complete");
217 }//END: size>0
218 else
219 log_warning(method+"L2 data requested but not available");
220 }//END: L2
221 //--------------------------------------------------------------------------------------------<
222
223
224 //EF PROCESSING ------------------------------------------------------------------------------>
225 if(m_trigLvl.compare("ALL", Qt::CaseInsensitive)==0 || m_trigLvl.compare("EF", Qt::CaseInsensitive)==0) {
226 std::vector<VP1Trig::VP1TriggerHandleEF> handleEF = m_triggersystem->getHandleEF();
227 std::vector<VP1Trig::VP1TriggerHandleEF>::iterator efit;
228
229 //Muons in event
230 muonsInEvt = int(handleEF.size());
231
232 if(handleEF.size()>0) {
233 log_info(pfx1()+"processing EF data: start");
234 if(m_dataFormat=='q') {
235 log_verbose("processing sector for QTree format");
236 //************************* INIT *************************//
237 m_EF_QData = new QTreeWidgetItem(0);
238 m_EF_QData->setText(0, QString("EF Data"));
239
240 //************************* FILL *************************//
241 if(int(EF_triggers->childCount())>0)
242 m_EF_QData->addChild(EF_triggers); //from L1 processor
243 for(efit=handleEF.begin(); efit!=handleEF.end(); ++efit) {
244 if(efit->processQTrigItem())
245 m_EF_QData->addChild(efit->m_qtrigData);
246 }
247
248 //************************* DIST *************************//
250
251 //General processing status update
252 if(int(m_EF_QData->childCount())>0)
253 efstatus=true;
254 else
255 log_warning("EF QTree has no children");
256 }//END: [q] processing
257 else if(m_dataFormat=='v') {
258 log_verbose("processing sector for vector format");
259 //************************* INIT *************************//
260 int p_success=0, p_failed=0;
261
262 //************************* FILL *************************//
263 for(efit=handleEF.begin(); efit!=handleEF.end(); ++efit) {
264 if(efit->processVTrigItem())
265 ++p_success;
266 else
267 ++p_failed;
268 }
269
270 //General processing status update
271 if(p_success>0)
272 efstatus=true;
273 if(p_failed>0)
274 log_warning("EF data item(s) failed processing: "+VP1String::str(p_failed));
275 }//END: [v] processing
276 else
277 log_error(method+"data container format invalid!");
278 log_info(pfx1()+"processing EF data: complete");
279 }//END: size>0
280 else
281 log_warning(method+"EF data requested but not available");
282 }//END: EF
283 //--------------------------------------------------------------------------------------------<
284
285 //Update DAQ Status flag ~~~~~~~~~~~~~~~
286 if(m_daqStatus) {
287 if(l1status || l2status || efstatus)
288 m_daqStatus=true;
289 else
290 m_daqStatus=false;
291 }//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
292
293 log_info("Processing trigger data: complete");
294}//END: processData
static QString str(const QString &s)
Definition VP1String.h:49

◆ qstr() [1/2]

QString VP1Trig::Logger::qstr ( char c)
inherited

Definition at line 82 of file graphics/VP1/VP1Systems/VP1TriggerSystems/src/Logger.cxx.

83{
84 std::stringstream ss; ss<<c;
85 std::string cStr=ss.str();
86 ss.str(std::string()); ss.clear();
87 return QString::fromStdString(cStr);
88}
static Double_t ss

◆ qstr() [2/2]

QString VP1Trig::Logger::qstr ( std::string str)
inherited

Definition at line 93 of file graphics/VP1/VP1Systems/VP1TriggerSystems/src/Logger.cxx.

94{
95 return QString::fromStdString(str);
96}

◆ setDataFormat()

void VP1Trig::VP1TriggerProcessor::setDataFormat ( char ctnid)

Definition at line 422 of file VP1TriggerProcessor.cxx.

423{
424 if(ctnid=='v' || ctnid=='q' || ctnid=='a') { //[v]ector, [q]tree, [a]ll available
425 log_verbose("User request: set data container format to "+qstr(ctnid));
426 m_dataFormat = ctnid;
427 }
428 else
429 log_error("setDataFormat(): ["+qstr(ctnid)+"] as data container format not available!");
430}

◆ setTrigLvl()

void VP1Trig::VP1TriggerProcessor::setTrigLvl ( QString triglvl)

Definition at line 409 of file VP1TriggerProcessor.cxx.

410{
411 if(triglvl.compare("L1", Qt::CaseInsensitive)==0 || triglvl.compare("L2", Qt::CaseInsensitive)==0 || triglvl.compare("EF", Qt::CaseInsensitive)==0 || triglvl.compare("ALL", Qt::CaseInsensitive)==0) {
412 log_verbose("User request: set trigger level flag to "+triglvl);
413 m_trigLvl = triglvl;
414 }
415 else
416 log_error("setTrigLvl(): ["+triglvl+"] as trigger level flag not available!");
417}

Member Data Documentation

◆ m_daqStatus

bool VP1Trig::VP1TriggerProcessor::m_daqStatus
private

Definition at line 64 of file VP1TriggerProcessor.h.

◆ m_dataFormat

char VP1Trig::VP1TriggerProcessor::m_dataFormat
private

Definition at line 66 of file VP1TriggerProcessor.h.

◆ m_EF_QData

QTreeWidgetItem * VP1Trig::VP1TriggerProcessor::m_EF_QData
private

Definition at line 73 of file VP1TriggerProcessor.h.

◆ m_initStatus

bool VP1Trig::VP1TriggerProcessor::m_initStatus
private

Definition at line 63 of file VP1TriggerProcessor.h.

◆ m_L1_QData

QTreeWidgetItem* VP1Trig::VP1TriggerProcessor::m_L1_QData
private

Definition at line 73 of file VP1TriggerProcessor.h.

◆ m_L2_QData

QTreeWidgetItem * VP1Trig::VP1TriggerProcessor::m_L2_QData
private

Definition at line 73 of file VP1TriggerProcessor.h.

◆ m_lvl

int VP1Trig::Logger::m_lvl
privateinherited

◆ m_name

std::string VP1Trig::Logger::m_name
privateinherited

◆ m_triggersystem

VP1TriggerSystem* VP1Trig::VP1TriggerProcessor::m_triggersystem
private

Definition at line 60 of file VP1TriggerProcessor.h.

◆ m_trigLvl

QString VP1Trig::VP1TriggerProcessor::m_trigLvl
private

Definition at line 65 of file VP1TriggerProcessor.h.

◆ m_trigLvlDataSet

QList<QTreeWidgetItem *> VP1Trig::VP1TriggerProcessor::m_trigLvlDataSet
private

Definition at line 74 of file VP1TriggerProcessor.h.


The documentation for this class was generated from the following files: