BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
Mdc/MdcAlignAlg/MdcAlignAlg-00-01-04/MdcAlignAlg/ResiAlign.h
Go to the documentation of this file.
1/* Residual distribution method, author: Wu Linghui ([email protected]) */
2
3#ifndef RESIALIGN_H
4#define RESIALIGN_H
5
6#include "MdcAlignAlg/MdcAlign.h"
7#include "MdcAlignAlg/MdcAliParams.h"
8
9#include "GaudiKernel/NTuple.h"
10#include "GaudiKernel/INTupleSvc.h"
11
12#include "TH1F.h"
13#include "TGraph.h"
14
15#include <fstream>
16
17using namespace Alignment;
18
19class ResiAlign: public MdcAlign {
20public:
23 void clear();
24 void initialize(TObjArray* hlist, IMdcGeomSvc* mdcGeomSvc,
25 IMdcCalibFunSvc* mdcFunSvc);
26
27 void setParam(MdcAliParams& param);
28 bool fillHist(MdcAliEvent* event);
29 void updateConst(MdcAlignPar* alignPar);
30
31 static Double_t funResi(double* x, double* par);
32
33private:
34 MdcAliParams m_param;
35 TObjArray* m_hlist;
36 IMdcGeomSvc* m_mdcGeomSvc;
37 IMdcCalibFunSvc* m_mdcFunSvc;
38 INTupleSvc* ntupleSvc;
39
40 int m_ndiv;
41 double m_resiCut;
42 bool m_layBound[LAYERNMAX];
43
44 Long64_t m_npoint[NEP];
45 double m_zrange[LAYERNMAX][2];
46 double m_radii[LAYERNMAX];
47 double m_docaMin[LAYERNMAX];
48 double m_docaMax[LAYERNMAX];
49 double m_xe[WIRENMAX];
50 double m_ye[WIRENMAX];
51 double m_ze[WIRENMAX];
52 double m_xw[WIRENMAX];
53 double m_yw[WIRENMAX];
54 double m_zw[WIRENMAX];
55
56 NTuple::Tuple* m_tuple[NEP+1];
57 NTuple::Item<long> m_iRun[NEP+1];
58 NTuple::Item<long> m_iEvt[NEP+1];
59 NTuple::Item<float> m_resi[NEP+1];
60 NTuple::Item<float> m_p[NEP+1];
61 NTuple::Item<float> m_pt[NEP+1];
62 NTuple::Item<float> m_phi[NEP+1];
63 NTuple::Item<float> m_lay[NEP+1];
64 NTuple::Item<float> m_lr[NEP+1];
65 NTuple::Item<float> m_cel[NEP+1];
66
67 std::ofstream m_fevt;
68
69 TH1F* m_hnTrk;
70 TH1F* m_hnHit;
71 TH1F* m_hlayHitmap;
72 TH1F* m_hresAll;
73 TH1F* m_hresInn;
74 TH1F* m_hresStp;
75 TH1F* m_hresOut;
76 TH1F* m_hresLay[LAYERNMAX];
77 TGraph* m_gr[NEP];
78
79 int m_ncut1;
80 int m_ncut2;
81 int m_ncut3;
82 int m_ncut4;
83 int m_ncut5;
84 int m_ncut6;
85 int m_ncut7;
86 int m_ncut8;
87 int m_ncut9;
88 int m_ncut10;
89 int m_ncut11;
90 int m_ncut12;
91 int m_ncut13;
92};
93
94inline void ResiAlign::setParam(MdcAliParams& param){
95 MdcAlign::setParam(param);
96 m_param = param;
97}
98
99#endif /*RESIALIGN_H*/
virtual void setParam(MdcAliParams &param)=0
static Double_t funResi(double *x, double *par)
void setParam(MdcAliParams &param)
void initialize(TObjArray *hlist, IMdcGeomSvc *mdcGeomSvc, IMdcCalibFunSvc *mdcFunSvc)
bool fillHist(MdcAliEvent *event)
void clear()
void updateConst(MdcAlignPar *alignPar)