BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
BesMdcCalTransfer.cc
Go to the documentation of this file.
1//---------------------------------------------------------------------------//
2// BOOST --- BESIII Object_Oriented Simulation Tool //
3//---------------------------------------------------------------------------//
4// Description:
5// Author: Yuan Ye(yuany@mail.ihep.ac.cn)
6// Created: Oct.26, 2004
7// Modified:
8// Comment:
9//---------------------------------------------------------------------------//
10
11#include "MdcSim/BesMdcCalTransfer.hh"
12#include "G4ios.hh"
13#include "GaudiKernel/Bootstrap.h"
14#include "GaudiKernel/IService.h"
15#include "GaudiKernel/ISvcLocator.h"
16
18 StatusCode sc = Gaudi::svcLocator()->service( "MdcCalibFunSvc", mdcCalFunSvc );
19 if ( !sc.isSuccess() ) std::cout << " MdcCal::Could not open Cal Service" << std::endl;
20}
21
23
25 layerId = hit->GetLayerNo();
26 cellId = hit->GetCellNo();
27 driftD = hit->GetDriftD();
28 edep = hit->GetEdep();
29 theta = hit->GetTheta();
30 enterAngle = hit->GetEnterAngle();
31 posFlag = hit->GetPosFlag();
32 z = hit->GetPos().z();
33}
34
35void BesMdcCalTransfer::GetSigma( double& sigma1, double& sigma2, double& f ) {
36 sigma1 = mdcCalFunSvc->getSigma1( layerId, posFlag, driftD, enterAngle, theta, z, edep );
37 sigma2 = mdcCalFunSvc->getSigma2( layerId, posFlag, driftD, enterAngle, theta, z, edep );
38 f = mdcCalFunSvc->getF( layerId, posFlag, driftD, enterAngle, theta, z, edep );
39
40 /*
41 if(layerId<8){
42 if(driftD<0.5){
43 sigma1=0.112784; sigma2=0.229274; f=0.666;
44 }else if(driftD<1.){
45 sigma1=0.103123; sigma2=0.269797; f=0.934;
46 }else if(driftD<1.5){
47 sigma1=0.08276; sigma2=0.17493; f=0.89;
48 }else if(driftD<2.){
49 sigma1=0.070109; sigma2=0.149859; f=0.89;
50 }else if(driftD<2.5){
51 sigma1=0.064453; sigma2=0.130149; f=0.886;
52 }else if(driftD<3.){
53 sigma1=0.062383; sigma2=0.138806; f=0.942;
54 }else if(driftD<3.5){
55 sigma1=0.061873; sigma2=0.145696; f=0.946;
56 }else if(driftD<4.){
57 sigma1=0.061236; sigma2=0.119584; f=0.891;
58 }else if(driftD<4.5){
59 sigma1=0.066292; sigma2=0.148426; f=0.917;
60 }else if(driftD<5.){
61 sigma1=0.078074; sigma2=0.188148; f=0.911;
62 }else if(driftD<5.5){
63 sigma1=0.088657; sigma2=0.27548; f=0.838;
64 }else{
65 sigma1=0.093089; sigma2=0.115556; f=0.367;
66 }
67 }else{
68 if(driftD<0.5){
69 sigma1=0.112433; sigma2=0.327548; f=0.645;
70 }else if(driftD<1.){
71 sigma1=0.096703; sigma2=0.305206; f=0.897;
72 }else if(driftD<1.5){
73 sigma1=0.082518; sigma2=0.248913; f= 0.934;
74 }else if(driftD<2.){
75 sigma1=0.072501; sigma2=0.153868; f= 0.899;
76 }else if(driftD<2.5){
77 sigma1= 0.065535; sigma2=0.14246; f=0.914;
78 }else if(driftD<3.){
79 sigma1=0.060497; sigma2=0.126489; f=0.918;
80 }else if(driftD<3.5){
81 sigma1=0.057643; sigma2= 0.112927; f=0.892;
82 }else if(driftD<4.){
83 sigma1=0.055266; sigma2=0.094833; f=0.887;
84 }else if(driftD<4.5){
85 sigma1=0.056263; sigma2=0.124419; f= 0.932;
86 }else if(driftD<5.){
87 sigma1=0.056599; sigma2=0.124248; f=0.923;
88 }else if(driftD<5.5){
89 sigma1= 0.061377; sigma2=0.146147; f=0.964;
90 }else if(driftD<6.){
91 sigma1=0.063978; sigma2=0.150591; f=0.942;
92 }else if(driftD<6.5){
93 sigma1=0.072951; sigma2=0.15685; f=0.913;
94 }else if(driftD<7.){
95 sigma1=0.085438; sigma2=0.255109; f=0.931;
96 }else if(driftD<7.5){
97 sigma1=0.101635; sigma2=0.315529; f=0.878;
98 }else{
99 sigma1=0.149529; sigma2=0.374697; f=0.89;
100 }
101 }
102 */
103}
104
105double BesMdcCalTransfer::D2T( double driftDNew ) {
106 double driftT;
107 driftT = mdcCalFunSvc->distToDriftTime( driftDNew, layerId, cellId, posFlag, enterAngle );
108 // driftT = driftD/40.*1000;
109 /*
110 G4double c[8],x1;
111 c[0]=0.; c[1]=1.96061432e01.;c[2]=2.31378106.; c[3]=3.59120632e-1;
112 c[0]=0.;c[0]=0.;c[0]=0.;c[0]=0.;x1=5.924711; driftT=0.; if(driftD<x1){ for(int i=0;i<7;i++){
113 driftT+=c[i]*driftD;
114 }
115 }else{
116 for(int i=0;i<8;i++){
117 driftT+=c[i]*driftD;
118 }
119 }
120 */
121 return driftT;
122}
123
124double BesMdcCalTransfer::GetT0() { return mdcCalFunSvc->getT0( layerId, cellId ); }
125
126double BesMdcCalTransfer::GetTimeWalk() { return mdcCalFunSvc->getTimeWalk( layerId, edep ); }
127
129 // return mdcCalFunSvc->getEff(layerId, cellId);
130 return 1.;
131}
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
double D2T(double driftDNew)
void SetHitPointer(BesMdcHit *hit)
void GetSigma(double &sigma1, double &sigma2, double &f)