--- UserCode/MitProd/ObjectService/src/ObjectService.cc 2008/07/30 09:04:40 1.1 +++ UserCode/MitProd/ObjectService/src/ObjectService.cc 2008/07/30 11:24:43 1.2 @@ -1,4 +1,4 @@ -// $Id: ObjectService.cc,v 1.1 2008/07/30 09:04:40 loizides Exp $ +// $Id: ObjectService.cc,v 1.2 2008/07/30 11:24:43 loizides Exp $ #include "MitProd/ObjectService/interface/ObjectService.h" #include "DataFormats/Provenance/interface/ModuleDescription.h" @@ -6,8 +6,7 @@ #include "FWCore/ServiceRegistry/interface/ActivityRegistry.h" #include "FWCore/ServiceRegistry/interface/Service.h" #include "FWCore/MessageLogger/interface/JobReport.h" -#include "MitAna/DataUtil/interface/TreeWriter.h" -#include "MitAna/DataTree/interface/Names.h" +#include "MitProd/ObjectService/interface/NamedObject.h" using namespace edm; using namespace std; @@ -15,98 +14,19 @@ using namespace mithep; //-------------------------------------------------------------------------------------------------- ObjectService::ObjectService(const ParameterSet &cfg, ActivityRegistry &ar) : - obs_(0) + obs_(0), + obsEvt_(0) { // Constructor. -#if 0 - if (cfg.exists("treeNames")) - treeNames_=cfg.getUntrackedParameter >("treeNames"); - else - treeNames_.push_back(Names::gkEvtTreeName); - - if (cfg.exists("fileNames")) - fileNames_=cfg.getUntrackedParameter >("fileNames"); - else - fileNames_.push_back("mit-test"); - - if (cfg.exists("pathNames")) - pathNames_=cfg.getUntrackedParameter >("pathNames"); - else - pathNames_.push_back("."); - - if (cfg.exists("maxSizes")) - maxSizes_=cfg.getUntrackedParameter >("maxSizes"); - else - maxSizes_.push_back(1024); - - if (cfg.exists("compLevels")) - compLevels_=cfg.getUntrackedParameter >("compLevels"); - else - compLevels_.push_back(9); - - if (cfg.exists("splitLevels")) - splitLevels_=cfg.getUntrackedParameter >("splitLevels"); - else - splitLevels_.push_back(99); - - if (cfg.exists("brSizes")) - brSizes_=cfg.getUntrackedParameter >("brSizes"); - else - brSizes_.push_back(32*1024); - - if (treeNames_.size()!=fileNames_.size()) { - throw edm::Exception(edm::errors::Configuration, "ObjectService::ObjectService()\n") - << "Number of main trees should match number of files " << treeNames_.size() - << " " << fileNames_.size() << "\n"; - return; - } - - // setup tw array - tws_.SetOwner(kTRUE); - tws_.Expand(treeNames_.size()); - - // init tree writers - for (unsigned int i=0; iSetPrefix(fileNames_.at(i).c_str()); - - if (iSetBaseURL(pathNames_.at(i).c_str()); - else if (pathNames_.size()>0) - t->SetBaseURL(pathNames_.at(0).c_str()); - - if (iSetMaxSize((Long64_t)maxSizes_.at(i)*1024*1024); - else if (maxSizes_.size()>0) - t->SetMaxSize((Long64_t)maxSizes_.at(0)*1024*1024); - - if (iSetCompressLevel(compLevels_.at(i)); - else if (compLevels_.size()>0) - t->SetCompressLevel(compLevels_.at(0)); - - if (iSetDefaultSL(splitLevels_.at(i)); - else if (splitLevels_.size()>0) - t->SetDefaultSL(splitLevels_.at(0)); - - if (iSetDefaultBrSize(brSizes_.at(i)); - else if (brSizes_.size()>0) - t->SetDefaultBrSize(brSizes_.at(0)); - - //t->Print(); - tws_.Add(t); - } + obs_.SetOwner(kTRUE); + obsEvt_.SetOwner(kTRUE); // set watchers ar.watchPreProcessEvent (this,&ObjectService::preEventProcessing); ar.watchPostProcessEvent(this,&ObjectService::postEventProcessing); ar.watchPostBeginJob (this,&ObjectService::postBeginJob); ar.watchPostEndJob (this,&ObjectService::postEndJob); -#endif } //-------------------------------------------------------------------------------------------------- @@ -115,23 +35,6 @@ ObjectService::~ObjectService() // Destructor. } -#if 0 -//-------------------------------------------------------------------------------------------------- -TreeWriter* ObjectService::get(const char *name) -{ - // Get TreeWriter by name. If no name given, first one will be returned. - - if (tws_.GetEntries()<=0) - return 0; - - if (name==0) - return dynamic_cast(tws_.At(0)); - - TObject *ret = tws_.FindObject(name); - - return dynamic_cast(ret); -} - //-------------------------------------------------------------------------------------------------- void ObjectService::postBeginJob() { @@ -141,32 +44,21 @@ void ObjectService::postBeginJob() //-------------------------------------------------------------------------------------------------- void ObjectService::postEndJob() { - // Clear all TreeWriter objects. + // Clear all objects in the hashtables. - tws_.Clear(); + obs_.Delete(); + obsEvt_.Delete(); } //-------------------------------------------------------------------------------------------------- void ObjectService::postEventProcessing(const Event&, const EventSetup&) { - // Loop over all TreeWriter objects before processing of an event. + // Remove objects put per event. - for (int i=0; i(tws_.At(i)); - if (tw) - tw->EndEvent(); - } + obsEvt_.Clear(); } //-------------------------------------------------------------------------------------------------- void ObjectService::preEventProcessing(const EventID&, const Timestamp&) { - // Loop over all TreeWriter objects after processing of a events. - - for (int i=0; i(tws_.At(i)); - if (tw) - tw->BeginEvent(); - } } -#endif