Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

EventList.cpp

Go to the documentation of this file.
00001 
00002 #include "cafe/EventList.hpp"
00003 #include "cafe/Event.hpp"
00004 #include "cafe/Config.hpp"
00005 
00006 #include "TFile.h"
00007 #include "TEventList.h"
00008 
00009 namespace cafe {
00010 
00011     EventList::EventList(const char *name)
00012         : Processor(name),
00013           _list(0),
00014           _file(0)
00015     {
00016         Config config(name);
00017         
00018         std::string filename = config.get("File", "");
00019         _tags = config.getVString("Tags"," ,");
00020 
00021         if(filename != "") {
00022             _file = new TFile(filename.c_str(), "RECREATE");
00023             out() << "EventList[" << name << "] : Created event list file: " << filename << std::endl;
00024         }
00025 
00026     }
00027 
00028     EventList::~EventList()
00029     {
00030     }
00031 
00032     void EventList::inputFileOpened(TFile *file)
00033     {
00034         if(_file) {
00035             _file->cd();
00036             _list = new TEventList((std::string("EVTS-") + gSystem->BaseName(file->GetName())).c_str(), file->GetName());
00037         }
00038     }
00039 
00040     void EventList::inputFileClosing(TFile *file)
00041     {
00042         _list->Write();
00043         // delete _list; // ??
00044         _list = 0;
00045     }
00046 
00047     bool EventList::processEvent(cafe::Event& event)
00048     {
00049         if(_list && (_tags.empty() || event.hasTag(_tags))) {
00050             _list->Enter(event.getTree()->GetReadEntry());
00051         }
00052         return true;
00053     }
00054 
00055     void EventList::finish()
00056     {
00057         if(_file) {
00058             // _file->Write();
00059             _file->Close();
00060             delete _file;
00061         }
00062     }
00063 }
00064 
00065 ClassImp(cafe::EventList);
00066 

Generated on Tue Mar 28 10:13:03 2006 for CAF by doxygen 1.3.4