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

BesMdcCalTransfer Class Reference

#include <BesMdcCalTransfer.hh>

List of all members.

Public Member Functions

 BesMdcCalTransfer (void)
 BesMdcCalTransfer (void)
double D2T (double driftDNew)
double D2T (double driftDNew)
double GetEff (void)
double GetEff (void)
void GetSigma (double &sigma1, double &sigma2, double &f)
void GetSigma (double &sigma1, double &sigma2, double &f)
double GetT0 (void)
double GetT0 (void)
double GetTimeWalk (void)
double GetTimeWalk (void)
void SetHitPointer (BesMdcHit *hit)
void SetHitPointer (BesMdcHit *hit)
 ~BesMdcCalTransfer (void)
 ~BesMdcCalTransfer (void)

Private Attributes

G4int cellId
G4double driftD
G4double edep
G4double enterAngle
G4int layerId
IMdcCalibFunSvcmdcCalFunSvc
IMdcCalibFunSvcmdcCalFunSvc
G4int posFlag
G4double theta
G4double z


Constructor & Destructor Documentation

BesMdcCalTransfer::BesMdcCalTransfer void   ) 
 

00017                                     {
00018   StatusCode sc= Gaudi::svcLocator()->service("MdcCalibFunSvc",mdcCalFunSvc);
00019   if (!sc.isSuccess())
00020     std::cout <<" MdcCal::Could not open Cal Service"<<std::endl;
00021 }

BesMdcCalTransfer::~BesMdcCalTransfer void   ) 
 

00023 {}

BesMdcCalTransfer::BesMdcCalTransfer void   ) 
 

BesMdcCalTransfer::~BesMdcCalTransfer void   ) 
 


Member Function Documentation

double BesMdcCalTransfer::D2T double  driftDNew  ) 
 

double BesMdcCalTransfer::D2T double  driftDNew  ) 
 

00109                                              {
00110   double driftT;
00111   driftT= mdcCalFunSvc->distToDriftTime(driftDNew, layerId, cellId, posFlag, enterAngle);
00112     //  driftT  = driftD/40.*1000;
00113   /*
00114   G4double c[8],x1;
00115   c[0]=0.; c[1]=1.96061432e01.;c[2]=2.31378106.; c[3]=3.59120632e-1; c[0]=0.;c[0]=0.;c[0]=0.;c[0]=0.;x1=5.924711;
00116   driftT=0.;
00117   if(driftD<x1){
00118     for(int i=0;i<7;i++){
00119       driftT+=c[i]*driftD;
00120     }
00121   }else{
00122     for(int i=0;i<8;i++){
00123       driftT+=c[i]*driftD;
00124     }
00125   }
00126   */
00127   return driftT;
00128 }

double BesMdcCalTransfer::GetEff void   ) 
 

double BesMdcCalTransfer::GetEff void   ) 
 

00138                                 {
00139   //  return mdcCalFunSvc->getEff(layerId, cellId);
00140   return 1.;
00141 }

void BesMdcCalTransfer::GetSigma double &  sigma1,
double &  sigma2,
double &  f
 

void BesMdcCalTransfer::GetSigma double &  sigma1,
double &  sigma2,
double &  f
 

00036                                                                         {
00037   sigma1 = mdcCalFunSvc->getSigma1(layerId, posFlag, driftD,
00038                                    enterAngle, theta, z, edep);
00039   sigma2 = mdcCalFunSvc->getSigma2(layerId, posFlag, driftD,
00040                                    enterAngle, theta, z, edep);
00041   f = mdcCalFunSvc->getF(layerId, posFlag, driftD,
00042                          enterAngle, theta, z, edep);
00043 
00044  /*
00045   if(layerId<8){
00046     if(driftD<0.5){
00047       sigma1=0.112784;      sigma2=0.229274;      f=0.666;
00048     }else if(driftD<1.){
00049       sigma1=0.103123;      sigma2=0.269797;      f=0.934;
00050     }else if(driftD<1.5){
00051       sigma1=0.08276;        sigma2=0.17493;      f=0.89;
00052     }else if(driftD<2.){
00053       sigma1=0.070109;      sigma2=0.149859;      f=0.89;
00054     }else if(driftD<2.5){
00055       sigma1=0.064453;      sigma2=0.130149;      f=0.886;
00056     }else if(driftD<3.){
00057       sigma1=0.062383;      sigma2=0.138806;      f=0.942;
00058     }else if(driftD<3.5){
00059       sigma1=0.061873;      sigma2=0.145696;      f=0.946;
00060     }else if(driftD<4.){
00061       sigma1=0.061236;      sigma2=0.119584;      f=0.891;
00062     }else if(driftD<4.5){
00063       sigma1=0.066292;      sigma2=0.148426;      f=0.917;
00064     }else if(driftD<5.){
00065       sigma1=0.078074;      sigma2=0.188148;      f=0.911;
00066     }else if(driftD<5.5){
00067       sigma1=0.088657;      sigma2=0.27548;      f=0.838;
00068     }else{
00069       sigma1=0.093089;      sigma2=0.115556;      f=0.367;
00070     }
00071   }else{
00072    if(driftD<0.5){
00073       sigma1=0.112433;      sigma2=0.327548;      f=0.645;
00074     }else if(driftD<1.){
00075       sigma1=0.096703;      sigma2=0.305206;      f=0.897;
00076     }else if(driftD<1.5){
00077       sigma1=0.082518;      sigma2=0.248913;      f= 0.934;
00078     }else if(driftD<2.){
00079       sigma1=0.072501;      sigma2=0.153868;      f= 0.899;
00080     }else if(driftD<2.5){
00081       sigma1= 0.065535;     sigma2=0.14246;       f=0.914;
00082     }else if(driftD<3.){
00083       sigma1=0.060497;      sigma2=0.126489;      f=0.918;
00084     }else if(driftD<3.5){
00085       sigma1=0.057643;      sigma2= 0.112927;     f=0.892;
00086     }else if(driftD<4.){
00087       sigma1=0.055266;      sigma2=0.094833;      f=0.887;
00088     }else if(driftD<4.5){
00089       sigma1=0.056263;      sigma2=0.124419;      f= 0.932;
00090     }else if(driftD<5.){
00091       sigma1=0.056599;      sigma2=0.124248;      f=0.923;
00092     }else if(driftD<5.5){
00093       sigma1= 0.061377;     sigma2=0.146147;      f=0.964;
00094     }else if(driftD<6.){
00095       sigma1=0.063978;      sigma2=0.150591;      f=0.942;
00096     }else if(driftD<6.5){
00097       sigma1=0.072951;      sigma2=0.15685;       f=0.913;
00098     }else if(driftD<7.){
00099       sigma1=0.085438;      sigma2=0.255109;      f=0.931;
00100     }else if(driftD<7.5){
00101       sigma1=0.101635;      sigma2=0.315529;      f=0.878;
00102     }else{
00103       sigma1=0.149529;      sigma2=0.374697;      f=0.89;
00104     }
00105   }
00106   */
00107 }

double BesMdcCalTransfer::GetT0 void   ) 
 

double BesMdcCalTransfer::GetT0 void   ) 
 

00130                                {
00131   return mdcCalFunSvc->getT0(layerId, cellId);
00132 }

double BesMdcCalTransfer::GetTimeWalk void   ) 
 

double BesMdcCalTransfer::GetTimeWalk void   ) 
 

00134                                      {
00135   return mdcCalFunSvc->getTimeWalk(layerId, edep);
00136 }

void BesMdcCalTransfer::SetHitPointer BesMdcHit hit  ) 
 

void BesMdcCalTransfer::SetHitPointer BesMdcHit hit  ) 
 

00025                                                    {
00026       layerId = hit->GetLayerNo();
00027       cellId = hit->GetCellNo();
00028       driftD = hit->GetDriftD();
00029       edep = hit->GetEdep();
00030       theta = hit->GetTheta();
00031       enterAngle = hit->GetEnterAngle();
00032       posFlag = hit->GetPosFlag();
00033       z = hit->GetPos().z();
00034 }


Member Data Documentation

G4int BesMdcCalTransfer::cellId [private]
 

G4double BesMdcCalTransfer::driftD [private]
 

G4double BesMdcCalTransfer::edep [private]
 

G4double BesMdcCalTransfer::enterAngle [private]
 

G4int BesMdcCalTransfer::layerId [private]
 

IMdcCalibFunSvc* BesMdcCalTransfer::mdcCalFunSvc [private]
 

IMdcCalibFunSvc* BesMdcCalTransfer::mdcCalFunSvc [private]
 

G4int BesMdcCalTransfer::posFlag [private]
 

G4double BesMdcCalTransfer::theta [private]
 

G4double BesMdcCalTransfer::z [private]
 


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