CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
stor::EventStreamSelector Class Reference

#include <EventStreamSelector.h>

Public Member Functions

bool acceptEvent (const I2OChain &)
 
const
EventStreamConfigurationInfo
configInfo () const
 
 EventStreamSelector (const EventStreamConfigurationInfo &)
 
void initialize (const InitMsgView &)
 
bool isInitialized () const
 
bool operator< (const EventStreamSelector &other) const
 
unsigned int outputModuleId () const
 
 ~EventStreamSelector ()
 

Private Attributes

const EventStreamConfigurationInfo configInfo_
 
TriggerSelectorPtr eventSelector_
 
bool initialized_
 
unsigned int outputModuleId_
 

Detailed Description

Accepts or rejects an event based on the EventStreamConfigurationInfo

Author:
mommsen
Revision:
1.8
Date:
2011/03/07 15:31:31

Definition at line 25 of file EventStreamSelector.h.

Constructor & Destructor Documentation

stor::EventStreamSelector::EventStreamSelector ( const EventStreamConfigurationInfo configInfo)

Definition at line 18 of file EventStreamSelector.cc.

References cond::rpcobgas::time.

18  :
19  initialized_( false ),
20  outputModuleId_(0),
22  {
23  srand( time(0) );
24  }
const EventStreamConfigurationInfo & configInfo() const
const EventStreamConfigurationInfo configInfo_
stor::EventStreamSelector::~EventStreamSelector ( )
inline

Definition at line 34 of file EventStreamSelector.h.

34 {}

Member Function Documentation

bool stor::EventStreamSelector::acceptEvent ( const I2OChain ioc)

Definition at line 77 of file EventStreamSelector.cc.

References configInfo_, eventSelector_, stor::EventStreamConfigurationInfo::fractionToDisk(), stor::I2OChain::hltTriggerBits(), stor::I2OChain::hltTriggerCount(), initialized_, stor::I2OChain::outputModuleId(), outputModuleId_, and rand().

78  {
79  if( !initialized_ ) return false;
80 
81  if ( configInfo_.fractionToDisk() == 0 ) return false;
82 
83  if( ioc.outputModuleId() != outputModuleId_ ) return false;
84 
85  std::vector<unsigned char> hlt_out;
86  ioc.hltTriggerBits( hlt_out );
87 
88  if ( ! eventSelector_->acceptEvent( &hlt_out[0], ioc.hltTriggerCount() ) )
89  return false;
90 
91  if ( configInfo_.fractionToDisk() < 1 )
92  {
93  double rand = static_cast<double>(std::rand())/static_cast<double>(RAND_MAX);
94  if ( rand > configInfo_.fractionToDisk() ) return false;
95  }
96 
97  return true;
98  }
TriggerSelectorPtr eventSelector_
Signal rand(Signal arg)
Definition: vlib.cc:442
const EventStreamConfigurationInfo configInfo_
const EventStreamConfigurationInfo& stor::EventStreamSelector::configInfo ( ) const
inline

Definition at line 44 of file EventStreamSelector.h.

References configInfo_.

Referenced by operator<().

44 { return configInfo_; }
const EventStreamConfigurationInfo configInfo_
void stor::EventStreamSelector::initialize ( const InitMsgView imv)

Definition at line 27 of file EventStreamSelector.cc.

References edm::ParameterSet::addParameter(), configInfo_, alignCSCRings::e, stor::EventStreamConfigurationInfo::eventSelection(), eventSelector_, cppFunctionSkipper::exception, InitMsgView::hltTriggerNames(), initialized_, InitMsgView::outputModuleId(), outputModuleId_, stor::EventStreamConfigurationInfo::outputModuleLabel(), InitMsgView::outputModuleLabel(), stor::EventStreamConfigurationInfo::streamLabel(), stor::EventStreamConfigurationInfo::triggerSelection(), and cms::Exception::what().

Referenced by stor::EventDistributor::tagCompleteEventForQueues().

28  {
29 
30  if( initialized_ ) return;
31 
32  if( configInfo_.outputModuleLabel() != imv.outputModuleLabel() ) return;
33 
35 
36  edm::ParameterSet pset;
37  pset.addParameter<std::string>( "TriggerSelector", configInfo_.triggerSelection() );
38  pset.addParameter<Strings>( "SelectEvents", configInfo_.eventSelection() );
39 
40  Strings tnames;
41  imv.hltTriggerNames( tnames );
42 
43  std::ostringstream errorMsg;
44  errorMsg << "Cannot initialize edm::EventSelector for stream " <<
45  configInfo_.streamLabel() << " requesting output module ID" <<
46  outputModuleId_ << " with label " << configInfo_.outputModuleLabel() <<
47  " and HLT trigger names";
48  boost::lambda::placeholder1_type arg1;
49  std::for_each(tnames.begin(), tnames.end(), errorMsg << boost::lambda::constant(" ") << arg1);
50  try
51  {
52  eventSelector_.reset( new TriggerSelector( pset, tnames ) );
53  }
54  catch ( edm::Exception& e )
55  {
56  errorMsg << e.what();
57 
58  XCEPT_RAISE(stor::exception::InvalidEventSelection, errorMsg.str());
59  }
60  catch( std::exception &e )
61  {
62  errorMsg << e.what();
63 
64  XCEPT_RAISE(stor::exception::InvalidEventSelection, errorMsg.str());
65  }
66  catch(...)
67  {
68  errorMsg << "Unknown exception";
69 
70  XCEPT_RAISE(stor::exception::InvalidEventSelection, errorMsg.str());
71  }
72 
73  initialized_ = true;
74 
75  }
virtual char const * what() const
Definition: Exception.cc:141
const std::string & triggerSelection() const
std::vector< std::string > Strings
Definition: MsgTools.h:18
void hltTriggerNames(Strings &save_here) const
Definition: InitMessage.cc:142
TriggerSelectorPtr eventSelector_
void addParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:145
std::string outputModuleLabel() const
Definition: InitMessage.cc:132
uint32 outputModuleId() const
Definition: InitMessage.h:76
const EventStreamConfigurationInfo configInfo_
const std::string & outputModuleLabel() const
bool stor::EventStreamSelector::isInitialized ( ) const
inline

Definition at line 45 of file EventStreamSelector.h.

References initialized_.

bool stor::EventStreamSelector::operator< ( const EventStreamSelector other) const
inline

Definition at line 48 of file EventStreamSelector.h.

References configInfo(), and configInfo_.

49  { return ( configInfo_ < other.configInfo() ); }
const EventStreamConfigurationInfo configInfo_
unsigned int stor::EventStreamSelector::outputModuleId ( ) const
inline

Definition at line 43 of file EventStreamSelector.h.

References outputModuleId_.

43 { return outputModuleId_; }

Member Data Documentation

const EventStreamConfigurationInfo stor::EventStreamSelector::configInfo_
private

Definition at line 55 of file EventStreamSelector.h.

Referenced by acceptEvent(), configInfo(), initialize(), and operator<().

TriggerSelectorPtr stor::EventStreamSelector::eventSelector_
private

Definition at line 57 of file EventStreamSelector.h.

Referenced by acceptEvent(), and initialize().

bool stor::EventStreamSelector::initialized_
private

Definition at line 53 of file EventStreamSelector.h.

Referenced by acceptEvent(), initialize(), and isInitialized().

unsigned int stor::EventStreamSelector::outputModuleId_
private

Definition at line 54 of file EventStreamSelector.h.

Referenced by acceptEvent(), initialize(), and outputModuleId().