![]() |
![]() |
00001 // -*- C++ -*- 00002 // 00003 // Package: HLTEventNumberFilter 00004 // Class: HLTEventNumberFilter 00005 // 00013 // 00014 // Original Author: Martin Grunewald 00015 // Created: Tue Jan 22 13:55:00 CET 2008 00016 // $Id: HLTEventNumberFilter.cc,v 1.2 2009/06/24 14:49:57 gruen Exp $ 00017 // 00018 // 00019 00020 00021 // system include files 00022 #include <string> 00023 #include <iostream> 00024 #include <memory> 00025 00026 // user include files 00027 #include "HLTrigger/special/interface/HLTEventNumberFilter.h" 00028 00029 // 00030 // constructors and destructor 00031 // 00032 HLTEventNumberFilter::HLTEventNumberFilter(const edm::ParameterSet& iConfig) 00033 { 00034 //now do what ever initialization is needed 00035 00036 period_ = iConfig.getParameter<unsigned int>("period") ; 00037 invert_ = iConfig.getParameter<bool>("invert") ; 00038 } 00039 00040 00041 HLTEventNumberFilter::~HLTEventNumberFilter() 00042 { 00043 00044 // do anything here that needs to be done at desctruction time 00045 // (e.g. close files, deallocate resources etc.) 00046 00047 } 00048 00049 00050 // 00051 // member functions 00052 // 00053 00054 // ------------ method called on each new Event ------------ 00055 bool 00056 HLTEventNumberFilter::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) 00057 { 00058 using namespace edm; 00059 00060 if (iEvent.isRealData()) { 00061 bool accept(false); 00062 if (period_!=0) accept = ( ( (iEvent.id().event())%period_ ) == 0 ); 00063 if (invert_) accept = !accept; 00064 return accept; 00065 } else { 00066 return true; 00067 } 00068 00069 }