CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TFileService.cc
Go to the documentation of this file.
7 #include "TFile.h"
8 #include "TROOT.h"
9 
10 using namespace edm;
11 using namespace std;
12 
14  TFileDirectory("", "", TFile::Open(cfg.getParameter<string>("fileName").c_str() , "RECREATE"), ""),
15  file_(TFileDirectory::file_),
16  fileName_(cfg.getParameter<string>("fileName")),
17  fileNameRecorded_(false),
18  closeFileFast_(cfg.getUntrackedParameter<bool>("closeFileFast", false))
19 {
20  // activities to monitor in order to set the proper directory
29  // delay writing into JobReport after BeginJob
31 }
32 
34  file_->Write();
35  if(closeFileFast_) gROOT->GetListOfFiles()->Remove(file_);
36  file_->Close();
37  delete file_;
38 }
39 
41  dir_ = desc.moduleLabel();
42  descr_ = (dir_ + " (" + desc.moduleName() + ") folder").c_str();
43 }
44 
46 
47  if(!fileName_.empty()) {
48  if(!fileNameRecorded_) {
49  string fullName;
50  fullName.reserve(1024);
51  fullName = getcwd(&fullName[0],1024);
52  fullName += "/" + fileName_;
53 
54  map<string,string> fileData;
55  fileData.insert(make_pair("Source","TFileService"));
56 
57  Service<JobReport> reportSvc;
58  reportSvc->reportAnalysisFile(fullName,fileData);
59  fileNameRecorded_ = true;
60  }
61  }
62 }
void watchPreModuleConstruction(PreModuleConstruction::slot_type const &iSlot)
void reportAnalysisFile(std::string const &fileName, std::map< std::string, std::string > const &fileData)
Definition: JobReport.cc:685
std::string const & moduleName() const
TFileService(const edm::ParameterSet &, edm::ActivityRegistry &)
constructor
Definition: TFileService.cc:13
void watchPreModuleEndLumi(PreModuleEndLumi::slot_type const &iSlot)
TFile * file_
pointer to opened TFile
Definition: TFileService.h:30
std::string const & moduleLabel() const
void watchPreModule(PreModule::slot_type const &iSlot)
std::string fileName_
Definition: TFileService.h:31
void setDirectoryName(const edm::ModuleDescription &desc)
Definition: TFileService.cc:40
void watchPreModuleEndRun(PreModuleEndRun::slot_type const &iSlot)
void watchPreModuleEndJob(PreModuleEndJob::slot_type const &iSlot)
void watchPreModuleBeginJob(PreModuleBeginJob::slot_type const &iSlot)
string fullName
~TFileService()
destructor
Definition: TFileService.cc:33
std::string dir_
bool fileNameRecorded_
Definition: TFileService.h:32
bool closeFileFast_
Definition: TFileService.h:33
void afterBeginJob()
Hook for writing info into JR.
Definition: TFileService.cc:45
void watchPreModuleBeginLumi(PreModuleBeginLumi::slot_type const &iSlot)
std::string descr_
void watchPreModuleBeginRun(PreModuleBeginRun::slot_type const &iSlot)
void watchPostBeginJob(PostBeginJob::slot_type const &iSlot)
convenience function for attaching to signal