BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcxCosmicSewer.h
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2// File and Version Information:
3// $Id: MdcxCosmicSewer.h,v 1.8 2012/07/20 05:48:16 zhangy Exp $
4//
5// Description:
6// Class MdcxCosmicSewer. This is a simple example of a user module. It
7// just prints out each entrypoint (operation) as it is accessed.
8//
9// Environment:
10// Software developed for the BaBar Detector at the SLAC B-Factory.
11//
12// Author List:
13// Zhang Yao(zhangyao@ihep.ac.cn)
14//
15// Copyright Information:
16// Copyright (C) 1994 Lawrence Berkeley Laboratory
17//
18// History:
19// Migration for BESIII MDC
20//
21//------------------------------------------------------------------------
22
23#ifndef MDCXCOSMICSEWER_H
24#define MDCXCOSMICSEWER_H
25
26//----------------------
27// Base Class Headers --
28//----------------------
29#include "CLHEP/Alist/AList.h"
30#include "GaudiKernel/Algorithm.h"
31#include "GaudiKernel/NTuple.h"
32#include "MdcCalibFunSvc/IMdcCalibFunSvc.h"
33#include "MdcGeom/MdcDetector.h"
34#include "MdcPrintSvc/IMdcPrintSvc.h"
35#include "MdcRecEvent/RecMdcHit.h"
36#include "MdcRecEvent/RecMdcTrack.h"
37#include "MdcUtilitySvc/IMdcUtilitySvc.h"
38#include "PatBField/BField.h"
39#include "RawDataProviderSvc/IRawDataProviderSvc.h"
40#include "TrkBase/TrkRecoTrk.h"
41#include "TrkFitter/TrkContextEv.h"
42
44class MdcxCosmicSewer : public Algorithm {
45
46public:
47 // Constructors
48 MdcxCosmicSewer( const std::string& name, ISvcLocator* pSvcLocator );
49
50 // Destructor
51 virtual ~MdcxCosmicSewer();
52
53 // Operations
54 StatusCode initialize();
55 StatusCode execute();
56 StatusCode finalize();
57 StatusCode beginRun();
58
59 void MdcxHitsToHots( HepVector& helix, TrkRecoTrk* trk, HitRefVec& hits, HitRefVec& skiped );
60 void store( TrkRecoTrk* tk, HitRefVec& skip );
62 void dumpTdsTrack( RecMdcTrackCol* trackList );
63
64private:
65 bool m_beginRun{ false };
66
67 void getInfo( HepVector helix, double fltLen, HepPoint3D& pos, Hep3Vector& dir );
68 int patAmbig( int bes3FlagLR );
69 int bes3FlagLR( int patAmbig );
70 int m_debug;
71 bool m_hist;
72 bool m_doSag;
73
74 std::vector<float> m_cosmicSewPar;
75 bool m_cosmicSewSkip;
76 bool m_countPropTime;
77 bool m_lineFit;
78
79 IMdcUtilitySvc* m_mdcUtilitySvc;
80 IMdcPrintSvc* m_mdcPrintSvc;
81 const MdcDetector* m_gm;
82 IBesMagFieldSvc* m_pIMF;
83 BField* m_bfield{ nullptr };
84 TrkContextEv* m_context{ nullptr };
85 const IMdcCalibFunSvc* m_mdcCalibFunSvc;
86 IRawDataProviderSvc* m_rawDataProviderSvc;
87 double m_bunchT0;
88 long i_evt;
89 bool m_test;
90 int m_nSewed;
91
92 NTuple::Tuple* m_xtupleCsmcSew;
93 NTuple::Item<double> m_csmcD0;
94 NTuple::Item<double> m_csmcPhi0;
95 NTuple::Item<double> m_csmcZ0;
96 NTuple::Item<double> m_csmcOmega;
97 NTuple::Item<double> m_csmcPt;
98 NTuple::Item<double> m_csmcTanl;
99};
100#endif
HepGeom::Point3D< double > HepPoint3D
void dumpTdsTrack(RecMdcTrackCol *trackList)
StatusCode finalize()
StatusCode initialize()
virtual ~MdcxCosmicSewer()
MdcxCosmicSewer(const std::string &name, ISvcLocator *pSvcLocator)
void MdcxHitsToHots(HepVector &helix, TrkRecoTrk *trk, HitRefVec &hits, HitRefVec &skiped)
void store(TrkRecoTrk *tk, HitRefVec &skip)
StatusCode beginRun()