/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Mdc/MdcAlignAlg/MdcAlignAlg-00-01-04/MdcAlignAlg/ResiAlign.h

Go to the documentation of this file.
00001 /* Residual distribution method, author: Wu Linghui (wulh@ihep.ac.cn) */
00002 
00003 #ifndef RESIALIGN_H
00004 #define RESIALIGN_H
00005 
00006 #include "MdcAlignAlg/MdcAlign.h"
00007 #include "MdcAlignAlg/MdcAliParams.h"
00008 
00009 #include "GaudiKernel/NTuple.h"
00010 #include "GaudiKernel/INTupleSvc.h"
00011 
00012 #include "TH1F.h"
00013 #include "TGraph.h"
00014 
00015 #include <fstream>
00016 
00017 using namespace Alignment;
00018 
00019 class ResiAlign: public MdcAlign {
00020 public:
00021      ResiAlign();
00022      ~ResiAlign();
00023      void clear();
00024      void initialize(TObjArray* hlist, IMdcGeomSvc* mdcGeomSvc,
00025                      IMdcCalibFunSvc* mdcFunSvc);
00026 
00027      void setParam(MdcAliParams& param);
00028      bool fillHist(MdcAliEvent* event);
00029      void updateConst(MdcAlignPar* alignPar);
00030     
00031      static Double_t funResi(double* x, double* par);
00032 
00033 private:
00034      MdcAliParams m_param;
00035      TObjArray*       m_hlist;
00036      IMdcGeomSvc*     m_mdcGeomSvc;
00037      IMdcCalibFunSvc* m_mdcFunSvc;
00038      INTupleSvc*      ntupleSvc;
00039 
00040      int m_ndiv;
00041      double m_resiCut;
00042      bool m_layBound[LAYERNMAX];
00043 
00044      Long64_t m_npoint[NEP];
00045      double m_zrange[LAYERNMAX][2];
00046      double m_radii[LAYERNMAX];
00047      double m_docaMin[LAYERNMAX];
00048      double m_docaMax[LAYERNMAX];
00049      double m_xe[WIRENMAX];
00050      double m_ye[WIRENMAX];
00051      double m_ze[WIRENMAX];
00052      double m_xw[WIRENMAX];
00053      double m_yw[WIRENMAX];
00054      double m_zw[WIRENMAX];
00055 
00056      NTuple::Tuple*        m_tuple[NEP+1];
00057      NTuple::Item<long>    m_iRun[NEP+1];
00058      NTuple::Item<long>    m_iEvt[NEP+1];
00059      NTuple::Item<float>   m_resi[NEP+1];
00060      NTuple::Item<float>   m_p[NEP+1];
00061      NTuple::Item<float>   m_pt[NEP+1];
00062      NTuple::Item<float>   m_phi[NEP+1];
00063      NTuple::Item<float>   m_lay[NEP+1];
00064      NTuple::Item<float>   m_lr[NEP+1];
00065      NTuple::Item<float>   m_cel[NEP+1];
00066 
00067      std::ofstream m_fevt;
00068      
00069      TH1F* m_hnTrk;
00070      TH1F* m_hnHit;
00071      TH1F* m_hlayHitmap;
00072      TH1F* m_hresAll;
00073      TH1F* m_hresInn;
00074      TH1F* m_hresStp;
00075      TH1F* m_hresOut;
00076      TH1F* m_hresLay[LAYERNMAX];
00077      TGraph* m_gr[NEP];
00078 
00079      int m_ncut1;
00080      int m_ncut2;
00081      int m_ncut3;
00082      int m_ncut4;
00083      int m_ncut5;
00084      int m_ncut6;
00085      int m_ncut7;
00086      int m_ncut8;
00087      int m_ncut9;
00088      int m_ncut10;
00089      int m_ncut11;
00090      int m_ncut12;
00091      int m_ncut13;
00092 };
00093 
00094 inline void ResiAlign::setParam(MdcAliParams& param){
00095      MdcAlign::setParam(param);
00096      m_param = param;
00097 }
00098 
00099 #endif /*RESIALIGN_H*/

Generated on Tue Nov 29 23:12:47 2016 for BOSS_7.0.2 by  doxygen 1.4.7