BOSS 7.0.3
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/MdcxReco/MdcxReco/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([email protected])
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 "GaudiKernel/Algorithm.h"
30#include "CLHEP/Alist/AList.h"
31#include "MdcGeom/MdcDetector.h"
32#include "BField/BField.h"
33#include "MdcRecEvent/RecMdcTrack.h"
34#include "MdcRecEvent/RecMdcHit.h"
35#include "TrkBase/TrkRecoTrk.h"
36#include "TrkFitter/TrkContextEv.h"
37#include "MdcCalibFunSvc/MdcCalibFunSvc.h"
38#include "RawDataProviderSvc/RawDataProviderSvc.h"
39#include "GaudiKernel/NTuple.h"
40#include "MdcUtilitySvc/MdcUtilitySvc.h"
41#include "MdcPrintSvc/MdcPrintSvc.h"
42
43class MdcxCosmicSewer : public Algorithm {
44
45public:
46 // Constructors
47 MdcxCosmicSewer(const std::string& name, ISvcLocator* pSvcLocator);
48
49 // Destructor
50 virtual ~MdcxCosmicSewer();
51
52 // Operations
53 StatusCode initialize();
54 StatusCode execute();
55 StatusCode finalize();
56 StatusCode beginRun();
57
58 void MdcxHitsToHots(HepVector& helix, TrkRecoTrk* trk, HitRefVec& hits, HitRefVec& skiped);
59 void store(TrkRecoTrk* tk, HitRefVec& skip);
61 void dumpTdsTrack(RecMdcTrackCol* trackList);
62
63private:
64 void getInfo(HepVector helix, double fltLen, HepPoint3D& pos, Hep3Vector & dir);
65 int patAmbig(int bes3FlagLR);
66 int bes3FlagLR(int patAmbig);
67 int m_debug;
68 bool m_hist;
69 bool m_doSag;
70
71 std::vector<float> m_cosmicSewPar;
72 bool m_cosmicSewSkip;
73 bool m_countPropTime;
74 bool m_lineFit;
75
76 MdcUtilitySvc* m_mdcUtilitySvc;
77 MdcPrintSvc* m_mdcPrintSvc;
78 const MdcDetector* m_gm;
79 IMagneticFieldSvc* m_pIMF;
80 BField* m_bfield;
81 TrkContextEv* m_context;
82 const MdcCalibFunSvc* m_mdcCalibFunSvc;
83 RawDataProviderSvc* m_rawDataProviderSvc;
84 double m_bunchT0;
85 long i_evt;
86 bool m_test;
87 int m_nSewed;
88
89 NTuple::Tuple* m_xtupleCsmcSew;
90 NTuple::Item<double> m_csmcD0;
91 NTuple::Item<double> m_csmcPhi0;
92 NTuple::Item<double> m_csmcZ0;
93 NTuple::Item<double> m_csmcOmega;
94 NTuple::Item<double> m_csmcPt;
95 NTuple::Item<double> m_csmcTanl;
96};
97#endif
ObjectVector< RecMdcTrack > RecMdcTrackCol
SmartRefVector< RecMdcHit > HitRefVec
void dumpTdsTrack(RecMdcTrackCol *trackList)
StatusCode finalize()
StatusCode execute()
StatusCode initialize()
virtual ~MdcxCosmicSewer()
void MdcxHitsToHots(HepVector &helix, TrkRecoTrk *trk, HitRefVec &hits, HitRefVec &skiped)
void store(TrkRecoTrk *tk, HitRefVec &skip)
StatusCode beginRun()