Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

CalCalibLogs Class Reference

#include <CalCalibLogs.h>

List of all members.

Public Methods

 CalCalibLogs (int nLogs=10, int nLayers=4)
 ~CalCalibLogs ()
void setFileNames (const std::string &IntlinFileName, const std::string &GainFileName, const std::string &RailFileName, const std::string &SlopeFileName)
void readGain ()
void readIntlin ()
void readRail ()
void readSlope ()
virtual void make ()
virtual void clear ()
virtual void ini (int nLogs, int nLayers)
int num () const
CalCalibLogLog (int i) const
CalCalibLoggetLogID (int i) const

Private Attributes

std::string m_IntlinFile
std::string m_GainFile
std::string m_RailFile
std::string m_SlopeFile
std::vector< CalCalibLog *> m_List


Constructor & Destructor Documentation

CalCalibLogs::CalCalibLogs int    nLogs = 10,
int    nLayers = 4
[inline]
 

Definition at line 44 of file CalCalibLogs.h.

References ini().

00044 { ini(nLogs,nLayers);}

CalCalibLogs::~CalCalibLogs  
 

Definition at line 40 of file CalCalibLogs.cpp.

00042 {
00043         for (int ilog = 0; ilog < m_List.size(); ilog++) delete m_List[ilog];
00044 }


Member Function Documentation

virtual void CalCalibLogs::clear   [inline, virtual]
 

Definition at line 66 of file CalCalibLogs.h.

00066 {}

CalCalibLog * CalCalibLogs::getLogID int    logID const
 

Definition at line 10 of file CalCalibLogs.cpp.

Referenced by readGain(), readIntlin(), readRail(), and readSlope().

00012 {
00013         int jlog = -1;
00014         for (int ilog = 0; ilog < m_List.size(); ilog++) {
00015                 if (m_List[ilog]->logID() == logID) {
00016                         jlog  = ilog;
00017                         break;
00018                 }
00019         }
00020         return m_List[jlog];
00021 }

void CalCalibLogs::ini int    nLogs,
int    nLayers
[virtual]
 

Definition at line 23 of file CalCalibLogs.cpp.

References m_GainFile, m_IntlinFile, m_List, m_RailFile, m_SlopeFile, CalAxis::X, and CalAxis::Y.

Referenced by CalCalibLogs().

00024 {
00025         
00026         for (int ilayer = 0; ilayer < nLayers; ilayer++) {
00027                 for (int ilog = 0; ilog < nLogs; ilog++) {
00028                         m_List.push_back(new CalCalibLog(ilayer,CalDetGeo::X,ilog));
00029                         m_List.push_back(new CalCalibLog(ilayer,CalDetGeo::Y,ilog));
00030                 }
00031         }
00032         
00033         m_GainFile = "";
00034         m_IntlinFile = "";
00035         m_RailFile = "";
00036         m_SlopeFile = "";
00037 }

CalCalibLog* CalCalibLogs::Log int    i const [inline]
 

Definition at line 71 of file CalCalibLogs.h.

References m_List.

00071 {return m_List[i];}     

void CalCalibLogs::make   [virtual]
 

Definition at line 58 of file CalCalibLogs.cpp.

References readGain(), readIntlin(), readRail(), and readSlope().

00059 {
00060         readGain();
00061         readSlope();
00062         readIntlin();
00063         readRail();
00064 }

int CalCalibLogs::num   const [inline]
 

Definition at line 70 of file CalCalibLogs.h.

References m_List.

00070 {return m_List.size();}

void CalCalibLogs::readGain  
 

Definition at line 95 of file CalCalibLogs.cpp.

References getLogID(), CalLogID::ID(), m_GainFile, CalDetGeo::makeAxis(), and CalCalibLog::readGain().

Referenced by make().

00096 {       
00097         xml::IFile::extractEnvVar(&m_GainFile);
00098         std::cout << " Calorimeter gain file : "+m_GainFile << std::endl;
00099         if (m_GainFile == "") return;
00100 
00101         std::ifstream file;
00102         file.open(m_GainFile.c_str());
00103         while(file.good()){
00104                 int side;
00105                 int col;
00106                 int layer;
00107 
00108                 file >> side;
00109                 file >> col;
00110                 file >> layer;
00111                 if(!file.good())break;
00112 
00113                 int view = 1 - layer%2; layer /= 2;
00114                  side = 1-side; layer = 3-layer;
00115 
00116                 CalCalibLog* log = 
00117                 getLogID(CalLogID::ID(layer,CalDetGeo::makeAxis(view),col));
00118                 log->readGain(file,side);
00119         }
00120         file.close();
00121 }

void CalCalibLogs::readIntlin  
 

Definition at line 65 of file CalCalibLogs.cpp.

References getLogID(), CalLogID::ID(), m_IntlinFile, CalDetGeo::makeAxis(), and CalCalibLog::readIntlin().

Referenced by make().

00066 {       
00067         xml::IFile::extractEnvVar(&m_IntlinFile);
00068         std::cout << " Calorimeter linearity file : "+m_IntlinFile << std::endl;
00069         if (m_IntlinFile == "") return;
00070 
00071         std::ifstream file;
00072         file.open(m_IntlinFile.c_str());
00073         while(file.good()){
00074                 int range;
00075                 int side;
00076                 int col;
00077                 int layer;
00078 
00079                 file >> range;
00080                 file >> side;
00081                 file >> col;
00082                 file >> layer;
00083                 if(!file.good())break;
00084 
00085                 int view = 1 - layer%2; layer /= 2;
00086                   side = 1-side; layer = 3-layer;
00087 
00088                 CalCalibLog* log = 
00089                 getLogID(CalLogID::ID(layer,CalDetGeo::makeAxis(view),col));
00090                 log->readIntlin(file,side,range);
00091         }
00092         file.close();
00093 }

void CalCalibLogs::readRail  
 

Definition at line 122 of file CalCalibLogs.cpp.

References getLogID(), CalLogID::ID(), m_RailFile, CalDetGeo::makeAxis(), and CalCalibLog::readRail().

Referenced by make().

00123 {       
00124         xml::IFile::extractEnvVar(&m_RailFile);
00125         std::cout << " Calorimeter rails file : "+m_RailFile << std::endl;
00126         if (m_RailFile == "") return;
00127 
00128         std::ifstream file;
00129         file.open(m_RailFile.c_str());
00130         while(file.good()){
00131                 int side;
00132                 int col;
00133                 int layer;
00134 
00135                 file >> side;
00136                 file >> col;
00137                 file >> layer;
00138                 if(!file.good())break;
00139 
00140                 int view =1-layer%2; layer /= 2;
00141                  side = 1-side; layer = 3-layer;
00142 
00143                 CalCalibLog* log = 
00144                 getLogID(CalLogID::ID(layer,CalDetGeo::makeAxis(view),col));
00145                 log->readRail(file,side);
00146         }
00147         file.close();
00148 }

void CalCalibLogs::readSlope  
 

Definition at line 149 of file CalCalibLogs.cpp.

References getLogID(), CalLogID::ID(), m_SlopeFile, CalDetGeo::makeAxis(), and CalCalibLog::readSlope().

Referenced by make().

00150 {       
00151         xml::IFile::extractEnvVar(&m_SlopeFile);
00152         std::cout << " Calorimeter  light asymmetry file : "+m_SlopeFile << std::endl;
00153         if (m_SlopeFile == "") return;
00154 
00155         std::ifstream file;
00156         file.open(m_SlopeFile.c_str());
00157         while(file.good()){
00158                 int col;
00159                 int layer;
00160 
00161                 file >> col;
00162                 file >> layer;
00163                 if(!file.good())break;
00164                 int view = 1-layer%2; layer /= 2;
00165             layer = 3-layer;
00166 
00167                 CalCalibLog* log = 
00168                 getLogID(CalLogID::ID(layer,CalDetGeo::makeAxis(view),col));
00169                 log->readSlope(file);
00170         }
00171         file.close();
00172 }

void CalCalibLogs::setFileNames const std::string &    IntlinFileName,
const std::string &    GainFileName,
const std::string &    RailFileName,
const std::string &    SlopeFileName
[inline]
 

Definition at line 47 of file CalCalibLogs.h.

References m_GainFile, m_IntlinFile, m_RailFile, and m_SlopeFile.

00051         {
00052 
00053                 m_IntlinFile = IntlinFileName;
00054                 m_GainFile   = GainFileName;
00055                 m_RailFile   = RailFileName;
00056                 m_SlopeFile  = SlopeFileName;
00057 
00058         }


Member Data Documentation

std::string CalCalibLogs::m_GainFile [private]
 

Definition at line 77 of file CalCalibLogs.h.

Referenced by ini(), readGain(), and setFileNames().

std::string CalCalibLogs::m_IntlinFile [private]
 

Definition at line 76 of file CalCalibLogs.h.

Referenced by ini(), readIntlin(), and setFileNames().

std::vector<CalCalibLog*> CalCalibLogs::m_List [private]
 

Definition at line 80 of file CalCalibLogs.h.

Referenced by ini(), Log(), and num().

std::string CalCalibLogs::m_RailFile [private]
 

Definition at line 78 of file CalCalibLogs.h.

Referenced by ini(), readRail(), and setFileNames().

std::string CalCalibLogs::m_SlopeFile [private]
 

Definition at line 79 of file CalCalibLogs.h.

Referenced by ini(), readSlope(), and setFileNames().


The documentation for this class was generated from the following files:
Generated on Thu Nov 29 16:38:52 2001 by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001