BaseModule.cc

00001 #include "BaseModule.hh"
00002 #include "AddCutFunctor.hh"
00003 
00004 
00005 BaseModule::BaseModule(const std::string& name, const std::string& helptext) : 
00006   ParameterList(name, helptext), _last_process_return(0)
00007 {
00008   RegisterParameter("enabled", enabled = true,
00009                     "Is this module enabled for this run?");
00010   RegisterParameter("skip_channels",_skip_channels,
00011                     "List the channels which we don't process");
00012   //RegisterParameter("cuts", _cuts, "List cuts to pass before processing");
00013   RegisterParameter("dependencies", _dependencies, 
00014                     "List of modules that need to process before us");
00015 }
00016 
00017 BaseModule::~BaseModule()
00018 {
00019   
00020   //delete cuts
00021   for(size_t i=0; i < _cuts.size(); i++)
00022     delete _cuts[i];
00023   _cuts.clear();
00024 }
00025 
00026 
00027 int BaseModule::HandleEvent(EventPtr event, bool process_now)
00028 {
00029   // see if our cuts pass, and actually do the processing
00030   if(CheckCuts(event))
00031     _last_process_return = Process(event);
00032   else
00033     _last_process_return = 0;
00034   if(_last_process_return){
00035     Message(ERROR)<<"Module "<<GetName()<<" returns "
00036                   <<_last_process_return
00037                   <<" processing event "
00038                   <<event->GetRawEvent()->GetID()<<"\n";
00039   }
00040   return _last_process_return;    
00041 }
00042 
00043 int BaseModule::AddDependency(const std::string& module)
00044 {
00045   _dependencies.insert(module);
00046   return _dependencies.size();
00047 }
00048 
00049       
00050 bool BaseModule::CheckCuts(EventPtr event){
00051   
00052   for(std::vector<ProcessingCut*>::iterator cutit = _cuts.begin(); 
00053       cutit != _cuts.end(); cutit++){
00054     if((*cutit) -> Process(event->GetEventData()) == false)
00055       return false;
00056   }
00057   return true;
00058 }
00059 
00060 void BaseModule::ClearCuts()
00061 { 
00062   for(std::vector<ProcessingCut*>::iterator it = _cuts.begin(); 
00063       it != _cuts.end(); it++){
00064     delete *it;
00065   }
00066   _cuts.clear();
00067 }
00068 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on 20 Jun 2014 for daqman by  doxygen 1.6.1