BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcPatRec/MdcTrkRecon/MdcTrkRecon-00-03-45/MdcTrkRecon/MdcTrkRecon.h
Go to the documentation of this file.
1#ifndef MDCTRKRECON_H
2#define MDCTRKRECON_H
3
4#include "GaudiKernel/Algorithm.h"
5#include "MdcTrkRecon/MdcFlagHold.h"
6#include "GaudiKernel/NTuple.h"
7#include "MdcRecEvent/RecMdcTrack.h"
8#include <string>
9#include "MagneticField/IMagneticFieldSvc.h"
10#include "RawDataProviderSvc/RawDataProviderSvc.h"
11#include "MdcPrintSvc/MdcPrintSvc.h"
12
13class MdcDetector;
14class MdcSegData;
15class MdcSegList;
17class MdcSegFinder;
18class BField;
19class IHistogram1D;
20class McParticle;
21#ifdef MDCPATREC_TIMETEST
22class IBesTimerSvc;
23class BesTimer;
24#endif
25
26#ifdef UseCalib
27class MdcCalibFunSvc;
28#endif
29
30
31class MdcTrkRecon:public Algorithm {
32public:
33 MdcTrkRecon(const std::string& name, ISvcLocator* pSvcLocator);
35 StatusCode initialize();
36 StatusCode execute();
37 StatusCode finalize();
38 StatusCode beginRun();
39
40protected:
41 bool ignoringUsedHits() const {return m_onlyUnusedHits;}
42 bool poisoningHits() const {return m_poisonHits;}
45 void dumpDigi();
46 void dumpTdsTrack(RecMdcTrackCol* trackList);
48 void fillEvent();
49 StatusCode bookNTuple();
50private:
51 int t_iExecute;
52 int m_fittingMethod;
53 int m_allHit;//if all hit (active and inactive) include in the number of nHit
54 std::string m_configFile;
55 std::string m_paramFile;
56 std::string m_pdtFile;
57 const MdcDetector * _gm;
58 MdcFlagHold m_flags; // run-time-settable flags and params
59 std::auto_ptr<MdcSegData> m_hitData;
60 std::auto_ptr<MdcSegList> m_segs;
61 std::auto_ptr<MdcTrackListBase> m_tracks;
62 std::auto_ptr<MdcSegFinder> m_segFinder;
63 RawDataProviderSvc* m_rawDataProviderSvc;
64 MdcPrintSvc* m_mdcPrintSvc;
65
66 BField *m_bfield;
67
68 std::vector<int> m_selEvtNo;
69 bool m_onlyUnusedHits;
70 bool m_poisonHits;
71 bool m_doLineFit;
72 bool m_tryBunch;
73 bool m_recForEsTime;
74 std::vector<float> m_helixHitsSigma;
75
76 uint32_t m_getDigiFlag;
77 int m_maxMdcDigi;
78 bool m_keepBadTdc;
79 bool m_dropHot;
80 bool m_keepUnmatch;
81 int m_minMdcDigi;
82
83 bool m_fieldCosmic;
84 double m_d0Cut;
85 double m_z0Cut;
86 double m_dropTrkPt;
87 bool m_mcHist;
88 int m_hist;
89 int m_debug;
90 bool m_doSagFlag;
91 bool m_arbitrateHits;
92 bool m_combineTracking;
93
94 double mcDrift[43][288];//FIXME assume max 43 track/event, 288 hit/track
95 double mcLayer[43][288];
96 double mcWire[43][288];
97 double mcLR[43][288];
98 double mcX[43][288];
99 double mcY[43][288];
100 double mcZ[43][288];
101 double hitOnSeg[43];
102 double hitOnMcTk[43];
103 int hitPoisoned[43][288];
104 int hitInSegList[43][288];
105 int t_nHitInTk[100];
106 int t_t0Stat;
107 double t_t0;
108 double t_t0Truth;
109 double t_mcTkNum;
110 int t_nDigi;
111 int t_eventNo;
112 int t_nRecTk;
113 int t_iExexute;
114 int isPrimaryOfMcTk[100];
115 int pdgOfMcTk[100];
116#ifdef MDCPATREC_TIMETEST
117 IBesTimerSvc* m_timersvc;
118 BesTimer* m_timer[2];
119 double ti_nHit;
120 double ti_p;
121 double ti_pt;
122#endif
123 IMagneticFieldSvc* m_pIMF;
124};
125
126#endif
ObjectVector< RecMdcTrack > RecMdcTrackCol
The Monte Carlo particle kinematics information.
StatusCode bookNTuple()
StatusCode finalize()
void dumpTdsTrack(RecMdcTrackCol *trackList)
void fillEvent()
StatusCode execute()
void fillTrackList()
StatusCode initialize()
StatusCode beginRun()
MdcTrkRecon(const std::string &name, ISvcLocator *pSvcLocator)
void fillSegList()
void dumpDigi()
void fillMcTruth()