Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | 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 ()
bool SaveHistos ()

Private Member Functions

 HistoFile ()


Detailed Description

Provide uniform interface and access to the histogram file.

Definition at line 18 of file HistoFile.h.


Constructor & Destructor Documentation

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

Definition at line 27 of file HistoFile.h.

00027 { }


Member Function Documentation

TFile * HistoFile::File  )  [static]
 

Definition at line 51 of file HistoFile.cxx.

Referenced by main().

00051 { return gsTFile; }

const char * HistoFile::FileName  )  [static]
 

Definition at line 47 of file HistoFile.cxx.

References gsFileName().

00047 {return gsFileName.c_str(); }

bool HistoFile::SaveHistos  )  [static]
 

Definition at line 23 of file HistoFile.cxx.

Referenced by main().

00024 {
00025   return gsSaveHistos;
00026 }

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

Definition at line 30 of file HistoFile.cxx.

References gsFileName(), and gsSaveHistos.

Referenced by main().

00031 {
00032   if (name==0) return;
00033 
00034   std::string sname = name;
00035   if (sname=="") return;
00036 
00037   if (sname=="0") {
00038     gsSaveHistos = false;
00039     return;
00040   }
00041 
00042   gsFileName = name;
00043 }

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

Definition at line 55 of file HistoFile.cxx.

References gsCurrDir, gsFileName(), and gsTFile.

Referenced by subshower::RecoSubShower::FitEM(), jobc::Sequence::Print(), and jobc::Node::StepInToFolder().

00056 {
00057   if (gsTFile==0) {
00058     // Check that the file name is not already in use
00059     const int fOK     = 0;
00060     int       fexists = access(gsFileName.c_str(),F_OK);
00061     for (int i = 1; (i < 100) && (fexists == fOK); ++i) {
00062       std::string::size_type pos = gsFileName.find(".root");
00063       if (pos == std::string::npos) {
00064         gsFileName += ".root";
00065         i--;
00066       }
00067       else {
00068         if (i == 1) {
00069           gsFileName.insert(pos, "-01");
00070         }
00071         else if (i % 10 == 0) {
00072           pos--;
00073           gsFileName[pos--] = '0';
00074           char s = '0' + i / 10;
00075           gsFileName[pos] = s;
00076         }
00077         else {
00078           char s = '0' + i % 10;
00079           gsFileName[pos - 1] = s;
00080         }
00081       }
00082       fexists = access(gsFileName.c_str(), F_OK);
00083     } 
00084     gsTFile = new TFile(gsFileName.c_str(), "RECREATE");
00085   }
00086   gsCurrDir = gDirectory;
00087   if (dirname == 0) { gsTFile->cd(); return; }
00088 
00089   
00090   TObject* obj = gsTFile->FindObject(dirname);
00091   if (obj==0) gsTFile->mkdir(dirname);
00092   gsTFile->cd(dirname);
00093 }

void HistoFile::StepOut  )  [static]
 

Definition at line 97 of file HistoFile.cxx.

References gsCurrDir.

Referenced by subshower::RecoSubShower::FitEM(), jobc::Sequence::Print(), jobc::Node::StepOutOfFolder(), and jobc::Node::~Node().

00098 {
00099   if (gsCurrDir) gsCurrDir->cd();
00100 }


The documentation for this class was generated from the following files:
Generated on Mon Nov 23 04:45:33 2009 for NOvA Offline by  doxygen 1.3.9.1