BOSS 7.0.2
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/MdcTrkRecon/MdcTrkRecon/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([email protected]) Original Author
13// Zhang Yao([email protected]) 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 "GaudiKernel/Algorithm.h"
31#include "CLHEP/Alist/AList.h"
32#include "MdcData/MdcHit.h"
33#include "GaudiKernel/SmartDataPtr.h"
34#include "MdcRecEvent/RecMdcTrack.h"
35#include "MdcRecEvent/RecMdcHit.h"
36#include "MdcCalibFunSvc/MdcCalibFunSvc.h"
37#include "RawDataProviderSvc/RawDataProviderSvc.h"
38#include "MagneticField/IMagneticFieldSvc.h"
39#include "MdcGeom/MdcDetector.h"
40#include "BField/BField.h"
41
42//---------------------
43//-- Class Interface --
44//---------------------
45
46class MdcMergeDups : public Algorithm {
47
48 //--------------------
49 // Instance Members --
50 //--------------------
51
52 public:
53 // Constructors
54 MdcMergeDups(const std::string& name, ISvcLocator* pSvcLocator);
55
56 // Destructor
57 virtual ~MdcMergeDups();
58
59 // Operations
60 StatusCode initialize();
61 StatusCode execute();
62 StatusCode finalize();
63 StatusCode beginRun();
64 int mergeDups(void);
65 int mergeCurl(void);
66 int testByOverlapHit(RecMdcTrack* refTk, RecMdcTrack* testTk);
67 int testByParam(RecMdcTrack* refTk, RecMdcTrack* testTk);
68 int doMergeLong(std::vector<RecMdcTrack*> mergeTkList);
69 int doMergeCurl(std::vector<RecMdcTrack*> mergeTkList);
70 //int doMergeOdd(std::vector<RecMdcTrack*> mergeTkList);
71 void store(TrkRecoTrk* aTrack);
72 bool eraseTdsTrack(RecMdcTrackCol::iterator tk);
73
74 void dumpRecMdcTrack();
75
76 private:
77 const MdcDetector* m_gm;
78 BField* m_bfield;
79
80 int m_debug;
81 double m_maxDd0InMerge;
82 double m_maxDphi0InMerge;
83 double m_maxPdradInMerge;
84 double m_maxRcsInMerge;
85 double m_mergePt;
86 double m_mergeLoadAx;
87 double m_mergeLoadSt;
88 double m_mergeOverlapRatio;
89 double m_bunchT0;
90};
91#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)