Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

jobc::HistoFile Class Reference

Provide uniform interface and access to the histogram file. More...

#include <HistoFile.h>

List of all members.

Static Public Member Functions

void SetFileName (const char *name)
const char * FileName ()
TFile * File ()
void StepIn (const char *dir=0)
void StepOut ()

Private Member Functions

 HistoFile ()


Detailed Description

Provide uniform interface and access to the histogram file.

Definition at line 14 of file HistoFile.h.


Constructor & Destructor Documentation

jobc::HistoFile::HistoFile  )  [inline, private]
 

Definition at line 22 of file HistoFile.h.

00022 { }


Member Function Documentation

TFile * HistoFile::File  )  [static]
 

Definition at line 38 of file HistoFile.cxx.

References gsTFile.

Referenced by main().

00038 { return gsTFile; }

const char * HistoFile::FileName  )  [static]
 

Definition at line 34 of file HistoFile.cxx.

References gsFileName().

00034 {return gsFileName.c_str(); }

void HistoFile::SetFileName const char *  name  )  [static]
 

Definition at line 22 of file HistoFile.cxx.

References gsFileName().

Referenced by main().

00023 {
00024   if (name==0) return;
00025 
00026   std::string sname = name;
00027   if (sname=="") return;
00028   
00029   gsFileName = name;
00030 }

void HistoFile::StepIn const char *  dir = 0  )  [static]
 

Definition at line 42 of file HistoFile.cxx.

References gsCurrDir, gsFileName(), and gsTFile.

00043 {
00044   if (gsTFile==0) {
00045     // Check that the file name is not already in use
00046     const int fOK     = 0;
00047     int       fexists = access(gsFileName.c_str(),F_OK);
00048     for (int i = 1; (i < 100) && (fexists == fOK); ++i) {
00049       std::string::size_type pos = gsFileName.find(".root");
00050       if (pos == std::string::npos) {
00051         gsFileName += ".root";
00052         i--;
00053       }
00054       else {
00055         if (i == 1) {
00056           gsFileName.insert(pos, "-01");
00057         }
00058         else if (i % 10 == 0) {
00059           pos--;
00060           gsFileName[pos--] = '0';
00061           char s = '0' + i / 10;
00062           gsFileName[pos] = s;
00063         }
00064         else {
00065           char s = '0' + i % 10;
00066           gsFileName[pos - 1] = s;
00067         }
00068       }
00069       fexists = access(gsFileName.c_str(), F_OK);
00070     } 
00071     gsTFile = new TFile(gsFileName.c_str(), "RECREATE");
00072   }
00073   gsCurrDir = gDirectory;
00074   if (dirname == 0) { gsTFile->cd(); return; }
00075 
00076   
00077   TObject* obj = gsTFile->FindObject(dirname);
00078   if (obj==0) gsTFile->mkdir(dirname);
00079   gsTFile->cd(dirname);
00080 }

void HistoFile::StepOut  )  [static]
 

Definition at line 84 of file HistoFile.cxx.

References gsCurrDir.

00085 {
00086   if (gsCurrDir) gsCurrDir->cd();
00087 }


The documentation for this class was generated from the following files:
Generated on Fri Jul 25 02:05:54 2008 for NOvA Offline by doxygen 1.3.5