CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/FWCore/Framework/src/EDFilter.cc

Go to the documentation of this file.
00001 /*----------------------------------------------------------------------
00002   
00003 
00004 ----------------------------------------------------------------------*/
00005 
00006 #include "FWCore/Framework/interface/EDFilter.h"
00007 #include "FWCore/Framework/src/CPCSentry.h"
00008 #include "FWCore/Framework/interface/Event.h"
00009 #include "FWCore/Framework/interface/LuminosityBlock.h"
00010 #include "FWCore/Framework/interface/Run.h"
00011 
00012 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
00013 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
00014 
00015 namespace edm {
00016   EDFilter::~EDFilter() {
00017   }
00018 
00019   bool
00020   EDFilter::doEvent(EventPrincipal& ep, EventSetup const& c,
00021                      CurrentProcessingContext const* cpc) {
00022     detail::CPCSentry sentry(current_context_, cpc);
00023     bool rc = false;
00024     Event e(ep, moduleDescription_);
00025     rc = this->filter(e, c);
00026     e.commit_(&previousParentage_, &previousParentageId_);
00027     return rc;
00028   }
00029 
00030   void 
00031   EDFilter::doBeginJob() { 
00032     this->beginJob();
00033   }
00034    
00035   void EDFilter::doEndJob() { 
00036     this->endJob();
00037   }
00038 
00039   bool
00040   EDFilter::doBeginRun(RunPrincipal& rp, EventSetup const& c,
00041                         CurrentProcessingContext const* cpc) {
00042     detail::CPCSentry sentry(current_context_, cpc);
00043     bool rc = false;
00044     Run r(rp, moduleDescription_);
00045     rc = this->beginRun(r, c);
00046     r.commit_();
00047     return rc;
00048   }
00049 
00050   bool
00051   EDFilter::doEndRun(RunPrincipal& rp, EventSetup const& c,
00052                         CurrentProcessingContext const* cpc) {
00053     detail::CPCSentry sentry(current_context_, cpc);
00054     bool rc = false;
00055     Run r(rp, moduleDescription_);
00056     rc = this->endRun(r, c);
00057     r.commit_();
00058     return rc;
00059   }
00060 
00061   bool
00062   EDFilter::doBeginLuminosityBlock(LuminosityBlockPrincipal& lbp, EventSetup const& c,
00063                         CurrentProcessingContext const* cpc) {
00064     detail::CPCSentry sentry(current_context_, cpc);
00065     bool rc = false;
00066     LuminosityBlock lb(lbp, moduleDescription_);
00067     rc = this->beginLuminosityBlock(lb, c);
00068     lb.commit_();
00069     return rc;
00070   }
00071 
00072   bool
00073   EDFilter::doEndLuminosityBlock(LuminosityBlockPrincipal& lbp, EventSetup const& c,
00074                         CurrentProcessingContext const* cpc) {
00075     detail::CPCSentry sentry(current_context_, cpc);
00076     bool rc = false;
00077     LuminosityBlock lb(lbp, moduleDescription_);
00078     rc = this->endLuminosityBlock(lb, c);
00079     lb.commit_();
00080     return rc;
00081   }
00082 
00083   void
00084   EDFilter::doRespondToOpenInputFile(FileBlock const& fb) {
00085     respondToOpenInputFile(fb);
00086   }
00087 
00088   void
00089   EDFilter::doRespondToCloseInputFile(FileBlock const& fb) {
00090     respondToCloseInputFile(fb);
00091   }
00092 
00093   void
00094   EDFilter::doRespondToOpenOutputFiles(FileBlock const& fb) {
00095     respondToOpenOutputFiles(fb);
00096   }
00097 
00098   void
00099   EDFilter::doRespondToCloseOutputFiles(FileBlock const& fb) {
00100     respondToCloseOutputFiles(fb);
00101   }
00102 
00103   void 
00104   EDFilter::doPreForkReleaseResources() {
00105     preForkReleaseResources();
00106   }
00107   
00108   void 
00109   EDFilter::doPostForkReacquireResources(unsigned int iChildIndex, unsigned int iNumberOfChildren) {
00110     postForkReacquireResources(iChildIndex, iNumberOfChildren);
00111   }
00112   
00113   CurrentProcessingContext const*
00114   EDFilter::currentContext() const {
00115     return current_context_;
00116   }
00117   
00118   void
00119   EDFilter::fillDescriptions(ConfigurationDescriptions& descriptions) {
00120     ParameterSetDescription desc;
00121     desc.setUnknown();
00122     descriptions.addDefault(desc);
00123   }
00124 
00125   static const std::string kBaseType("EDFilter");
00126   const std::string&
00127   EDFilter::baseType() {
00128     return kBaseType;
00129   }
00130 }