BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EsTimeAlg.h
Go to the documentation of this file.
1#ifndef ESTIME_FLAG_
2#define ESTIME_FLAG_
3#include "GaudiKernel/Algorithm.h"
4#include "GaudiKernel/DataSvc.h"
5#include "GaudiKernel/NTuple.h"
6#include "HepPDT/ParticleDataTable.hh"
7#include <fstream>
8#include <iostream>
9#include <stdio.h>
10#include <vector>
11
12#include "CalibData/CalibBase1.h"
13#include "CalibData/CalibModel.h"
14#include "CalibData/EsTime/EsTimeCalibData.h"
15#include "CalibData/Tof/TofCalibData.h"
16#include "CalibDataSvc/ICalibRootSvc.h"
17#include "EstTofCaliSvc/IEstTofCaliSvc.h"
18#include "MdcCalibFunSvc/IMdcCalibFunSvc.h"
19#include "MdcUtilitySvc/IMdcUtilitySvc.h"
20#include "RawDataProviderSvc/IRawDataProviderSvc.h"
21#include "TofQElecSvc/ITofQElecSvc.h"
22
23#include "EstParameter.h"
24
25typedef std::vector<double> Vdouble;
26
27class EsTimeAlg : public Algorithm {
28
29public:
30 EsTimeAlg( const std::string& name, ISvcLocator* pSvcLocator );
31
32 StatusCode initialize();
33 StatusCode execute();
34 StatusCode finalize();
35
36public:
37 int m_flag; // 1: use segment linear fitting method
38 // 2: use fasttrk and mdc hit
39
40 int m_nbunch; // 3: 3 bunches,0ns,8ns,16ns
41 // 6: 6 bunches,0,4,8,12,16,20ns
43 int m_ntupleflag; // 0: donot draw ntuple
44 // 1: add ntuple
45
46 int m_optCosmic; // optCosmic = 1: employ cosmic correction, 0: don't
47 int m_cosmicScheme; // cosmicScheme to decide incoming and outgoing legs
48 // 0: 2hits+TDCdiff 1: 2hits+Phi 2: All hits+Phi
49
50 int m_phase; // Detector Version, 1 ETOF->96Scin, 2 ETOF->2MRPC+92Scin, 3->72MRPC
51 int m_userawtime_opt; // 1: use raw tdc time of TOF; 0: use TOF calibration TDC time
52 double toffset_rawtime; // offset for barrel using rawtime of TOF
53 double toffset_rawtime_e; // offset for endcap using rawtime of TOF
54 double offset_dt;
58 // double m_t0shift; //TOF event start time need abstract m_t0shift when do MDC
59 // calibration
60 int m_evtNo; // 1: cout event Number; 0: don't
61 double m_ebeam; // beam energy;
62 // void doMDCMatching( int * ){}; // Simple hit matching
63 // int _doMatch;
64 // int _optCosmic, _cosmicScheme;
65 // int _SkipMC,_Skip;
66 // double _ptCut, _drCut, _dzCut;
67 // double _pathlCut, _ztofCutmin, _ztofCutmax;
68 // double _timeOfs;
69 // int _MDC_Skip;
70 // double _MDC_ptCut, _MDC_drCut, _MDC_dzCut;
71 // int _MDC_Tof, _MDC_Prop, _MDC_Walk;
72 // int _MDC_Debug;
73 // int _MDC_Xt;
75
76 // private:
77 // static evtime * _evtprt;
78 bool m_useXT;
80 bool m_useSw;
85
86private:
87 StatusCode storeTDS( double tEst, int tEstFlag, double quality ); // yzhang add
88 double Opt_new( const double arr[], const int size, const double sigma_cut );
89 double EST_Trimmer( double t0_original, double t0_offset, double raw_offset,
90 double offset_dt, double bunchTime );
91 // double Opt_new( vector<double>::iterator beg,vector<double>::iterator end);
92 int ndriftt;
93 int ntrkMC;
94 int ntrk;
95 int m_pass[5];
96
97 IDataProviderSvc* m_pCalibDataSvc;
98 ICalibRootSvc* m_pRootSvc;
99 IEstTofCaliSvc* tofCaliSvc;
100 ITofQElecSvc* tofQElecSvc;
101 IMdcCalibFunSvc* m_mdcCalibFunSvc;
102 IMdcUtilitySvc* m_mdcUtilitySvc;
103
104 HepPDT::ParticleDataTable* m_particleTable;
105 IRawDataProviderSvc* m_rawDataProviderSvc;
106 NTuple::Tuple* m_tuple2;
107 // NTuple::Tuple* m_tuple9;
108
109 NTuple::Item<int> g_eventNo, g_runNo;
110 // MCTruth
111
112 NTuple::Item<int> g_ntrkMC;
113 NTuple::Array<double> g_theta0MC, g_phi0MC;
114 NTuple::Array<double> g_pxMC, g_pyMC, g_pzMC, g_ptMC;
115
116 // recon
117 NTuple::Item<double> g_nmatchbarrel, g_nmatchend;
118 NTuple::Item<double> g_nmatchbarrel_1, g_nmatchbarrel_2;
119 NTuple::Item<int> g_nmatch_tot;
120 NTuple::Item<int> g_ntrk, g_trigtiming;
121 NTuple::Array<double> g_ttof;
122 NTuple::Array<double> g_vel;
123 NTuple::Array<double> g_abmom;
124 NTuple::Array<int> g_pid;
125 NTuple::Array<double> g_t0for, g_t0back;
126 NTuple::Item<double> g_meant0, g_t0less, g_t0barrelTof;
127 NTuple::Item<double> g_ndriftt, g_nmatchmdc, g_EstimeMdc;
128 NTuple::Item<double> g_t0mean, g_T0, g_t0, g_mcTestime;
129 NTuple::Item<double> g_meantdc, g_Testime_fzisan, g_Testime;
130 NTuple::Item<int> g_ntofup, g_ntofdown, g_ntofup1, g_ntofdown1;
131 NTuple::Item<double> g_difftof_b, g_difftof_e;
132 NTuple::Array<double> g_meantevup, g_meantevdown;
133 NTuple::Item<int> m_estFlag;
134 NTuple::Item<double> m_estTime;
135
136 NTuple::Tuple* m_tuple9;
137 NTuple::Array<double> g_meantev;
138 NTuple::Item<int> g_nmatch;
139
140 NTuple::Tuple* m_tuple3;
141 NTuple::Item<double> g_t0offset_b;
142 NTuple::Item<double> g_t0offset_e;
143 NTuple::Item<int> g_bunchtime;
144};
145
146#endif
std::vector< double > Vdouble
Definition Gam4pikp.cxx:39
double offset_dt
Definition EsTimeAlg.h:54
bool m_useXT
Definition EsTimeAlg.h:78
int m_optCosmic
Definition EsTimeAlg.h:46
int m_ntupleflag
Definition EsTimeAlg.h:43
bool m_useTimeFactor
Definition EsTimeAlg.h:84
int m_cosmicScheme
Definition EsTimeAlg.h:47
bool m_useSw
Definition EsTimeAlg.h:80
double m_bunchtime_MC
Definition EsTimeAlg.h:42
double m_TofOpt_Cut
Definition EsTimeAlg.h:83
int m_beforrec
Definition EsTimeAlg.h:57
double toffset_rawtime_e
Definition EsTimeAlg.h:53
EsTimeAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition EsTimeAlg.cxx:83
double m_ebeam
Definition EsTimeAlg.h:61
double offset_dt_end
Definition EsTimeAlg.h:55
int m_userawtime_opt
Definition EsTimeAlg.h:51
bool m_mdcopt
Definition EsTimeAlg.h:81
StatusCode finalize()
bool m_TofOpt
Definition EsTimeAlg.h:82
int m_phase
Definition EsTimeAlg.h:50
StatusCode initialize()
int _MDC_Inner
Definition EsTimeAlg.h:74
int m_evtNo
Definition EsTimeAlg.h:60
int m_flag
Definition EsTimeAlg.h:37
int m_nbunch
Definition EsTimeAlg.h:40
double toffset_rawtime
Definition EsTimeAlg.h:52
bool m_useT0cal
Definition EsTimeAlg.h:79
StatusCode execute()
int m_debug
Definition EsTimeAlg.h:56