#include <TFileDirectory.h>
Public Member Functions | |
bool | cd () const |
std::string | fullPath () const |
return the full path of the stored histograms | |
TDirectory * | getBareDirectory (const std::string &subdir="") const |
template<typename T > | |
T * | getObject (const std::string &objname, const std::string &subdir="") |
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 , typename Arg9 , typename Arg10 , typename Arg11 , typename Arg12 > | |
T * | make (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3, const Arg4 &a4, const Arg5 &a5, const Arg6 &a6, const Arg7 &a7, const Arg8 &a8, const Arg9 &a9, const Arg10 &a10, const Arg11 &a11, const Arg12 &a12) const |
make new ROOT object | |
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 , typename Arg9 , typename Arg10 > | |
T * | make (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3, const Arg4 &a4, const Arg5 &a5, const Arg6 &a6, const Arg7 &a7, const Arg8 &a8, const Arg9 &a9, const Arg10 &a10) const |
make new ROOT object | |
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 , typename Arg9 > | |
T * | make (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3, const Arg4 &a4, const Arg5 &a5, const Arg6 &a6, const Arg7 &a7, const Arg8 &a8, const Arg9 &a9) const |
make new ROOT object | |
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 > | |
T * | make (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3, const Arg4 &a4, const Arg5 &a5, const Arg6 &a6, const Arg7 &a7, const Arg8 &a8) const |
make new ROOT object | |
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 > | |
T * | make (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3, const Arg4 &a4) const |
make new ROOT object | |
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 > | |
T * | make (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3, const Arg4 &a4, const Arg5 &a5, const Arg6 &a6) const |
make new ROOT object | |
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 > | |
T * | make (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3, const Arg4 &a4, const Arg5 &a5) const |
make new ROOT object | |
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 , typename Arg9 , typename Arg10 , typename Arg11 > | |
T * | make (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3, const Arg4 &a4, const Arg5 &a5, const Arg6 &a6, const Arg7 &a7, const Arg8 &a8, const Arg9 &a9, const Arg10 &a10, const Arg11 &a11) const |
make new ROOT object | |
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 > | |
T * | make (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3) const |
make new ROOT object | |
template<typename T , typename Arg1 , typename Arg2 > | |
T * | make (const Arg1 &a1, const Arg2 &a2) const |
make new ROOT object | |
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 > | |
T * | make (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3, const Arg4 &a4, const Arg5 &a5, const Arg6 &a6, const Arg7 &a7) const |
make new ROOT object | |
template<typename T > | |
T * | make () const |
make new ROOT object | |
template<typename T , typename Arg1 > | |
T * | make (const Arg1 &a1) const |
make new ROOT object | |
TFileDirectory | mkdir (const std::string &dir, const std::string &descr="") |
create a new subdirectory | |
virtual | ~TFileDirectory () |
descructor | |
Private Member Functions | |
TDirectory * | _cd (const std::string &subdir="", bool createNeededDirectories=true) const |
TObject * | _getObj (const std::string &objname, const std::string &subdir="") const |
TDirectory * | _mkdir (TDirectory *dirPtr, const std::string &dir, const std::string &description) const |
TFileDirectory (const std::string &dir, const std::string &descr, TFile *file, const std::string &path) | |
Private Attributes | |
std::string | descr_ |
std::string | dir_ |
TFile * | file_ |
std::string | path_ |
Friends | |
class | fwlite::TFileService |
class | TFileService |
Definition at line 24 of file TFileDirectory.h.
virtual TFileDirectory::~TFileDirectory | ( | ) | [inline, virtual] |
TFileDirectory::TFileDirectory | ( | const std::string & | dir, |
const std::string & | descr, | ||
TFile * | file, | ||
const std::string & | path | ||
) | [inline, private] |
TDirectory * TFileDirectory::_cd | ( | const std::string & | subdir = "" , |
bool | createNeededDirectories = true |
||
) | const [private] |
Definition at line 26 of file TFileDirectory.cc.
References gather_cfg::cout, dir, sistrip::dir_, Exception, convertSQLiteXML::ok, and path_.
Referenced by make().
{ string fpath = fullPath(); if (subdir.length()) { // not empty, we need to append it to path if (fpath.length()) { // path is also not empty, so add a slash and let's get going. fpath += "/" + subdir; } else { // path doesn't exist, so just use subdir fpath = subdir; } } TDirectory * dir = file_->GetDirectory( fpath.c_str() ); if ( dir == 0 ) { // we didn't find the directory // // If we're not supposed to create the diretory, then we should // complain now that it doesn't exist. if (! createNeededDirectories) { cout << "here " << fpath << endl; throw cms::Exception( "InvalidDirectory" ) << "directory " << fpath << " doesn't exist."; } if ( ! path_.empty() ) { dir = file_->GetDirectory( path_.c_str() ); if ( dir == 0 ) { throw cms::Exception( "InvalidDirectory" ) << "Can't change directory to path: " << path_; } } else { // the base path 'path_' is empty, so just use the pointer to // the file. dir = file_; } // if a subdirectory was passed in, then this directory better // already exist (since you shoudln't be cd'ing into a directory // before making it and the cd with a subdir is only used to get // histograms that are already made). if (subdir.length()) { throw cms::Exception( "InvalidDirectory" ) << "directory " << fpath << " doesn't exist."; } // if we're here, then that means that this is the first time // that we are calling cd() on this directory AND cd() has not // been called with a subdirectory, so go ahead and make the // directory. dir = _mkdir (dir, dir_, descr_); } bool ok = file_->cd( fpath.c_str() ); if ( ! ok ) { throw cms::Exception( "InvalidDirectory" ) << "Can't change directory to path: " << fpath; } return dir; }
TObject * TFileDirectory::_getObj | ( | const std::string & | objname, |
const std::string & | subdir = "" |
||
) | const [private] |
Definition at line 134 of file TFileDirectory.cc.
References Exception.
Referenced by getObject().
{ TObject *objPtr = getBareDirectory (subdir)->Get (objname.c_str()); if ( ! objPtr) { // no histogram found by that name. Sorry dude. if (subdir.length()) { throw cms::Exception ("ObjectNotFound") << "Can not find object named " << objname << " in subdir " << subdir; } else { throw cms::Exception ("ObjectNotFound") << "Can not find object named " << objname; } } // if nothing found return objPtr; }
TDirectory * TFileDirectory::_mkdir | ( | TDirectory * | dirPtr, |
const std::string & | dir, | ||
const std::string & | description | ||
) | const [private] |
Definition at line 97 of file TFileDirectory.cc.
References sistrip::dir_, Exception, and path_.
{ // do we have this one already TDirectory *subdirPtr = dirPtr->GetDirectory (subdirName.c_str()); if (subdirPtr) { subdirPtr->cd(); return subdirPtr; } // if we're here, then this directory doesn't exist. Is this // directory a subdirectory? const boost::regex subdirRE ("(.+?)/([^/]+)"); boost::smatch matches; TDirectory *parentDir = 0; string useName = subdirName; if( boost::regex_match (subdirName, matches, subdirRE) ) { parentDir = _mkdir (dirPtr, matches[1], description); useName = matches[2]; } else { // This is not a subdirectory, so we're golden parentDir = dirPtr; } subdirPtr = parentDir->mkdir (useName.c_str()); if ( ! subdirPtr ) { throw cms::Exception( "InvalidDirectory" ) << "Can't create directory " << dir_ << " in path: " << path_; } subdirPtr->cd(); return subdirPtr; }
bool TFileDirectory::cd | ( | ) | const |
Definition at line 19 of file TFileDirectory.cc.
{ _cd ("", false); return true; }
std::string TFileDirectory::fullPath | ( | ) | const |
return the full path of the stored histograms
Definition at line 156 of file TFileDirectory.cc.
References sistrip::dir_, and path_.
TDirectory * TFileDirectory::getBareDirectory | ( | const std::string & | subdir = "" | ) | const |
Definition at line 13 of file TFileDirectory.cc.
{ return _cd (subdir, false); }
T* TFileDirectory::getObject | ( | const std::string & | objname, |
const std::string & | subdir = "" |
||
) | [inline] |
Definition at line 37 of file TFileDirectory.h.
References _getObj(), and Exception.
{ TObject *objPtr = _getObj (objname, subdir); // Ok, we've got it. Let's see if it's a histogram T * retval = dynamic_cast< T* > ( objPtr ); if ( ! retval ) { // object isn't a of class T throw cms::Exception ("ObjectNotCorrectlyTyped") << "Object named " << objname << " is not of correct type"; } return retval; }
T* TFileDirectory::make | ( | const Arg1 & | a1, |
const Arg2 & | a2, | ||
const Arg3 & | a3, | ||
const Arg4 & | a4, | ||
const Arg5 & | a5, | ||
const Arg6 & | a6, | ||
const Arg7 & | a7, | ||
const Arg8 & | a8, | ||
const Arg9 & | a9, | ||
const Arg10 & | a10, | ||
const Arg11 & | a11 | ||
) | const [inline] |
make new ROOT object
Definition at line 183 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
T* TFileDirectory::make | ( | const Arg1 & | a1, |
const Arg2 & | a2, | ||
const Arg3 & | a3, | ||
const Arg4 & | a4, | ||
const Arg5 & | a5, | ||
const Arg6 & | a6, | ||
const Arg7 & | a7, | ||
const Arg8 & | a8, | ||
const Arg9 & | a9, | ||
const Arg10 & | a10 | ||
) | const [inline] |
make new ROOT object
Definition at line 169 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
T* TFileDirectory::make | ( | const Arg1 & | a1, |
const Arg2 & | a2, | ||
const Arg3 & | a3, | ||
const Arg4 & | a4, | ||
const Arg5 & | a5, | ||
const Arg6 & | a6, | ||
const Arg7 & | a7, | ||
const Arg8 & | a8, | ||
const Arg9 & | a9 | ||
) | const [inline] |
make new ROOT object
Definition at line 155 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
T* TFileDirectory::make | ( | const Arg1 & | a1, |
const Arg2 & | a2, | ||
const Arg3 & | a3, | ||
const Arg4 & | a4, | ||
const Arg5 & | a5 | ||
) | const [inline] |
make new ROOT object
Definition at line 106 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
T* TFileDirectory::make | ( | const Arg1 & | a1, |
const Arg2 & | a2, | ||
const Arg3 & | a3, | ||
const Arg4 & | a4, | ||
const Arg5 & | a5, | ||
const Arg6 & | a6, | ||
const Arg7 & | a7 | ||
) | const [inline] |
make new ROOT object
Definition at line 130 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
T* TFileDirectory::make | ( | const Arg1 & | a1 | ) | const [inline] |
make new ROOT object
Definition at line 65 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
T* TFileDirectory::make | ( | ) | const [inline] |
make new ROOT object
Definition at line 55 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
Referenced by AnalysisTasksAnalyzerBTag::AnalysisTasksAnalyzerBTag(), AnalysisTasksAnalyzerJEC::AnalysisTasksAnalyzerJEC(), CentralityTableProducer::analyze(), BasicMuonAnalyzer::BasicMuonAnalyzer(), PrimaryVertexValidation::beginJob(), L1GctValidation::beginJob(), L1TauAnalyzer::beginJob(), HistoParams< TProfile2D >::beginRun(), HistoParams< TH2F >::beginRun(), HistoParams< T >::beginRun(), BigEventsDebugger::BigEventsDebugger(), BjetAnalysis::BjetAnalysis(), AlignmentMonitorMuonResiduals::book(), AlignmentMonitorSurvey::book(), DigiBXCorrHistogramMaker< T >::book(), ConfigurableHisto::book(), SplittingConfigurableHisto::book(), AlignmentMonitorBase::book1D(), AlignmentMonitorBase::book2D(), IsolatedTracksNxN::BookHistograms(), L1GtDataEmulAnalyzer::bookHistograms(), AlignmentMonitorBase::bookProfile(), EWKSystUnc::EWKSystUnc(), GctErrorAnalyzer::GctErrorAnalyzer(), GlbMuQualityCutsAnalysis::GlbMuQualityCutsAnalysis(), HFGflash::HFGflash(), HFShowerParam::HFShowerParam(), HiEvtPlaneFlatCalib::HiEvtPlaneFlatCalib(), WMuNuValidator::init_histograms(), ExpressionHisto< T >::initialize(), main(), SiStripSpyDisplayModule::MakeDigiHist_(), SiStripSpyDisplayModule::MakeProcessedRawDigiHist_(), SiStripSpyDisplayModule::MakeRawDigiHist_(), MultiplicityTimeCorrelations::MultiplicityTimeCorrelations(), PatMuonAnalyzer::PatMuonAnalyzer(), MuonResiduals6DOFrphiFitter::plot(), MuonResiduals6DOFFitter::plot(), MuonResidualsBfieldAngleFitter::plot(), MuonResiduals5DOFFitter::plot(), MuonResidualsPositionFitter::plot(), MuonResiduals1DOFFitter::plot(), MuonResidualsAngleFitter::plot(), GctErrorAnalyzer::plotEGErrors(), GctErrorAnalyzer::plotHFErrors(), GctErrorAnalyzer::plotJetErrors(), GctErrorAnalyzer::plotMissingEErrors(), MuonResidualsFitter::plotsimple(), GctErrorAnalyzer::plotTotalEErrors(), MuonResidualsFitter::plotweighted(), TrackerDpgAnalysis::TrackerDpgAnalysis(), TrackerGeometryCompare::TrackerGeometryCompare(), ZHistogrammer::ZHistogrammer(), ZLONLOHistogrammer::ZLONLOHistogrammer(), ZMCHistogrammer::ZMCHistogrammer(), ZMuMu_efficiencyAnalyzer::ZMuMu_efficiencyAnalyzer(), ZMuMuAnalyzer_cynematics::ZMuMuAnalyzer_cynematics(), ZMuMuEfficiency::ZMuMuEfficiency(), ZMuPtScaleAnalyzer::ZMuPtScaleAnalyzer(), and zPdfUnc::zPdfUnc().
T* TFileDirectory::make | ( | const Arg1 & | a1, |
const Arg2 & | a2, | ||
const Arg3 & | a3, | ||
const Arg4 & | a4 | ||
) | const [inline] |
make new ROOT object
Definition at line 95 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
T* TFileDirectory::make | ( | const Arg1 & | a1, |
const Arg2 & | a2, | ||
const Arg3 & | a3 | ||
) | const [inline] |
make new ROOT object
Definition at line 85 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
T* TFileDirectory::make | ( | const Arg1 & | a1, |
const Arg2 & | a2, | ||
const Arg3 & | a3, | ||
const Arg4 & | a4, | ||
const Arg5 & | a5, | ||
const Arg6 & | a6, | ||
const Arg7 & | a7, | ||
const Arg8 & | a8 | ||
) | const [inline] |
make new ROOT object
Definition at line 142 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
T* TFileDirectory::make | ( | const Arg1 & | a1, |
const Arg2 & | a2, | ||
const Arg3 & | a3, | ||
const Arg4 & | a4, | ||
const Arg5 & | a5, | ||
const Arg6 & | a6 | ||
) | const [inline] |
make new ROOT object
Definition at line 118 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
T* TFileDirectory::make | ( | const Arg1 & | a1, |
const Arg2 & | a2, | ||
const Arg3 & | a3, | ||
const Arg4 & | a4, | ||
const Arg5 & | a5, | ||
const Arg6 & | a6, | ||
const Arg7 & | a7, | ||
const Arg8 & | a8, | ||
const Arg9 & | a9, | ||
const Arg10 & | a10, | ||
const Arg11 & | a11, | ||
const Arg12 & | a12 | ||
) | const [inline] |
make new ROOT object
Definition at line 197 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
T* TFileDirectory::make | ( | const Arg1 & | a1, |
const Arg2 & | a2 | ||
) | const [inline] |
make new ROOT object
Definition at line 75 of file TFileDirectory.h.
References _cd(), and lumiQTWidget::t.
TFileDirectory TFileDirectory::mkdir | ( | const std::string & | dir, |
const std::string & | descr = "" |
||
) |
create a new subdirectory
Definition at line 162 of file TFileDirectory.cc.
Referenced by BigEventsDebugger::analyze(), APVCyclePhaseMonitor::analyze(), SiStripSpyDisplayModule::analyze(), fwlite::AnalyzerWrapper< T >::AnalyzerWrapper(), RunHistogramManager::beginRun(), BigEventsDebugger::BigEventsDebugger(), DigiVertexCorrHistogramMaker::book(), DigiLumiCorrHistogramMaker::book(), DigiInvestigatorHistogramMaker::book(), DigiPileupCorrHistogramMaker::book(), AlignmentMonitorBase::directory(), VariablePlotter::fill(), GctErrorAnalyzer::GctErrorAnalyzer(), HiEvtPlaneFlatCalib::HiEvtPlaneFlatCalib(), and main().
{ TH1AddDirectorySentry sentry; _cd(); return TFileDirectory( dir, descr, file_, fullPath() ); }
friend class fwlite::TFileService [friend] |
Definition at line 232 of file TFileDirectory.h.
friend class TFileService [friend] |
Definition at line 231 of file TFileDirectory.h.
std::string TFileDirectory::descr_ [private] |
Definition at line 234 of file TFileDirectory.h.
Referenced by TFileService::setDirectoryName().
std::string TFileDirectory::dir_ [private] |
Definition at line 234 of file TFileDirectory.h.
Referenced by TFileService::setDirectoryName().
TFile* TFileDirectory::file_ [private] |
Reimplemented in TFileService, and fwlite::TFileService.
Definition at line 233 of file TFileDirectory.h.
std::string TFileDirectory::path_ [private] |
Definition at line 234 of file TFileDirectory.h.