#include <SimCalorimetry/HcalSimAlgos/interface/HPDNoiseReader.h>
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 &) | |
HPDNoiseReader & | operator= (const HPDNoiseReader &) |
Private Attributes | |
HPDNoiseData * | mBuffer |
std::vector< size_t > | mCurrentEntry |
TFile * | mFile |
std::vector< float > | mRates |
std::vector< TTree * > | mTrees |
Definition at line 18 of file HPDNoiseReader.h.
typedef int HPDNoiseReader::Handle |
Definition at line 20 of file HPDNoiseReader.h.
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 | ( | ) |
HPDNoiseReader::HPDNoiseReader | ( | const HPDNoiseReader & | ) | [private] |
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.
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.
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 }
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().
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().
test if handle is valid
Definition at line 29 of file HPDNoiseReader.h.
Referenced by HPDNoiseLibraryReader::fillRate(), getEntry(), HPDNoiseLibraryReader::getNoiseData(), grabEntry(), rate(), and totalEntries().
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] |
std::vector<TTree*> HPDNoiseReader::mTrees [private] |
Definition at line 45 of file HPDNoiseReader.h.
Referenced by allNames(), getHandle(), grabEntry(), HPDNoiseReader(), totalEntries(), and ~HPDNoiseReader().