CMS 3D CMS Logo

HPDNoiseReader Class Reference

#include <SimCalorimetry/HcalSimAlgos/interface/HPDNoiseReader.h>

List of all members.

Public Types

typedef int Handle

Public Member Functions

std::vector< std::string > allNames () const
 all HPD instances in the library
void getEntry (Handle fHandle, unsigned long fEntry, HPDNoiseData **fData)
 retrive one entry from the library directly
void getEntry (Handle fHandle, HPDNoiseData **fData)
 retrive one entry from the sequentially
Handle getHandle (const std::string &fName)
 get handle to access data for one HPD instance
 HPDNoiseReader (const std::string &fFileName)
float rate (Handle fHandle) const
 noise rate for the instance
unsigned long totalEntries (Handle fHandle) const
 total number of noise events for the HPD instance in the library
bool valid (Handle fHandle) const
 test if handle is valid
 ~HPDNoiseReader ()

Private Member Functions

void grabEntry (Handle fHandle, unsigned long fEntry)
 HPDNoiseReader (const HPDNoiseReader &)
HPDNoiseReaderoperator= (const HPDNoiseReader &)

Private Attributes

HPDNoiseDatamBuffer
std::vector< size_t > mCurrentEntry
TFile * mFile
std::vector< float > mRates
std::vector< TTree * > mTrees


Detailed Description

Definition at line 18 of file HPDNoiseReader.h.


Member Typedef Documentation

typedef int HPDNoiseReader::Handle

Definition at line 20 of file HPDNoiseReader.h.


Constructor & Destructor Documentation

HPDNoiseReader::HPDNoiseReader ( const std::string &  fFileName  ) 

Definition at line 19 of file HPDNoiseReader.cc.

References HPDNoiseDataCatalog::allNames(), TestMuL1L2Filter_cff::catalog, TestMuL1L2Filter_cff::cerr, lat::endl(), HPDNoiseDataCatalog::getRate(), i, mBuffer, mCurrentEntry, mFile, mRates, mTrees, names, and tree.

00019                                                           {
00020   mFile = new TFile (fFileName.c_str(), "READ");
00021   mBuffer = new HPDNoiseData ();
00022   HPDNoiseDataCatalog* catalog;
00023   mFile->GetObject ("HPDNoiseDataCatalog;1", catalog);
00024   if (catalog) {
00025     // initiate trees
00026     const std::vector<std::string> names = catalog->allNames();
00027     for (size_t i = 0; i < names.size(); ++i) {
00028       TTree* tree = (TTree*) mFile->Get (names[i].c_str());
00029       if (tree) {
00030         mTrees.push_back (tree);
00031         mRates.push_back (catalog->getRate (i));
00032         mCurrentEntry.push_back (0);
00033       }
00034       else {
00035         std::cerr << "HPDNoiseReader::HPDNoiseReader-> Can not open tree " << names[i] << " in file " << fFileName << std::endl;
00036       }
00037     }
00038   }
00039   else {
00040     std::cerr << "HPDNoiseReader::HPDNoiseReader-> Can not open catalog infile " << fFileName << std::endl;
00041   }
00042 }

HPDNoiseReader::~HPDNoiseReader (  ) 

Definition at line 44 of file HPDNoiseReader.cc.

References i, mBuffer, mFile, and mTrees.

00044                                  {
00045   for (size_t i = 0; i < mTrees.size(); ++i) {
00046     delete mTrees[i];
00047   }
00048   delete mFile;
00049   delete mBuffer;
00050 }

HPDNoiseReader::HPDNoiseReader ( const HPDNoiseReader  )  [private]


Member Function Documentation

std::vector< std::string > HPDNoiseReader::allNames (  )  const

all HPD instances in the library

Definition at line 53 of file HPDNoiseReader.cc.

References i, mTrees, and HLT_VtxMuL3::result.

Referenced by HPDNoiseLibraryReader::HPDNoiseLibraryReader().

00053                                                      {
00054   std::vector<std::string> result;
00055   for (size_t i = 0; i < mTrees.size(); ++i) result.push_back (mTrees[i]->GetName ());
00056   return result;
00057 }

void HPDNoiseReader::getEntry ( Handle  fHandle,
unsigned long  fEntry,
HPDNoiseData **  fData 
)

retrive one entry from the library directly

Definition at line 92 of file HPDNoiseReader.cc.

References grabEntry(), and mBuffer.

00092                                                                                          {
00093   grabEntry (fHandle, fEntry);
00094   *fData = mBuffer;
00095 }

void HPDNoiseReader::getEntry ( Handle  fHandle,
HPDNoiseData **  fData 
)

retrive one entry from the sequentially

Definition at line 84 of file HPDNoiseReader.cc.

References grabEntry(), mBuffer, mCurrentEntry, totalEntries(), and valid().

Referenced by HPDNoiseLibraryReader::getNoiseData().

00084                                                                    {
00085   if (!valid (fHandle)) return;
00086   unsigned int entry = mCurrentEntry [fHandle];
00087   if (++entry >= totalEntries (fHandle)) entry = 0; // roll over  
00088   grabEntry (fHandle, entry);
00089   *fData = mBuffer;
00090 }

HPDNoiseReader::Handle HPDNoiseReader::getHandle ( const std::string &  fName  ) 

get handle to access data for one HPD instance

Definition at line 59 of file HPDNoiseReader.cc.

References i, and mTrees.

Referenced by HPDNoiseLibraryReader::fillRate(), and HPDNoiseLibraryReader::getNoiseData().

00059                                                                       {
00060   for (size_t i = 0; i < mTrees.size(); ++i) {
00061     if (std::string (mTrees[i]->GetName ()) == fName) return i;
00062   }
00063   return -1;
00064 }

void HPDNoiseReader::grabEntry ( Handle  fHandle,
unsigned long  fEntry 
) [private]

Definition at line 76 of file HPDNoiseReader.cc.

References mBuffer, mCurrentEntry, mTrees, and valid().

Referenced by getEntry().

00076                                                                     {
00077   if (!valid (fHandle)) return;
00078   TBranch* branch = mTrees[fHandle]->GetBranch ("HPDNoiseData");
00079   branch->SetAddress (&mBuffer);
00080   branch->GetEntry (fEntry);
00081   mCurrentEntry [fHandle] = fEntry;
00082 }

HPDNoiseReader& HPDNoiseReader::operator= ( const HPDNoiseReader  )  [private]

float HPDNoiseReader::rate ( Handle  fHandle  )  const

noise rate for the instance

Definition at line 66 of file HPDNoiseReader.cc.

References mRates, and valid().

Referenced by HPDNoiseLibraryReader::fillRate().

00066                                                 {
00067   if (!valid (fHandle)) return 0;
00068   return mRates[fHandle];
00069 }

unsigned long HPDNoiseReader::totalEntries ( Handle  fHandle  )  const

total number of noise events for the HPD instance in the library

Definition at line 71 of file HPDNoiseReader.cc.

References mTrees, and valid().

Referenced by getEntry(), and HPDNoiseLibraryReader::getNoiseData().

00071                                                                 {
00072   if (!valid (fHandle)) return 0;
00073   return mTrees[fHandle]->GetEntries ();
00074 }

bool HPDNoiseReader::valid ( Handle  fHandle  )  const [inline]

test if handle is valid

Definition at line 29 of file HPDNoiseReader.h.

Referenced by HPDNoiseLibraryReader::fillRate(), getEntry(), HPDNoiseLibraryReader::getNoiseData(), grabEntry(), rate(), and totalEntries().

00029 {return fHandle >= 0;}


Member Data Documentation

HPDNoiseData* HPDNoiseReader::mBuffer [private]

Definition at line 48 of file HPDNoiseReader.h.

Referenced by getEntry(), grabEntry(), HPDNoiseReader(), and ~HPDNoiseReader().

std::vector<size_t> HPDNoiseReader::mCurrentEntry [private]

Definition at line 47 of file HPDNoiseReader.h.

Referenced by getEntry(), grabEntry(), and HPDNoiseReader().

TFile* HPDNoiseReader::mFile [private]

Definition at line 44 of file HPDNoiseReader.h.

Referenced by HPDNoiseReader(), and ~HPDNoiseReader().

std::vector<float> HPDNoiseReader::mRates [private]

Definition at line 46 of file HPDNoiseReader.h.

Referenced by HPDNoiseReader(), and rate().

std::vector<TTree*> HPDNoiseReader::mTrees [private]

Definition at line 45 of file HPDNoiseReader.h.

Referenced by allNames(), getHandle(), grabEntry(), HPDNoiseReader(), totalEntries(), and ~HPDNoiseReader().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:24:47 2009 for CMSSW by  doxygen 1.5.4