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

EmcRecParameter Class Reference

#include <EmcRecParameter.h>

List of all members.

Public Member Functions

bool DigiCalib () const
bool DigiCalib () const
double ECorr (int n) const
double ECorr (int n) const
double ECorrMC (double eg, double theid) const
double ECorrMC (double eg, double theid) const
double ElecBias (int n) const
double ElecBias (int n) const
double ElectronicsNoiseLevel () const
double ElectronicsNoiseLevel () const
 EmcRecParameter ()
 EmcRecParameter ()
double ErrMC (double eg, double theid) const
double ErrMC (double eg, double theid) const
double EThresholdCluster () const
double EThresholdCluster () const
double EThresholdSeed () const
double EThresholdSeed () const
double HitNb (int n) const
double HitNb (int n) const
double LateralProfile () const
double LateralProfile () const
double LogPosOffset () const
double LogPosOffset () const
double MoliereRadius () const
double MoliereRadius () const
double Peak (int n) const
double Peak (int n) const
std::string PositionMode1 () const
std::string PositionMode1 () const
std::string PositionMode2 () const
std::string PositionMode2 () const
void SetDigiCalib (bool digi)
void SetDigiCalib (bool digi)
void SetPeak (double e, int n)
void SetPeak (double e, int n)
void SetPositionMode (std::vector< std::string > &mode)
void SetPositionMode (std::vector< std::string > &mode)
void SetTimeMax (double max)
void SetTimeMax (double max)
void SetTimeMin (double min)
void SetTimeMin (double min)
double SigE (int n) const
double SigE (int n) const
double SigPhi (int n) const
double SigPhi (int n) const
double SigTheta (int n) const
double SigTheta (int n) const
double SmCut (int n) const
double SmCut (int n) const
double TimeMax () const
double TimeMax () const
double TimeMin () const
double TimeMin () const
 ~EmcRecParameter ()
 ~EmcRecParameter ()

Static Public Member Functions

bool Exist ()
bool Exist ()
EmcRecParameterGetInstance ()
EmcRecParameterGetInstance ()
void Kill ()
void Kill ()

Private Attributes

bool digiCalib
TGraph2DErrors * dt
TGraph2DErrors * dt
TGraph2DErrors * dtErr
TGraph2DErrors * dtErr
double eCorr [4]
double elecBias [5]
double fElectronicsNoiseLevel
double fEThresholdCluster
double fEThresholdSeed
double fLateralProfile
double fLogPosOffset
double fMoliereRadius
double fTimeMax
double fTimeMin
double hitNb [3]
double peak [56]
std::string positionMode1
std::string positionMode2
double sigE [3]
double sigPhi [2]
double sigTheta [2]
double smCut [4]

Static Private Attributes

EmcRecParameterfpInstance
EmcRecParameterfpInstance = 0


Constructor & Destructor Documentation

EmcRecParameter::EmcRecParameter  ) 
 

00018 {
00019   string paraPath = getenv("EMCRECROOT");
00020   if(paraPath=="") cout<<"EmcRec environment not set!";
00021   string paraPath1(paraPath);
00022   string paraPath2(paraPath);
00023   paraPath += "/share/EmcRecPara.dat";
00024   //cout<<paraPath<<endl;
00025   ifstream in;
00026   in.open(paraPath.c_str());
00027   assert(in);
00028 
00029   const int maxCharOfOneLine=255;
00030   char temp[maxCharOfOneLine];
00031   int inputNo=0;
00032   while(in.peek()!=EOF) {
00033     in.getline(temp,maxCharOfOneLine);
00034     if(temp[0]=='#') continue;
00035     inputNo++;
00036     switch(inputNo) {
00037       case 1:
00038         istringstream(temp)>>fElectronicsNoiseLevel>>fEThresholdSeed>>fEThresholdCluster>>fLogPosOffset;
00039         break;
00040       case 2:
00041         istringstream(temp)>>fMoliereRadius>>fLateralProfile;
00042         break;
00043       case 3:
00044         istringstream(temp)>>eCorr[0]>>eCorr[1]>>eCorr[2]>>eCorr[3];
00045         break;
00046       case 4:
00047         istringstream(temp)>>sigE[0]>>sigE[1]>>sigE[2]
00048           >>sigTheta[0]>>sigTheta[1]>>sigPhi[0]>>sigPhi[1];
00049         break;
00050       case 5:
00051         istringstream(temp)>>hitNb[0]>>hitNb[1]>>hitNb[2];
00052         break;
00053       case 6:
00054         istringstream(temp)>>elecBias[0]>>elecBias[1]>>elecBias[2]
00055           >>elecBias[3]>>elecBias[4];
00056         break;
00057       case 7:
00058         istringstream(temp)>>smCut[0]>>smCut[1]>>smCut[2]>>smCut[3];
00059         break;
00060       default:
00061         break;
00062     }
00063   }
00064   in.close();
00065   
00066   paraPath1 += "/share/Peak1.843_10.12calib.dat";
00067   ifstream in1;
00068   in1.open(paraPath1.c_str());
00069   assert(in1);
00070   int ntheta;
00071   double sigma,sigmaerr,peakerr;
00072   for(int i=0;i<56;i++) {
00073     in1>>ntheta>>sigma>>sigmaerr>>peak[i]>>peakerr;
00074   }
00075   in1.close();
00076 
00077   // Read energy correction parameters from PhotonCor/McCor
00078   paraPath2 += "/share/evset.txt";
00079   ifstream in2;
00080   in2.open(paraPath2.c_str());
00081   assert(in2);
00082   double energy,thetaid,peak1,peakerr1,res,reserr;
00083   //double ep[18]={0.03,0.04,0.05,0.075,0.1,0.125,0.15,0.2,0.25,0.3,0.4,0.5,0.75,1.0,1.25,1.5,1.75,2.0};
00084   dt = new TGraph2DErrors();
00085   dtErr = new TGraph2DErrors();
00086   for(int i=0;i<504;i++){
00087     in2>>energy;
00088     in2>>thetaid;
00089     in2>>peak1;
00090     in2>>peakerr1;
00091     in2>>res;
00092     in2>>reserr;
00093     dt->SetPoint(i,energy,thetaid,peak1);
00094     dt->SetPointError(i,0,0,peakerr1);
00095     dtErr->SetPoint(i,energy,thetaid,res);
00096     dtErr->SetPointError(i,0,0,reserr);
00097   }
00098   in2.close();
00099 
00100 }

EmcRecParameter::~EmcRecParameter  ) 
 

00104 {
00105   //   cout<<"deconstructed"<<endl;
00106   delete dt;
00107   delete dtErr;
00108 }

EmcRecParameter::EmcRecParameter  ) 
 

EmcRecParameter::~EmcRecParameter  ) 
 


Member Function Documentation

bool EmcRecParameter::DigiCalib  )  const [inline]
 

00057 { return digiCalib; }

bool EmcRecParameter::DigiCalib  )  const [inline]
 

00057 { return digiCalib; }

double EmcRecParameter::ECorr int  n  )  const
 

double EmcRecParameter::ECorr int  n  )  const
 

00175 {
00176   return eCorr[n];
00177 }

double EmcRecParameter::ECorrMC double  eg,
double  theid
const
 

double EmcRecParameter::ECorrMC double  eg,
double  theid
const
 

00224 {
00225   double Energy5x5=eg;
00226   if(eg<0.02)eg=0.02;
00227   if(eg>1.74)eg=1.74;
00228   if(theid<=0)theid=0.001;
00229   if(theid>=27)theid=26.999;
00230   Float_t einter = eg + 0.00001;
00231   Float_t tinter = theid+0.0001;
00232   double ecor=dt->Interpolate(einter,tinter);
00233   if(!(ecor))return Energy5x5;
00234   if(ecor<0.5)return Energy5x5;
00235   double EnergyCor=Energy5x5/ecor;
00236   return EnergyCor;
00237 }

double EmcRecParameter::ElecBias int  n  )  const
 

double EmcRecParameter::ElecBias int  n  )  const
 

00200 {
00201   return elecBias[n];
00202 }

double EmcRecParameter::ElectronicsNoiseLevel  )  const
 

double EmcRecParameter::ElectronicsNoiseLevel  )  const
 

00135 {
00136   return fElectronicsNoiseLevel;
00137 }

double EmcRecParameter::ErrMC double  eg,
double  theid
const
 

double EmcRecParameter::ErrMC double  eg,
double  theid
const
 

00241 {
00242   if(eg<0.02)eg=0.02;
00243   if(eg>1.74)eg=1.74;
00244   if(theid<=0)theid=0.001;
00245   if(theid>=27)theid=26.999;
00246   Float_t einter = eg + 0.00001;
00247   Float_t tinter = theid+0.0001;
00248   double err=dtErr->Interpolate(einter,tinter);
00249   return err;
00250 }

double EmcRecParameter::EThresholdCluster  )  const
 

double EmcRecParameter::EThresholdCluster  )  const
 

00145 {
00146   return fEThresholdCluster;
00147 }

double EmcRecParameter::EThresholdSeed  )  const
 

double EmcRecParameter::EThresholdSeed  )  const
 

00140 {
00141   return fEThresholdSeed;
00142 }

bool EmcRecParameter::Exist  )  [static]
 

bool EmcRecParameter::Exist  )  [static]
 

00121 {
00122   return fpInstance!=0;
00123 }

EmcRecParameter& EmcRecParameter::GetInstance  )  [static]
 

EmcRecParameter & EmcRecParameter::GetInstance  )  [static]
 

00113 {
00114   if(!Exist()) {
00115     fpInstance=new EmcRecParameter;
00116   }
00117   return *fpInstance;
00118 }

double EmcRecParameter::HitNb int  n  )  const
 

double EmcRecParameter::HitNb int  n  )  const
 

00195 {
00196   return hitNb[n];
00197 }

void EmcRecParameter::Kill  )  [static]
 

void EmcRecParameter::Kill  )  [static]
 

00126 {
00127   if(Exist()) {
00128     delete fpInstance;
00129     fpInstance=0;
00130   }
00131 }

double EmcRecParameter::LateralProfile  )  const
 

double EmcRecParameter::LateralProfile  )  const
 

00170 {
00171   return fLateralProfile;
00172 }

double EmcRecParameter::LogPosOffset  )  const
 

double EmcRecParameter::LogPosOffset  )  const
 

00150 {
00151   return fLogPosOffset;
00152 }

double EmcRecParameter::MoliereRadius  )  const
 

double EmcRecParameter::MoliereRadius  )  const
 

00165 {
00166   return fMoliereRadius;
00167 }

double EmcRecParameter::Peak int  n  )  const
 

double EmcRecParameter::Peak int  n  )  const
 

00210 {
00211   return peak[n];
00212 }

std::string EmcRecParameter::PositionMode1  )  const [inline]
 

00065 { return positionMode1; }

std::string EmcRecParameter::PositionMode1  )  const [inline]
 

00065 { return positionMode1; }

std::string EmcRecParameter::PositionMode2  )  const [inline]
 

00066 { return positionMode2; }

std::string EmcRecParameter::PositionMode2  )  const [inline]
 

00066 { return positionMode2; }

void EmcRecParameter::SetDigiCalib bool  digi  )  [inline]
 

00058 { digiCalib=digi; }

void EmcRecParameter::SetDigiCalib bool  digi  )  [inline]
 

00058 { digiCalib=digi; }

void EmcRecParameter::SetPeak double  e,
int  n
[inline]
 

00063 { peak[n]=e; }

void EmcRecParameter::SetPeak double  e,
int  n
[inline]
 

00063 { peak[n]=e; }

void EmcRecParameter::SetPositionMode std::vector< std::string > &  mode  ) 
 

void EmcRecParameter::SetPositionMode std::vector< std::string > &  mode  ) 
 

00215 {
00216   if(mode.size()==2) {
00217     positionMode1=mode[0];
00218     positionMode2=mode[1];
00219   }
00220 }

void EmcRecParameter::SetTimeMax double  max  )  [inline]
 

00061 { fTimeMax=max; }

void EmcRecParameter::SetTimeMax double  max  )  [inline]
 

00061 { fTimeMax=max; }

void EmcRecParameter::SetTimeMin double  min  )  [inline]
 

00060 { fTimeMin=min; }

void EmcRecParameter::SetTimeMin double  min  )  [inline]
 

00060 { fTimeMin=min; }

double EmcRecParameter::SigE int  n  )  const
 

double EmcRecParameter::SigE int  n  )  const
 

00180 {
00181   return sigE[n];
00182 }

double EmcRecParameter::SigPhi int  n  )  const
 

double EmcRecParameter::SigPhi int  n  )  const
 

00190 {
00191   return sigPhi[n];
00192 }

double EmcRecParameter::SigTheta int  n  )  const
 

double EmcRecParameter::SigTheta int  n  )  const
 

00185 {
00186   return sigTheta[n];
00187 }

double EmcRecParameter::SmCut int  n  )  const
 

double EmcRecParameter::SmCut int  n  )  const
 

00205 {
00206   return smCut[n];
00207 }

double EmcRecParameter::TimeMax  )  const
 

double EmcRecParameter::TimeMax  )  const
 

00160 {
00161   return fTimeMax;
00162 }

double EmcRecParameter::TimeMin  )  const
 

double EmcRecParameter::TimeMin  )  const
 

00155 {
00156   return fTimeMin;
00157 }


Member Data Documentation

bool EmcRecParameter::digiCalib [private]
 

TGraph2DErrors* EmcRecParameter::dt [private]
 

TGraph2DErrors* EmcRecParameter::dt [private]
 

TGraph2DErrors* EmcRecParameter::dtErr [private]
 

TGraph2DErrors* EmcRecParameter::dtErr [private]
 

double EmcRecParameter::eCorr [private]
 

double EmcRecParameter::elecBias [private]
 

double EmcRecParameter::fElectronicsNoiseLevel [private]
 

double EmcRecParameter::fEThresholdCluster [private]
 

double EmcRecParameter::fEThresholdSeed [private]
 

double EmcRecParameter::fLateralProfile [private]
 

double EmcRecParameter::fLogPosOffset [private]
 

double EmcRecParameter::fMoliereRadius [private]
 

EmcRecParameter* EmcRecParameter::fpInstance [static, private]
 

EmcRecParameter * EmcRecParameter::fpInstance = 0 [static, private]
 

double EmcRecParameter::fTimeMax [private]
 

double EmcRecParameter::fTimeMin [private]
 

double EmcRecParameter::hitNb [private]
 

double EmcRecParameter::peak [private]
 

std::string EmcRecParameter::positionMode1 [private]
 

std::string EmcRecParameter::positionMode2 [private]
 

double EmcRecParameter::sigE [private]
 

double EmcRecParameter::sigPhi [private]
 

double EmcRecParameter::sigTheta [private]
 

double EmcRecParameter::smCut [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:02:03 2011 for BOSS6.5.5 by  doxygen 1.3.9.1