BesMdcCalTransfer Class Reference

#include <BesMdcCalTransfer.hh>

List of all members.

Public Member Functions

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

Private Attributes

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


Detailed Description

Definition at line 18 of file BesMdcCalTransfer.hh.


Constructor & Destructor Documentation

BesMdcCalTransfer::BesMdcCalTransfer ( void   ) 

Definition at line 17 of file BesMdcCalTransfer.cc.

References mdcCalFunSvc.

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   ) 

Definition at line 23 of file BesMdcCalTransfer.cc.

00023 {}


Member Function Documentation

double BesMdcCalTransfer::D2T ( double  driftDNew  ) 

Definition at line 109 of file BesMdcCalTransfer.cc.

References cellId, IMdcCalibFunSvc::distToDriftTime(), enterAngle, layerId, mdcCalFunSvc, and posFlag.

Referenced by BesMdcDigitizer::Digitize(), and BesMdcSD::ProcessHits().

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   ) 

Definition at line 138 of file BesMdcCalTransfer.cc.

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

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

Definition at line 36 of file BesMdcCalTransfer.cc.

References driftD, edep, enterAngle, IMdcCalibFunSvc::getF(), IMdcCalibFunSvc::getSigma1(), IMdcCalibFunSvc::getSigma2(), layerId, mdcCalFunSvc, posFlag, theta, and z.

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   ) 

Definition at line 130 of file BesMdcCalTransfer.cc.

References cellId, IMdcCalibFunSvc::getT0(), layerId, and mdcCalFunSvc.

Referenced by BesMdcDigitizer::Digitize().

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

double BesMdcCalTransfer::GetTimeWalk ( void   ) 

Definition at line 134 of file BesMdcCalTransfer.cc.

References edep, IMdcCalibFunSvc::getTimeWalk(), layerId, and mdcCalFunSvc.

Referenced by BesMdcDigitizer::Digitize().

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

void BesMdcCalTransfer::SetHitPointer ( BesMdcHit hit  ) 

Definition at line 25 of file BesMdcCalTransfer.cc.

References cellId, driftD, edep, enterAngle, BesMdcHit::GetCellNo(), BesMdcHit::GetDriftD(), BesMdcHit::GetEdep(), BesMdcHit::GetEnterAngle(), BesMdcHit::GetLayerNo(), BesMdcHit::GetPos(), BesMdcHit::GetPosFlag(), BesMdcHit::GetTheta(), layerId, posFlag, theta, and z.

Referenced by BesMdcDigitizer::Digitize(), and BesMdcSD::ProcessHits().

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]

Definition at line 37 of file BesMdcCalTransfer.hh.

Referenced by D2T(), GetT0(), and SetHitPointer().

G4double BesMdcCalTransfer::driftD [private]

Definition at line 38 of file BesMdcCalTransfer.hh.

Referenced by GetSigma(), and SetHitPointer().

G4double BesMdcCalTransfer::edep [private]

Definition at line 38 of file BesMdcCalTransfer.hh.

Referenced by GetSigma(), GetTimeWalk(), and SetHitPointer().

G4double BesMdcCalTransfer::enterAngle [private]

Definition at line 38 of file BesMdcCalTransfer.hh.

Referenced by D2T(), GetSigma(), and SetHitPointer().

G4int BesMdcCalTransfer::layerId [private]

Definition at line 37 of file BesMdcCalTransfer.hh.

Referenced by D2T(), GetSigma(), GetT0(), GetTimeWalk(), and SetHitPointer().

IMdcCalibFunSvc* BesMdcCalTransfer::mdcCalFunSvc [private]

Definition at line 40 of file BesMdcCalTransfer.hh.

Referenced by BesMdcCalTransfer(), D2T(), GetSigma(), GetT0(), and GetTimeWalk().

G4int BesMdcCalTransfer::posFlag [private]

Definition at line 37 of file BesMdcCalTransfer.hh.

Referenced by D2T(), GetSigma(), and SetHitPointer().

G4double BesMdcCalTransfer::theta [private]

Definition at line 38 of file BesMdcCalTransfer.hh.

Referenced by GetSigma(), and SetHitPointer().

G4double BesMdcCalTransfer::z [private]

Definition at line 38 of file BesMdcCalTransfer.hh.

Referenced by GetSigma(), and SetHitPointer().


Generated on Tue Nov 29 23:17:32 2016 for BOSS_7.0.2 by  doxygen 1.4.7