19 #include "TGListBox.h"
20 #include "TGTextEntry.h"
22 #include "TEveEventManager.h"
28 #include "EVENT/LCIO.h"
29 #include "IO/LCReader.h"
37 fLCReader(lcio::LCFactory::getInstance()->createLCReader()),
43 SetElementNameTitle(
"Event",
"Event");
59 EVENT::LCEvent*
event = 0;
60 if ( !(event =
fLCReader->readNextEvent()) ) {
61 std::cout <<
"No events.. breaking" << std::endl;
65 if (clearEventCollections) {
86 std::stringstream eventNumber;
87 eventNumber << number;
109 Emit(
"EventChanged(int)", number);
113 Emit(
"EventChanged(const char*)", number);
138 std::cout <<
"First open a file to read!" << std::endl;
142 if (eventNumber < 0) {
143 std::cout <<
"Need positive event number." << std::endl;
152 int currentEventNumber = -1;
153 int lastRunNumber = -1;
161 if (eventNumber - currentEventNumber < 0) {
162 std::cout <<
"We can go backwards. Let me reopen the file." << std::endl;
173 if (eventNumber - currentEventNumber == 0) {
174 std::cout <<
"Sure, we will stay on the same event." << std::endl;
186 while (eventNumber - currentEventNumber) {
188 if ( !(event =
fLCReader->readNextEvent()) )
191 ++currentEventNumber;
208 std::cout <<
"Run #: " <<
event->getRunNumber() <<
", "
209 <<
"Event #: " <<
event->getEventNumber() << std::endl;
215 TList selectedEntries;
226 if (event->getRunNumber() != lastRunNumber)
235 std::cout <<
"No more events. Going back to the first one." << std::endl;
245 std::stringstream sstr;
247 sstr << eventNumberStr;
251 if (sstr >> eventNumber)
254 std::cout <<
"\"" << eventNumberStr <<
"\""
255 <<
"is not a number." << std::endl;
273 std::stringstream runNumber;
289 Emit(
"RunChanged(int)", number);
293 Emit(
"RunChanged(const char*)", number);
void readFile(const std::string &filePath, bool clearEventCollections=true)
Read LCIO data file.
TGTextEntry * fRunNumberEntry
EVENT::LCEvent * fCurrentEvent
TGListBox * getPulsesCollections()
Main visualization class. It is used to draw GEAR detector geometries and LCIO data. It is a self-contained class that depends only on ROOT, TEve, GEAR and LCIO. This means you can use this class outside and independent of BBQ.
void displayEventCollections(const EVENT::LCEvent *event)
virtual TBBQEventManager * GetCurrentEvent()
R__EXTERN TBBQManager * gBBQ
TBBQEventManager(VisTPC *&visTPC)
TGTextEntry * fEventNumberEntry
TGListBox * getTracksCollections()
TGListBox * getHitsCollections()
void drawEvent(EVENT::LCEvent *event, std::vector< std::string > &selectedEntries, TEveElement *parent=NULL, const char *name="Event")
void GotoEvent(int eventNumber)
void clearEventCollections()