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

Trigger.cpp

Go to the documentation of this file.
00001 
00002 
00003 #include "cafe/Trigger.hpp"
00004 
00005 #include <algorithm>
00006 #include "cafe/Config.hpp"
00007 #include "cafe/Event.hpp"
00008 #include "tmb_tree/TMBTrigger.hpp"
00009 
00010 namespace cafe {
00011 
00012     Trigger::Trigger(const char *name)
00013         : Processor(name),
00014           _vars("_trgname")
00015     {
00016         using namespace std;
00017 
00018         Config config(name);
00019         vector<string> temp = config.getVString("Triggers", " ,");
00020         _triggerNames.insert(temp.begin(), temp.end());
00021 
00022         if(_triggerNames.size() == 0) {
00023             warn() << "Trigger[" << name << "] No triggers specified ? All events will fail"
00024                   << endl;
00025         }
00026 
00027         out() << "Trigger[" << name << "] Triggers = ";
00028         for(set<string>::iterator it = _triggerNames.begin();
00029             it != _triggerNames.end(); ++it) {
00030             out() << *it << ' ';
00031         }
00032         out() << endl;
00033     }
00034         
00035     bool Trigger::processEvent(Event& event) 
00036     {
00037         using namespace std;
00038 
00039         Collection<TMBTrigger> triggers = event.getTriggers(_vars);
00040 
00041         //
00042         // This is proportional to the number of triggers in the event
00043         // and about log(numUserTriggers).
00044         //
00045         for(Collection<TMBTrigger>::const_iterator it = triggers.begin();
00046             it != triggers.end();
00047             ++it) {
00048             if(_triggerNames.find((*it).getTrgName()) != _triggerNames.end()) {
00049                 return true;
00050             }
00051         }
00052 
00053         return false;
00054     }
00055 
00056 }
00057 
00058 ClassImp(cafe::Trigger)
00059 

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