CMS 3D CMS Logo

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

#include <SubProcess.h>

Inheritance diagram for edm::SubProcess:
edm::OutputModule

Classes

struct  ESInfo
 

Public Member Functions

void clearCounters ()
 Clear all the counters in the trigger report. More...
 
void closeOutputFiles ()
 
void doBeginLuminosityBlock (LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts)
 
void doBeginRun (RunPrincipal const &principal, IOVSyncValue const &ts)
 
void doEndLuminosityBlock (LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts)
 
void doEndRun (RunPrincipal const &principal, IOVSyncValue const &ts)
 
void doEvent (EventPrincipal const &principal, IOVSyncValue const &ts)
 
void enableEndPaths (bool active)
 
bool endPathsEnabled () const
 Return true if end_paths are active, and false if they are inactive. More...
 
std::vector< ModuleDescription
const * > 
getAllModuleDescriptions () const
 Return a vector allowing const access to all the ModuleDescriptions for this SubProcess. More...
 
void getTriggerReport (TriggerReport &rep) const
 
void openNewOutputFilesIfNeeded ()
 
void openOutputFiles (FileBlock &fb)
 
void postForkReacquireResources (unsigned int iChildIndex, unsigned int iNumberOfChildren)
 
void preForkReleaseResources ()
 
void respondToCloseInputFile (FileBlock const &fb)
 
void respondToCloseOutputFiles (FileBlock const &fb)
 
void respondToOpenInputFile (FileBlock const &fb)
 
void respondToOpenOutputFiles (FileBlock const &fb)
 
bool shouldWeCloseOutput () const
 
 SubProcess (ParameterSet &parameterSet, ParameterSet const &topLevelParameterSet, boost::shared_ptr< ProductRegistry const > parentProductRegistry, eventsetup::EventSetupsController &esController, ActivityRegistry &parentActReg, ServiceToken const &token, serviceregistry::ServiceLegacy iLegacy)
 
bool const terminate () const
 
int totalEvents () const
 
int totalEventsFailed () const
 
int totalEventsPassed () const
 Return the number of events which have been passed by one or more trigger paths. More...
 
void writeLumi (ProcessHistoryID const &parentPhID, int runNumber, int lumiNumber)
 
void writeRun (ProcessHistoryID const &parentPhID, int runNumber)
 
virtual ~SubProcess ()
 
- Public Member Functions inherited from edm::OutputModule
BranchChildren const & branchChildren () const
 
boost::array< bool,
NumBranchTypes > const & 
hasNewlyDroppedBranch () const
 
SelectionsArray const & keptProducts () const
 
int maxEvents () const
 
 OutputModule (ParameterSet const &pset)
 
std::string const & processName () const
 
int remainingEvents () const
 
bool selected (BranchDescription const &desc) const
 
void selectProducts ()
 
bool wantAllEvents () const
 
virtual ~OutputModule ()
 

Private Member Functions

virtual void beginJob ()
 
virtual void beginLuminosityBlock (LuminosityBlockPrincipal const &lb)
 
virtual void beginRun (RunPrincipal const &r)
 
virtual void endJob ()
 
virtual void endLuminosityBlock (LuminosityBlockPrincipal const &lb)
 
virtual void endRun (RunPrincipal const &r)
 
void propagateProducts (BranchType type, Principal const &parentPrincipal, Principal &principal) const
 
virtual void write (EventPrincipal const &e)
 
virtual void writeLuminosityBlock (LuminosityBlockPrincipal const &)
 
virtual void writeRun (RunPrincipal const &)
 

Private Attributes

boost::shared_ptr< ActionTable
const > 
act_table_
 
std::auto_ptr< ESInfoesInfo_
 
boost::shared_ptr
< eventsetup::EventSetupProvider
esp_
 
boost::shared_ptr
< ProductRegistry const > 
parentPreg_
 
std::map< ProcessHistoryID,
ProcessHistoryID
parentToChildPhID_
 
boost::shared_ptr
< SignallingProductRegistry
preg_
 
PrincipalCache principalCache_
 
boost::shared_ptr
< ProcessConfiguration
processConfiguration_
 
std::auto_ptr< Scheduleschedule_
 
ServiceToken serviceToken_
 
std::auto_ptr< SubProcesssubProcess_
 

Additional Inherited Members

- Public Types inherited from edm::OutputModule
typedef OutputModule ModuleType
 
typedef OutputWorker WorkerType
 
- Static Public Member Functions inherited from edm::OutputModule
static const std::string & baseType ()
 
static void fillDescription (ParameterSetDescription &desc)
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::OutputModule
CurrentProcessingContext const * currentContext () const
 
ModuleDescription const & description () const
 
void doBeginJob ()
 
bool doBeginLuminosityBlock (LuminosityBlockPrincipal const &lbp, EventSetup const &c, CurrentProcessingContext const *cpc)
 
bool doBeginRun (RunPrincipal const &rp, EventSetup const &c, CurrentProcessingContext const *cpc)
 
void doEndJob ()
 
bool doEndLuminosityBlock (LuminosityBlockPrincipal const &lbp, EventSetup const &c, CurrentProcessingContext const *cpc)
 
bool doEndRun (RunPrincipal const &rp, EventSetup const &c, CurrentProcessingContext const *cpc)
 
bool doEvent (EventPrincipal const &ep, EventSetup const &c, CurrentProcessingContext const *cpc)
 
Trig getTriggerResults (Event const &ep) const
 
Trig getTriggerResults (EventPrincipal const &ep) const
 
ParameterSetID selectorConfig () const
 

Detailed Description

Definition at line 26 of file SubProcess.h.

Constructor & Destructor Documentation

edm::SubProcess::SubProcess ( ParameterSet parameterSet,
ParameterSet const &  topLevelParameterSet,
boost::shared_ptr< ProductRegistry const >  parentProductRegistry,
eventsetup::EventSetupsController esController,
ActivityRegistry parentActReg,
ServiceToken const &  token,
serviceregistry::ServiceLegacy  iLegacy 
)

Definition at line 25 of file SubProcess.cc.

References act_table_, edm::ParameterSet::addUntrackedParameter(), edm::ActivityRegistry::connectToSubProcess(), esp_, edm::ParameterSet::exists(), edm::ParameterSet::getUntrackedParameterSet(), edm::PrincipalCache::insert(), edm::eventsetup::EventSetupsController::makeProvider(), edm::OutputModule::maxEvents(), edm::ParameterSet::popParameterSet(), edm::popSubProcessParameterSet(), preg_, principalCache_, processConfiguration_, schedule_, serviceToken_, edm::IllegalParameters::setThrowAnException(), and subProcess_.

31  :
32  OutputModule(parameterSet),
33  serviceToken_(),
34  parentPreg_(parentProductRegistry),
35  preg_(),
36  act_table_(),
39  esp_(),
40  schedule_(),
42  esInfo_(0),
43  subProcess_() {
44 
45  std::string const maxEvents("maxEvents");
46  std::string const maxLumis("maxLuminosityBlocks");
47 
48  std::auto_ptr<ParameterSet> processParameterSet = parameterSet.popParameterSet(std::string("process"));
49 
50  // if this process has a maxEvents or maxLuminosityBlocks parameter set, remove them.
51  if(processParameterSet->exists(maxEvents)) {
52  processParameterSet->popParameterSet(maxEvents);
53  }
54  if(processParameterSet->exists(maxLumis)) {
55  processParameterSet->popParameterSet(maxLumis);
56  }
57 
58  // if the top level process has a maxEvents or maxLuminosityBlocks parameter set, add them to this process.
59  if(topLevelParameterSet.exists(maxEvents)) {
60  processParameterSet->addUntrackedParameter<ParameterSet>(maxEvents, topLevelParameterSet.getUntrackedParameterSet(maxEvents));
61  }
62  if(topLevelParameterSet.exists(maxLumis)) {
63  processParameterSet->addUntrackedParameter<ParameterSet>(maxLumis, topLevelParameterSet.getUntrackedParameterSet(maxLumis));
64  }
65 
66  // If this process has a subprocess, pop the subprocess parameter set out of the process parameter set
67 
68  boost::shared_ptr<ParameterSet> subProcessParameterSet(popSubProcessParameterSet(*processParameterSet).release());
69 
70  ScheduleItems items(*parentProductRegistry);
71 
72  ParameterSet const& optionsPset(processParameterSet->getUntrackedParameterSet("options", ParameterSet()));
73  IllegalParameters::setThrowAnException(optionsPset.getUntrackedParameter<bool>("throwIfIllegalParameter", true));
74 
75  //initialize the services
76  ServiceToken iToken;
77 
78  // get any configured services.
79  std::auto_ptr<std::vector<ParameterSet> > serviceSets = processParameterSet->popVParameterSet(std::string("services"));
80 
81  ServiceToken newToken = items.initServices(*serviceSets, *processParameterSet, token, iLegacy, false);
82  parentActReg.connectToSubProcess(*items.actReg_);
83  serviceToken_ = items.addCPRandTNS(*processParameterSet, newToken);
84 
85 
86  //make the services available
88 
89  // intialize miscellaneous items
90  boost::shared_ptr<CommonParams> common(items.initMisc(*processParameterSet));
91 
92  // intialize the event setup provider
93  esp_ = esController.makeProvider(*processParameterSet, *common);
94 
95  // intialize the Schedule
96  schedule_ = items.initSchedule(*processParameterSet);
97 
98  // set the items
99  act_table_ = items.act_table_;
100  preg_ = items.preg_;
101  processConfiguration_ = items.processConfiguration_;
102 
103  boost::shared_ptr<EventPrincipal> ep(new EventPrincipal(preg_, *processConfiguration_));
105 
106  if(subProcessParameterSet) {
107  subProcess_.reset(new SubProcess(*subProcessParameterSet, topLevelParameterSet, preg_, esController, *items.actReg_, newToken, iLegacy));
108  }
109  }
boost::shared_ptr< SignallingProductRegistry > preg_
Definition: SubProcess.h:212
boost::shared_ptr< ProductRegistry const > parentPreg_
Definition: SubProcess.h:211
std::auto_ptr< ParameterSet > popSubProcessParameterSet(ParameterSet &parameterSet)
Definition: SubProcess.cc:306
boost::shared_ptr< eventsetup::EventSetupProvider > esp_
Definition: SubProcess.h:216
SubProcess(ParameterSet &parameterSet, ParameterSet const &topLevelParameterSet, boost::shared_ptr< ProductRegistry const > parentProductRegistry, eventsetup::EventSetupsController &esController, ActivityRegistry &parentActReg, ServiceToken const &token, serviceregistry::ServiceLegacy iLegacy)
Definition: SubProcess.cc:25
ServiceToken serviceToken_
Definition: SubProcess.h:210
static void setThrowAnException(bool v)
std::auto_ptr< ESInfo > esInfo_
Definition: SubProcess.h:219
boost::shared_ptr< ActionTable const > act_table_
Definition: SubProcess.h:213
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:218
int maxEvents() const
Definition: OutputModule.h:46
bool insert(boost::shared_ptr< RunPrincipal > rp)
boost::shared_ptr< ProcessConfiguration > processConfiguration_
Definition: SubProcess.h:214
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
PrincipalCache principalCache_
Definition: SubProcess.h:215
OutputModule(ParameterSet const &pset)
edm::SubProcess::~SubProcess ( )
virtual

Definition at line 111 of file SubProcess.cc.

111 {}

Member Function Documentation

void edm::SubProcess::beginJob ( void  )
privatevirtual

Reimplemented from edm::OutputModule.

Definition at line 114 of file SubProcess.cc.

References Selections::begin(), Selections::end(), edm::InEvent, edm::InLumi, edm::InRun, edm::OutputModule::keptProducts(), preg_, schedule_, serviceToken_, and subProcess_.

114  {
115  // Mark dropped branches as dropped in the product registry.
116  {
117  std::set<BranchID> keptBranches;
118  Selections const& keptVectorR = keptProducts()[InRun];
119  for(Selections::const_iterator it = keptVectorR.begin(), itEnd = keptVectorR.end(); it != itEnd; ++it) {
120  keptBranches.insert((*it)->branchID());
121  }
122  Selections const& keptVectorL = keptProducts()[InLumi];
123  for(Selections::const_iterator it = keptVectorL.begin(), itEnd = keptVectorL.end(); it != itEnd; ++it) {
124  keptBranches.insert((*it)->branchID());
125  }
126  Selections const& keptVectorE = keptProducts()[InEvent];
127  for(Selections::const_iterator it = keptVectorE.begin(), itEnd = keptVectorE.end(); it != itEnd; ++it) {
128  keptBranches.insert((*it)->branchID());
129  }
130  for(ProductRegistry::ProductList::const_iterator it = preg_->productList().begin(), itEnd = preg_->productList().end(); it != itEnd; ++it) {
131  if(keptBranches.find(it->second.branchID()) == keptBranches.end()) {
132  it->second.setDropped();
133  }
134  }
135  }
137  schedule_->beginJob();
138  if(subProcess_.get()) subProcess_->doBeginJob();
139  }
boost::shared_ptr< SignallingProductRegistry > preg_
Definition: SubProcess.h:212
SelectionsArray const & keptProducts() const
Definition: OutputModule.h:56
ServiceToken serviceToken_
Definition: SubProcess.h:210
iterator end()
Definition: Selections.h:367
iterator begin()
Definition: Selections.h:366
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::beginLuminosityBlock ( LuminosityBlockPrincipal const &  lb)
privatevirtual

Reimplemented from edm::OutputModule.

Definition at line 242 of file SubProcess.cc.

References printConversionInfo::aux, edm::LuminosityBlockPrincipal::aux(), edm::Principal::branchMapperPtr(), esInfo_, edm::InLumi, edm::PrincipalCache::insert(), edm::PrincipalCache::lumiPrincipalPtr(), parentToChildPhID_, preg_, principalCache_, processConfiguration_, edm::LuminosityBlockAuxiliary::processHistoryID(), edm::Principal::processHistoryID(), propagateProducts(), edm::PrincipalCache::runPrincipalPtr(), schedule_, edm::Principal::store(), and subProcess_.

242  {
243  boost::shared_ptr<LuminosityBlockAuxiliary> aux(new LuminosityBlockAuxiliary(principal.aux()));
244  aux->setProcessHistoryID(principal.processHistoryID());
245  boost::shared_ptr<LuminosityBlockPrincipal> lbpp(new LuminosityBlockPrincipal(aux, preg_, *processConfiguration_, principalCache_.runPrincipalPtr()));
246  lbpp->fillLuminosityBlockPrincipal(principal.branchMapperPtr(), principal.store());
247  principalCache_.insert(lbpp);
248  parentToChildPhID_.insert(std::make_pair(principal.aux().processHistoryID(), principal.processHistoryID()));
249  parentToChildPhID_.insert(std::make_pair(principal.processHistoryID(), lbpp->processHistoryID()));
250  LuminosityBlockPrincipal& lbp = *principalCache_.lumiPrincipalPtr();
252  typedef OccurrenceTraits<LuminosityBlockPrincipal, BranchActionBegin> Traits;
253  schedule_->processOneOccurrence<Traits>(lbp, esInfo_->es_);
254  if(subProcess_.get()) subProcess_->doBeginLuminosityBlock(lbp, esInfo_->ts_);
255  }
boost::shared_ptr< SignallingProductRegistry > preg_
Definition: SubProcess.h:212
boost::shared_ptr< LuminosityBlockPrincipal > lumiPrincipalPtr(ProcessHistoryID const &phid, int run, int lumi)
boost::shared_ptr< RunPrincipal > runPrincipalPtr(ProcessHistoryID const &phid, int run)
std::auto_ptr< ESInfo > esInfo_
Definition: SubProcess.h:219
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:218
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:285
bool insert(boost::shared_ptr< RunPrincipal > rp)
boost::shared_ptr< ProcessConfiguration > processConfiguration_
Definition: SubProcess.h:214
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
PrincipalCache principalCache_
Definition: SubProcess.h:215
void edm::SubProcess::beginRun ( RunPrincipal const &  r)
privatevirtual

Reimplemented from edm::OutputModule.

Definition at line 190 of file SubProcess.cc.

References printConversionInfo::aux, edm::RunPrincipal::aux(), edm::Principal::branchMapperPtr(), esInfo_, edm::InRun, edm::PrincipalCache::insert(), parentToChildPhID_, preg_, principalCache_, processConfiguration_, edm::RunAuxiliary::processHistoryID(), edm::Principal::processHistoryID(), propagateProducts(), edm::PrincipalCache::runPrincipalPtr(), schedule_, edm::Principal::store(), and subProcess_.

190  {
191  boost::shared_ptr<RunAuxiliary> aux(new RunAuxiliary(principal.aux()));
192  aux->setProcessHistoryID(principal.processHistoryID());
193  boost::shared_ptr<RunPrincipal> rpp(new RunPrincipal(aux, preg_, *processConfiguration_));
194  rpp->fillRunPrincipal(principal.branchMapperPtr(), principal.store());
195  principalCache_.insert(rpp);
196  parentToChildPhID_.insert(std::make_pair(principal.aux().processHistoryID(), principal.processHistoryID()));
197  parentToChildPhID_.insert(std::make_pair(principal.processHistoryID(), rpp->processHistoryID()));
198  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
200  typedef OccurrenceTraits<RunPrincipal, BranchActionBegin> Traits;
201  schedule_->processOneOccurrence<Traits>(rp, esInfo_->es_);
202  if(subProcess_.get()) subProcess_->doBeginRun(rp, esInfo_->ts_);
203  }
boost::shared_ptr< SignallingProductRegistry > preg_
Definition: SubProcess.h:212
boost::shared_ptr< RunPrincipal > runPrincipalPtr(ProcessHistoryID const &phid, int run)
std::auto_ptr< ESInfo > esInfo_
Definition: SubProcess.h:219
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:218
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:285
bool insert(boost::shared_ptr< RunPrincipal > rp)
boost::shared_ptr< ProcessConfiguration > processConfiguration_
Definition: SubProcess.h:214
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
PrincipalCache principalCache_
Definition: SubProcess.h:215
void edm::SubProcess::clearCounters ( )
inline

Clear all the counters in the trigger report.

Definition at line 185 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

185  {
187  schedule_->clearCounters();
188  if(subProcess_.get()) subProcess_->clearCounters();
189  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::closeOutputFiles ( )
inline

Definition at line 63 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

63  {
65  schedule_->closeOutputFiles();
66  if(subProcess_.get()) subProcess_->closeOutputFiles();
67  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::doBeginLuminosityBlock ( LuminosityBlockPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 233 of file SubProcess.cc.

References esInfo_, esp_, and serviceToken_.

233  {
235  esInfo_.reset(new ESInfo(ts, *esp_));
236  CurrentProcessingContext cpc;
238  esInfo_.reset();
239  }
boost::shared_ptr< eventsetup::EventSetupProvider > esp_
Definition: SubProcess.h:216
void doBeginLuminosityBlock(LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts)
Definition: SubProcess.cc:233
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< ESInfo > esInfo_
Definition: SubProcess.h:219
void edm::SubProcess::doBeginRun ( RunPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 181 of file SubProcess.cc.

References esInfo_, esp_, and serviceToken_.

181  {
183  esInfo_.reset(new ESInfo(ts, *esp_));
184  CurrentProcessingContext cpc;
185  doBeginRun(principal, esInfo_->es_, &cpc);
186  esInfo_.reset();
187  }
void doBeginRun(RunPrincipal const &principal, IOVSyncValue const &ts)
Definition: SubProcess.cc:181
boost::shared_ptr< eventsetup::EventSetupProvider > esp_
Definition: SubProcess.h:216
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< ESInfo > esInfo_
Definition: SubProcess.h:219
void edm::SubProcess::doEndLuminosityBlock ( LuminosityBlockPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 258 of file SubProcess.cc.

References esInfo_, esp_, and serviceToken_.

258  {
260  esInfo_.reset(new ESInfo(ts, *esp_));
261  CurrentProcessingContext cpc;
263  esInfo_.reset();
264  }
boost::shared_ptr< eventsetup::EventSetupProvider > esp_
Definition: SubProcess.h:216
void doEndLuminosityBlock(LuminosityBlockPrincipal const &principal, IOVSyncValue const &ts)
Definition: SubProcess.cc:258
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< ESInfo > esInfo_
Definition: SubProcess.h:219
void edm::SubProcess::doEndRun ( RunPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 206 of file SubProcess.cc.

References esInfo_, esp_, and serviceToken_.

206  {
208  esInfo_.reset(new ESInfo(ts, *esp_));
209  CurrentProcessingContext cpc;
210  doEndRun(principal, esInfo_->es_, &cpc);
211  esInfo_.reset();
212  }
boost::shared_ptr< eventsetup::EventSetupProvider > esp_
Definition: SubProcess.h:216
void doEndRun(RunPrincipal const &principal, IOVSyncValue const &ts)
Definition: SubProcess.cc:206
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< ESInfo > esInfo_
Definition: SubProcess.h:219
void edm::SubProcess::doEvent ( EventPrincipal const &  principal,
IOVSyncValue const &  ts 
)

Definition at line 154 of file SubProcess.cc.

References esInfo_, esp_, and serviceToken_.

154  {
156  esInfo_.reset(new ESInfo(ts, *esp_));
157  CurrentProcessingContext cpc;
158  doEvent(principal, esInfo_->es_, &cpc);
159  esInfo_.reset();
160  }
boost::shared_ptr< eventsetup::EventSetupProvider > esp_
Definition: SubProcess.h:216
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< ESInfo > esInfo_
Definition: SubProcess.h:219
void doEvent(EventPrincipal const &principal, IOVSyncValue const &ts)
Definition: SubProcess.cc:154
void edm::SubProcess::enableEndPaths ( bool  active)
inline

Turn end_paths "off" if "active" is false; Turn end_paths "on" if "active" is true.

Definition at line 158 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

158  {
160  schedule_->enableEndPaths(active);
161  if(subProcess_.get()) subProcess_->enableEndPaths(active);
162  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::endJob ( void  )
privatevirtual

Reimplemented from edm::OutputModule.

Definition at line 142 of file SubProcess.cc.

References schedule_, serviceToken_, and subProcess_.

142  {
144  schedule_->endJob();
145  if(subProcess_.get()) subProcess_->doEndJob();
146  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::endLuminosityBlock ( LuminosityBlockPrincipal const &  lb)
privatevirtual

Reimplemented from edm::OutputModule.

Definition at line 267 of file SubProcess.cc.

References esInfo_, edm::InLumi, edm::PrincipalCache::lumiPrincipalPtr(), principalCache_, propagateProducts(), schedule_, and subProcess_.

267  {
268  LuminosityBlockPrincipal& lbp = *principalCache_.lumiPrincipalPtr();
270  typedef OccurrenceTraits<LuminosityBlockPrincipal, BranchActionEnd> Traits;
271  schedule_->processOneOccurrence<Traits>(lbp, esInfo_->es_);
272  if(subProcess_.get()) subProcess_->doEndLuminosityBlock(lbp, esInfo_->ts_);
273  }
boost::shared_ptr< LuminosityBlockPrincipal > lumiPrincipalPtr(ProcessHistoryID const &phid, int run, int lumi)
std::auto_ptr< ESInfo > esInfo_
Definition: SubProcess.h:219
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:285
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
PrincipalCache principalCache_
Definition: SubProcess.h:215
bool edm::SubProcess::endPathsEnabled ( ) const
inline

Return true if end_paths are active, and false if they are inactive.

Definition at line 165 of file SubProcess.h.

References schedule_, and serviceToken_.

165  {
167  return schedule_->endPathsEnabled();
168  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
void edm::SubProcess::endRun ( RunPrincipal const &  r)
privatevirtual

Reimplemented from edm::OutputModule.

Definition at line 215 of file SubProcess.cc.

References esInfo_, edm::InRun, principalCache_, propagateProducts(), edm::PrincipalCache::runPrincipalPtr(), schedule_, and subProcess_.

215  {
216  RunPrincipal& rp = *principalCache_.runPrincipalPtr();
218  typedef OccurrenceTraits<RunPrincipal, BranchActionEnd> Traits;
219  schedule_->processOneOccurrence<Traits>(rp, esInfo_->es_);
220  if(subProcess_.get()) subProcess_->doEndRun(rp, esInfo_->ts_);
221  }
boost::shared_ptr< RunPrincipal > runPrincipalPtr(ProcessHistoryID const &phid, int run)
std::auto_ptr< ESInfo > esInfo_
Definition: SubProcess.h:219
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:285
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
PrincipalCache principalCache_
Definition: SubProcess.h:215
std::vector<ModuleDescription const*> edm::SubProcess::getAllModuleDescriptions ( ) const

Return a vector allowing const access to all the ModuleDescriptions for this SubProcess.

*** N.B. *** Ownership of the ModuleDescriptions is not *** passed to the caller. Do not call delete on these *** pointers!

void edm::SubProcess::getTriggerReport ( TriggerReport rep) const
inline

Return the trigger report information on paths, modules-in-path, modules-in-endpath, and modules.

Definition at line 172 of file SubProcess.h.

References schedule_, and serviceToken_.

172  {
174  schedule_->getTriggerReport(rep);
175  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
void edm::SubProcess::openNewOutputFilesIfNeeded ( )
inline

Definition at line 70 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

70  {
72  schedule_->openNewOutputFilesIfNeeded();
73  if(subProcess_.get()) subProcess_->openNewOutputFilesIfNeeded();
74  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::openOutputFiles ( FileBlock fb)
inline

Definition at line 77 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

77  {
79  schedule_->openOutputFiles(fb);
80  if(subProcess_.get()) subProcess_->openOutputFiles(fb);
81  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::postForkReacquireResources ( unsigned int  iChildIndex,
unsigned int  iNumberOfChildren 
)
inlinevirtual

Reimplemented from edm::OutputModule.

Definition at line 123 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

123  {
125  schedule_->postForkReacquireResources(iChildIndex, iNumberOfChildren);
126  if(subProcess_.get()) subProcess_->postForkReacquireResources(iChildIndex, iNumberOfChildren);
127  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::preForkReleaseResources ( )
inlinevirtual

Reimplemented from edm::OutputModule.

Definition at line 117 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

117  {
119  schedule_->preForkReleaseResources();
120  if(subProcess_.get()) subProcess_->preForkReleaseResources();
121  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::propagateProducts ( BranchType  type,
Principal const &  parentPrincipal,
Principal principal 
) const
private

Definition at line 285 of file SubProcess.cc.

References Selections::begin(), Selections::end(), edm::Principal::getGroup(), edm::OutputModule::keptProducts(), and edm::GroupData::swap().

Referenced by beginLuminosityBlock(), beginRun(), endLuminosityBlock(), endRun(), and write().

285  {
286  Selections const& keptVector = keptProducts()[type];
287  for(Selections::const_iterator it = keptVector.begin(), itEnd = keptVector.end(); it != itEnd; ++it) {
288  boost::shared_ptr<Group const> parentGroup = parentPrincipal.getGroup((*it)->branchID(), false, false);
289  if(parentGroup) {
290  // Make copy of parent group data
291  GroupData parentData = parentGroup->groupData();
292  boost::shared_ptr<Group const> group = principal.getGroup((*it)->branchID(), false, false);
293  if(group) {
294  // Swap copy with this group data
295  GroupData& thisData = const_cast<GroupData&>(group->groupData());
296  thisData.swap(parentData);
297  // Sets unavailable flag, if known that product is not available
298  group->productUnavailable();
299  }
300  }
301  }
302  }
type
Definition: HCALResponse.h:22
SelectionsArray const & keptProducts() const
Definition: OutputModule.h:56
iterator end()
Definition: Selections.h:367
iterator begin()
Definition: Selections.h:366
void edm::SubProcess::respondToCloseInputFile ( FileBlock const &  fb)
inlinevirtual

Reimplemented from edm::OutputModule.

Definition at line 91 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

91  {
93  schedule_->respondToCloseInputFile(fb);
94  if(subProcess_.get()) subProcess_->respondToCloseInputFile(fb);
95  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::respondToCloseOutputFiles ( FileBlock const &  fb)
inlinevirtual

Reimplemented from edm::OutputModule.

Definition at line 105 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

105  {
107  schedule_->respondToCloseOutputFiles(fb);
108  if(subProcess_.get()) subProcess_->respondToCloseOutputFiles(fb);
109  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::respondToOpenInputFile ( FileBlock const &  fb)
inlinevirtual

Reimplemented from edm::OutputModule.

Definition at line 84 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

84  {
86  schedule_->respondToOpenInputFile(fb);
87  if(subProcess_.get()) subProcess_->respondToOpenInputFile(fb);
88  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
void edm::SubProcess::respondToOpenOutputFiles ( FileBlock const &  fb)
inlinevirtual

Reimplemented from edm::OutputModule.

Definition at line 98 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

98  {
100  schedule_->respondToOpenOutputFiles(fb);
101  if(subProcess_.get()) subProcess_->respondToOpenOutputFiles(fb);
102  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
bool edm::SubProcess::shouldWeCloseOutput ( ) const
inline

Definition at line 112 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

112  {
114  return schedule_->shouldWeCloseOutput() || (subProcess_.get() ? subProcess_->shouldWeCloseOutput() : false);
115  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
bool const edm::SubProcess::terminate ( void  ) const
inline

Return whether each output module has reached its maximum count. If there is a subprocess, get this information from the subprocess.

Definition at line 179 of file SubProcess.h.

References schedule_, serviceToken_, and subProcess_.

179  {
181  return subProcess_.get() ? subProcess_->terminate() : schedule_->terminate();
182  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
int edm::SubProcess::totalEvents ( ) const
inline

Return the number of events this SubProcess has tried to process (inclues both successes and failures, including failures due to exceptions during processing).

Definition at line 139 of file SubProcess.h.

References schedule_.

139  {
140  return schedule_->totalEvents();
141  }
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
int edm::SubProcess::totalEventsFailed ( ) const
inline

Return the number of events that have not passed any trigger. (N.B. totalEventsFailed() + totalEventsPassed() == totalEvents()

Definition at line 151 of file SubProcess.h.

References schedule_, and serviceToken_.

151  {
153  return schedule_->totalEventsFailed();
154  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
int edm::SubProcess::totalEventsPassed ( ) const
inline

Return the number of events which have been passed by one or more trigger paths.

Definition at line 144 of file SubProcess.h.

References schedule_, and serviceToken_.

144  {
146  return schedule_->totalEventsPassed();
147  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
void edm::SubProcess::write ( EventPrincipal const &  e)
privatevirtual

Implements edm::OutputModule.

Definition at line 163 of file SubProcess.cc.

References printConversionInfo::aux, edm::EventPrincipal::aux(), edm::Principal::branchMapperPtr(), esInfo_, edm::PrincipalCache::eventPrincipal(), edm::EventPrincipal::fillEventPrincipal(), edm::InEvent, edm::PrincipalCache::lumiPrincipalPtr(), principalCache_, edm::Principal::processHistoryID(), propagateProducts(), schedule_, edm::Principal::store(), and subProcess_.

163  {
164  std::auto_ptr<EventAuxiliary> aux(new EventAuxiliary(principal.aux()));
165  aux->setProcessHistoryID(principal.processHistoryID());
166  EventPrincipal& ep = principalCache_.eventPrincipal();
169  boost::shared_ptr<EventSelectionIDVector>(new EventSelectionIDVector), // UGH use subprocess specific parameter
170  boost::shared_ptr<BranchListIndexes>(new BranchListIndexes), // UGH figure this out
171  principal.branchMapperPtr(),
172  principal.store());
174  typedef OccurrenceTraits<EventPrincipal, BranchActionBegin> Traits;
175  schedule_->processOneOccurrence<Traits>(ep, esInfo_->es_);
176  if(subProcess_.get()) subProcess_->doEvent(ep, esInfo_->ts_);
177  ep.clearEventPrincipal();
178  }
boost::shared_ptr< LuminosityBlockPrincipal > lumiPrincipalPtr(ProcessHistoryID const &phid, int run, int lumi)
std::vector< EventSelectionID > EventSelectionIDVector
std::vector< BranchListIndex > BranchListIndexes
EventPrincipal & eventPrincipal()
std::auto_ptr< ESInfo > esInfo_
Definition: SubProcess.h:219
void fillEventPrincipal(std::auto_ptr< EventAuxiliary > aux, boost::shared_ptr< LuminosityBlockPrincipal > lbp, boost::shared_ptr< EventSelectionIDVector > eventSelectionIDs=boost::shared_ptr< EventSelectionIDVector >(new EventSelectionIDVector), boost::shared_ptr< BranchListIndexes > branchListIndexes=boost::shared_ptr< BranchListIndexes >(new BranchListIndexes), boost::shared_ptr< BranchMapper > mapper=boost::shared_ptr< BranchMapper >(new BranchMapper), boost::shared_ptr< DelayedReader > rtrv=boost::shared_ptr< DelayedReader >(new NoDelayedReader))
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
void propagateProducts(BranchType type, Principal const &parentPrincipal, Principal &principal) const
Definition: SubProcess.cc:285
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
PrincipalCache principalCache_
Definition: SubProcess.h:215
void edm::SubProcess::writeLumi ( ProcessHistoryID const &  parentPhID,
int  runNumber,
int  lumiNumber 
)

Definition at line 276 of file SubProcess.cc.

References edm::PrincipalCache::lumiPrincipal(), parentToChildPhID_, principalCache_, schedule_, serviceToken_, and subProcess_.

276  {
278  std::map<ProcessHistoryID, ProcessHistoryID>::const_iterator it = parentToChildPhID_.find(parentPhID);
279  assert(it != parentToChildPhID_.end());
280  schedule_->writeLumi(principalCache_.lumiPrincipal(it->second, runNumber, lumiNumber));
281  if(subProcess_.get()) subProcess_->writeLumi(it->second, runNumber, lumiNumber);
282  }
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:218
LuminosityBlockPrincipal & lumiPrincipal(ProcessHistoryID const &phid, int run, int lumi)
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
PrincipalCache principalCache_
Definition: SubProcess.h:215
virtual void edm::SubProcess::writeLuminosityBlock ( LuminosityBlockPrincipal const &  )
inlineprivatevirtual

Implements edm::OutputModule.

Definition at line 206 of file SubProcess.h.

206 { throw 0; }
void edm::SubProcess::writeRun ( ProcessHistoryID const &  parentPhID,
int  runNumber 
)

Definition at line 224 of file SubProcess.cc.

References parentToChildPhID_, principalCache_, edm::PrincipalCache::runPrincipal(), schedule_, serviceToken_, and subProcess_.

224  {
226  std::map<ProcessHistoryID, ProcessHistoryID>::const_iterator it = parentToChildPhID_.find(parentPhID);
227  assert(it != parentToChildPhID_.end());
228  schedule_->writeRun(principalCache_.runPrincipal(it->second, runNumber));
229  if(subProcess_.get()) subProcess_->writeRun(it->second, runNumber);
230  }
RunPrincipal & runPrincipal(ProcessHistoryID const &phid, int run)
ServiceToken serviceToken_
Definition: SubProcess.h:210
std::auto_ptr< Schedule > schedule_
Definition: SubProcess.h:217
std::map< ProcessHistoryID, ProcessHistoryID > parentToChildPhID_
Definition: SubProcess.h:218
std::auto_ptr< SubProcess > subProcess_
Definition: SubProcess.h:220
PrincipalCache principalCache_
Definition: SubProcess.h:215
virtual void edm::SubProcess::writeRun ( RunPrincipal const &  )
inlineprivatevirtual

Implements edm::OutputModule.

Definition at line 205 of file SubProcess.h.

205 { throw 0; }

Member Data Documentation

boost::shared_ptr<ActionTable const> edm::SubProcess::act_table_
private

Definition at line 213 of file SubProcess.h.

Referenced by SubProcess().

std::auto_ptr<ESInfo> edm::SubProcess::esInfo_
private
boost::shared_ptr<eventsetup::EventSetupProvider> edm::SubProcess::esp_
private
boost::shared_ptr<ProductRegistry const> edm::SubProcess::parentPreg_
private

Definition at line 211 of file SubProcess.h.

std::map<ProcessHistoryID, ProcessHistoryID> edm::SubProcess::parentToChildPhID_
private

Definition at line 218 of file SubProcess.h.

Referenced by beginLuminosityBlock(), beginRun(), writeLumi(), and writeRun().

boost::shared_ptr<SignallingProductRegistry> edm::SubProcess::preg_
private

Definition at line 212 of file SubProcess.h.

Referenced by beginJob(), beginLuminosityBlock(), beginRun(), and SubProcess().

PrincipalCache edm::SubProcess::principalCache_
private
boost::shared_ptr<ProcessConfiguration> edm::SubProcess::processConfiguration_
private

Definition at line 214 of file SubProcess.h.

Referenced by beginLuminosityBlock(), beginRun(), and SubProcess().

std::auto_ptr<Schedule> edm::SubProcess::schedule_
private
ServiceToken edm::SubProcess::serviceToken_
private
std::auto_ptr<SubProcess> edm::SubProcess::subProcess_
private