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 }