1#ifndef MDCTUNNINGSVC_H_
2#define MDCTUNNINGSVC_H_
4#include "GaudiKernel/IDataProviderSvc.h"
5#include "GaudiKernel/IIncidentListener.h"
6#include "GaudiKernel/IInterface.h"
7#include "GaudiKernel/Kernel.h"
8#include "GaudiKernel/Service.h"
10#include "DatabaseSvc/IDatabaseSvc.h"
11#include "MdcTunningSvc/BesMdcRes.hh"
12#include "MdcTunningSvc/IMdcTunningSvc.h"
17 virtual public IIncidentListener {
19 MdcTunningSvc(
const std::string& name, ISvcLocator* svcloc );
27 void handle(
const Incident& );
30 bool setMcEff( std::string eff_con );
39 double NewSig(
int layerId,
double driftD );
40 double DeldriftD(
int layerId,
double driftD );
41 double Delcostta(
int layerId,
double costta );
42 double GetEff(
int layerId,
int cellId,
double driftD,
double cosTheta,
int posFlag );
43 double GetRes(
int layerId,
int cellId,
double driftD,
double cosTheta,
int posFlag,
44 double entranceAngle,
double& mean,
double& sigma );
45 double GetRes2(
int layerId,
int cellId,
double driftD,
double cosTheta,
int posFlag,
46 double entranceAngle,
double&
f,
double& mean1,
double& sigma1,
47 double& mean2,
double& sigma2 );
48 double GetRes3(
int layerId,
int cellId,
double driftD,
double cosTheta,
int posFlag,
49 double entranceAngle,
double&
f,
double& mean1,
double& sigma1,
50 double& mean2,
double& sigma2,
double& ResLargest,
double& ResSmallest,
52 double ResvEntr(
int layerId,
double enterA,
int ilr,
double driftD );
53 double DelEtr_Sig(
int lay,
double enterA,
int ilr,
double driftD );
60 static const int docaNo = 60;
61 static const int thetaNo = 40;
63 double docaEff[43][docaNo];
64 double thetaEff[43][thetaNo];
65 double cellEff[43][288];
66 double docaRes[43][docaNo][2][2];
67 double docaF[43][docaNo][2];
68 double docaMean1[43][docaNo][2];
69 double docaSigma1[43][docaNo][2];
70 double docaMean2[43][docaNo][2];
71 double docaSigma2[43][docaNo][2];
74 double resLargest[43][docaNo][2];
75 double resSmallest[43][docaNo][2];
76 double resRatio[43][docaNo][2];
77 double resLargest_2[43][docaNo][2];
78 double resSmallest_2[43][docaNo][2];
79 double resRatio_2[43][docaNo][2];
81 double docaEff_2[43][docaNo];
82 double thetaEff_2[43][thetaNo];
83 double cellEff_2[43][288];
84 double docaRes_2[43][docaNo][2][2];
85 double docaF_2[43][docaNo][2];
86 double docaMean1_2[43][docaNo][2];
87 double docaSigma1_2[43][docaNo][2];
88 double docaMean2_2[43][docaNo][2];
89 double docaSigma2_2[43][docaNo][2];
91 std::string m_ParBossVer;
95 std::string m_effFile;
96 std::string m_resFile;
97 std::string m_effFile_endcap;
98 std::string m_resFile_endcap;
103 IDataProviderSvc* m_eventSvc;
108 std::string userName;
109 std::string password;
110 unsigned int serialNo;
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
double get_cellEff(int i, int j)
double DelEtr_Sig(int lay, double enterA, int ilr, double driftD)
void setMdcRes(std::string path)
bool setMcRes2(std::string res_con)
double get_docaEff(int i, int j)
bool setMcRes3(std::string res_con)
StatusCode getMdcTuningTableInfo()
double Delcostta(int layerId, double costta)
double get_thetaEff(int i, int j)
void handle(const Incident &)
double ResvEntr(int layerId, double enterA, int ilr, double driftD)
bool setMcEff(std::string eff_con)
double NewSig(int layerId, double driftD)
double DeldriftD(int layerId, double driftD)
double GetRes(int layerId, int cellId, double driftD, double cosTheta, int posFlag, double entranceAngle, double &mean, double &sigma)
double GetEff(int layerId, int cellId, double driftD, double cosTheta, int posFlag)
MdcTunningSvc(const std::string &name, ISvcLocator *svcloc)
virtual StatusCode finalize()
double GetRes2(int layerId, int cellId, double driftD, double cosTheta, int posFlag, double entranceAngle, double &f, double &mean1, double &sigma1, double &mean2, double &sigma2)
double GetRes3(int layerId, int cellId, double driftD, double cosTheta, int posFlag, double entranceAngle, double &f, double &mean1, double &sigma1, double &mean2, double &sigma2, double &ResLargest, double &ResSmallest, double &ResRatio)
virtual StatusCode initialize()