CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes | Friends

TFileDirectory Class Reference

#include <TFileDirectory.h>

Inheritance diagram for TFileDirectory:
fwlite::TFileService TFileService

List of all members.

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 >
TgetObject (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 >
Tmake (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 >
Tmake (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 >
Tmake (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 >
Tmake (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 >
Tmake (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 >
Tmake (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 >
Tmake (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 >
Tmake (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 >
Tmake (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3) const
 make new ROOT object
template<typename T , typename Arg1 , typename Arg2 >
Tmake (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 >
Tmake (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 >
Tmake () const
 make new ROOT object
template<typename T , typename Arg1 >
Tmake (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

Detailed Description

Definition at line 24 of file TFileDirectory.h.


Constructor & Destructor Documentation

virtual TFileDirectory::~TFileDirectory ( ) [inline, virtual]

descructor

Definition at line 27 of file TFileDirectory.h.

{ }
TFileDirectory::TFileDirectory ( const std::string &  dir,
const std::string &  descr,
TFile *  file,
const std::string &  path 
) [inline, private]

Definition at line 227 of file TFileDirectory.h.

                                                             : 
         file_( file ), dir_( dir ), descr_( descr ), path_( path ) {
      }

Member Function Documentation

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_, path_, and AlCaHLTBitMon_QueryRunRegistry::string.

{
   return string( path_.empty() ? dir_ : path_ + "/" + dir_ );
}
TDirectory * TFileDirectory::getBareDirectory ( const std::string &  subdir = "") const

Definition at line 13 of file TFileDirectory.cc.

{
   return _cd (subdir, false);
}
template<typename T >
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;
      }
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* 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.

                                                                              {
         TDirectory *d = _cd();
         T * t =  new T( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t;
      }
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 , typename Arg9 , typename Arg10 >
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.

                                                           {
         TDirectory *d = _cd(); 
         T * t =  new T( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t;
      }
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 , typename Arg9 >
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.

                                        {
         TDirectory *d = _cd();
         T * t =  new T( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t;
      }
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 >
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.

                                        {
         TDirectory *d = _cd();
         T * t =  new T( a1, a2, a3, a4, a5 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t;
      }
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 >
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.

                                                                          {
         TDirectory *d = _cd();
         T * t =  new T( a1, a2, a3, a4, a5, a6, a7 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t;
      }
template<typename T , typename Arg1 >
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.

                                        {
         TDirectory *d = _cd();
         T * t = new T( a1 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t; 
      }
template<typename 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(), L1TauAnalyzer::beginJob(), L1GctValidation::beginJob(), HistoParams< TProfile2D >::beginRun(), HistoParams< TH2F >::beginRun(), HistoParams< T >::beginRun(), BigEventsDebugger< T >::BigEventsDebugger(), BjetAnalysis::BjetAnalysis(), AlignmentMonitorMuonResiduals::book(), AlignmentMonitorSurvey::book(), DigiBXCorrHistogramMaker< T >::book(), ConfigurableHisto::book(), SplittingConfigurableHisto::book(), AlignmentMonitorBase::book1D(), AlignmentMonitorBase::book2D(), IsolatedGenParticles::BookHistograms(), IsolatedTracksNxN::BookHistograms(), L1GtDataEmulAnalyzer::bookHistograms(), AlignmentMonitorBase::bookProfile(), EWKSystUnc::EWKSystUnc(), GctErrorAnalyzer::GctErrorAnalyzer(), GlbMuQualityCutsAnalysis::GlbMuQualityCutsAnalysis(), HCalSD::HCalSD(), 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().

                       {
         TDirectory *d = _cd();
         T* t = new T();
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); } 
         else { d->Append(t); }
         return t;
      }
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 >
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.

                                                                                           {
         TDirectory *d = _cd();
         T * t =  new T( a1, a2, a3, a4 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t;
      }
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 >
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.

                                                                          {
         TDirectory *d = _cd();
         T * t =  new T( a1, a2, a3 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t;
      }
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 >
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.

                                                                                           {
         TDirectory *d = _cd();
         T * t =  new T( a1, a2, a3, a4, a5, a6, a7, a8 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t;
      }
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 >
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.

                                                         {
         TDirectory *d = _cd();
         T * t =  new T( a1, a2, a3, a4, a5, a6 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t;
      }
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* 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.

                                                                                                 {
         TDirectory *d = _cd();
         T * t =  new T( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t;
      }
template<typename T , typename Arg1 , typename Arg2 >
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.

                                                         {
         TDirectory *d = _cd();
         T * t =  new T( a1, a2 );
         ROOT::DirAutoAdd_t func = T::Class()->GetDirectoryAutoAdd();
         if (func) { TH1AddDirectorySentry sentry; func(t,d); }
         else { d->Append(t); }
         return t;
      }
TFileDirectory TFileDirectory::mkdir ( const std::string &  dir,
const std::string &  descr = "" 
)

Friends And Related Function Documentation

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.


Member Data Documentation

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.