BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcMergeDups.h
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2// File and Version Information:
3// $Id: MdcMergeDups.h,v 1.3 2012/05/13 23:43:41 zhangy Exp $
4//
5// Description:
6// Class MdcMergeDups is to be merge duplicated track in MDC.
7//
8// Environment:
9// Software developed for the BESIII Detector at the BEPCII.
10//
11// Author List:
12// Yoshi Iwasaki(yoshihito.iwasaki@kek.jp) Original Author
13// Zhang Yao(zhangyao@ihep.ac.cn) Migrate to BESIII
14//
15// Copyright Information:
16// Copyright (C) 2009 IHEP
17//
18// History:
19// Zhang Yao 2009-10-30
20// Migration BELLE TTrackManager::merge() for BESIII MDC
21//
22//------------------------------------------------------------------------
23
24#ifndef MDCMERGECRUL_H
25#define MDCMERGECRUL_H
26
27//----------------------
28// Base Class Headers --
29//----------------------
30#include "CLHEP/Alist/AList.h"
31#include "GaudiKernel/Algorithm.h"
32#include "GaudiKernel/SmartDataPtr.h"
33#include "MagneticFieldSvc/IBesMagFieldSvc.h"
34#include "MdcCalibFunSvc/IMdcCalibFunSvc.h"
35#include "MdcData/MdcHit.h"
36#include "MdcGeom/MdcDetector.h"
37#include "MdcRecEvent/RecMdcHit.h"
38#include "MdcRecEvent/RecMdcTrack.h"
39#include "PatBField/BField.h"
40#include "RawDataProviderSvc/IRawDataProviderSvc.h"
41
42//---------------------
43//-- Class Interface --
44//---------------------
45
47
48class MdcMergeDups : public Algorithm {
49
50 //--------------------
51 // Instance Members --
52 //--------------------
53
54public:
55 // Constructors
56 MdcMergeDups( const std::string& name, ISvcLocator* pSvcLocator );
57
58 // Destructor
59 virtual ~MdcMergeDups();
60
61 // Operations
62 StatusCode initialize();
63 StatusCode execute();
64 StatusCode finalize();
65 StatusCode beginRun();
66 int mergeDups( void );
67 int mergeCurl( void );
68 int testByOverlapHit( RecMdcTrack* refTk, RecMdcTrack* testTk );
69 int testByParam( RecMdcTrack* refTk, RecMdcTrack* testTk );
70 int doMergeLong( std::vector<RecMdcTrack*> mergeTkList );
71 int doMergeCurl( std::vector<RecMdcTrack*> mergeTkList );
72 // int doMergeOdd(std::vector<RecMdcTrack*> mergeTkList);
73 void store( TrkRecoTrk* aTrack );
74 bool eraseTdsTrack( RecMdcTrackCol::iterator tk );
75
76 void dumpRecMdcTrack();
77
78private:
79 bool m_beginRun{ false };
80
81 const MdcDetector* m_gm;
82 BField* m_bfield;
83
84 int m_debug;
85 double m_maxDd0InMerge;
86 double m_maxDphi0InMerge;
87 double m_maxPdradInMerge;
88 double m_maxRcsInMerge;
89 double m_mergePt;
90 double m_mergeLoadAx;
91 double m_mergeLoadSt;
92 double m_mergeOverlapRatio;
93 double m_bunchT0;
94};
95#endif
virtual ~MdcMergeDups()
StatusCode execute()
int doMergeLong(std::vector< RecMdcTrack * > mergeTkList)
int testByParam(RecMdcTrack *refTk, RecMdcTrack *testTk)
int mergeDups(void)
StatusCode finalize()
StatusCode initialize()
void store(TrkRecoTrk *aTrack)
void dumpRecMdcTrack()
bool eraseTdsTrack(RecMdcTrackCol::iterator tk)
int testByOverlapHit(RecMdcTrack *refTk, RecMdcTrack *testTk)
StatusCode beginRun()
int doMergeCurl(std::vector< RecMdcTrack * > mergeTkList)
int mergeCurl(void)
MdcMergeDups(const std::string &name, ISvcLocator *pSvcLocator)