Belle II Software  release-08-01-10
Hough3DFinder.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 //-----------------------------------------------------------------------------
10 // Description : A class to find 3D tracks using Hough algorithm
11 //-----------------------------------------------------------------------------
12 
13 #ifndef TRGCDCHough3DFinder_FLAG_
14 #define TRGCDCHough3DFinder_FLAG_
15 
16 #include <string>
17 #include "trg/cdc/Hough3DUtility.h"
18 
19 #ifdef TRGCDC_SHORT_NAMES
20 #define TCH3DFinder TRGCDCHough3DFinder
21 #endif
22 
23 namespace Belle2 {
29  class TRGCDC;
30  class TRGCDCTrack;
31  class TRGCDCSegmentHit;
32  class TRGCDCLink;
33 
36  public:
38  TRGCDCHough3DFinder(const TRGCDC&, bool makeRootFile, int finderMode);
47  void doit(std::vector<TRGCDCTrack*> const& trackList2D, std::vector<TRGCDCTrack*>& trackList3D);
49  void doit(std::vector<TRGCDCTrack*>& trackList);
51  void perfectFinder(std::vector<TRGCDCTrack*>& trackList, unsigned j, std::vector<const TRGCDCSegmentHit*>& mcTSList);
53  void doitPerfectly(std::vector<TRGCDCTrack*>& trackList);
55  void doitFind(std::vector<TRGCDCTrack*>& trackList);
57  void doitNewFind(std::vector<TRGCDCTrack*>& trackList);
59  void findNumberOfHitSuperlayersForMcParticles(std::vector<std::vector<const TRGCDCSegmentHit*> >& p_stTSs,
60  std::map<unsigned, unsigned>& numberTSsForParticle);
62  void terminate(void);
63 
66  const TRGCDC& _cdc;
76  std::string m_rootHough3DFilename;
84  std::map<std::string, double> m_mDouble;
86  std::map<std::string, std::vector<double> > m_mVector;
88  std::map<std::string, double> m_mConstD;
90  std::map<std::string, std::vector<double> > m_mConstV;
92  std::map<std::string, double> m_mEventD;
94  std::map<std::string, std::vector<double> > m_mEventV;
96  std::map<std::string, bool> m_mBool;
98  std::map<std::string, TVectorD*> m_mRunTVectorD;
100  std::map<std::string, TVectorD*> m_mEventTVectorD;
102  std::map<std::string, TClonesArray*> m_mTClonesArray;
103 
104  };
105 
107 } // namespace Belle2
108 
109 #endif
class of TRGCDCHough3DFinder
Definition: Hough3DFinder.h:35
void doitNewFind(std::vector< TRGCDCTrack * > &trackList)
Finds tracks using tracklist.
std::map< std::string, std::vector< double > > m_mVector
Map to hold track vector values for Fitter3D.
Definition: Hough3DFinder.h:86
TRGCDCHough3DFinder(TRGCDCHough3DFinder &)=delete
Copy constructor, deleted.
std::map< std::string, TVectorD * > m_mEventTVectorD
TVectorD map for saving event values to root file.
std::map< std::string, bool > m_mBool
Map to hold input options.
Definition: Hough3DFinder.h:96
std::map< std::string, double > m_mConstD
Map to hold run values for Fitter3D.
Definition: Hough3DFinder.h:88
bool m_makeRootFile
Choose whether to save root file.
Definition: Hough3DFinder.h:68
const TRGCDC & _cdc
Members.
Definition: Hough3DFinder.h:66
std::string m_rootHough3DFilename
For root file variables.
Definition: Hough3DFinder.h:76
std::map< std::string, std::vector< double > > m_mConstV
Map to hold run vectcors for Fitter3D.
Definition: Hough3DFinder.h:90
std::map< std::string, double > m_mDouble
Map to hold track double values for Fitter3D.
Definition: Hough3DFinder.h:84
std::map< std::string, double > m_mEventD
Map to hold event values for Fitter3D.
Definition: Hough3DFinder.h:92
std::map< std::string, TClonesArray * > m_mTClonesArray
TClonesArray map for saving track values to root file.
TTree * m_treeConstantsFinder3D
TTree for constants of Hough3D.
Definition: Hough3DFinder.h:82
int m_finderMode
0: perfect finder, 1: Hough3DFinder, 2: GeoFinder, 3: VHDL GeoFinder Choose what finder to use.
Definition: Hough3DFinder.h:71
TRGCDCHough3DFinder & operator=(TRGCDCHough3DFinder &)=delete
Assignment operator, deleted.
Hough3DFinder * m_Hough3DFinder
Hough Variables.
Definition: Hough3DFinder.h:74
TFile * m_fileFinder3D
Tfile for Hough3D root file.
Definition: Hough3DFinder.h:78
TTree * m_treeTrackFinder3D
TTree for tracks of Hough3D.
Definition: Hough3DFinder.h:80
std::map< std::string, std::vector< double > > m_mEventV
Map to hold event vectcors for Fitter3D.
Definition: Hough3DFinder.h:94
std::map< std::string, TVectorD * > m_mRunTVectorD
TVectorD map for saving run values to root file.
Definition: Hough3DFinder.h:98
The instance of TRGCDC is a singleton.
Definition: TRGCDC.h:69
A class to finded stereo TS hits related to 2D tracks.
void terminate(void)
Termination method.
void findNumberOfHitSuperlayersForMcParticles(std::vector< std::vector< const TRGCDCSegmentHit * > > &p_stTSs, std::map< unsigned, unsigned > &numberTSsForParticle)
Finds number of hit superlayers for each mc particle.
void perfectFinder(std::vector< TRGCDCTrack * > &trackList, unsigned j, std::vector< const TRGCDCSegmentHit * > &mcTSList)
Perfect 3D finder for a track.
TRGCDCHough3DFinder(const TRGCDC &, bool makeRootFile, int finderMode)
Contructor.
void doitPerfectly(std::vector< TRGCDCTrack * > &trackList)
Perfect 3D finder for a tracklist.
void doitFind(std::vector< TRGCDCTrack * > &trackList)
Finds tracks using tracklist.
void doit(std::vector< TRGCDCTrack * > const &trackList2D, std::vector< TRGCDCTrack * > &trackList3D)
Member functions.
Abstract base class for different kinds of events.