MarlinTrk  02.08
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MarlinDDKalTest.h
Go to the documentation of this file.
1 #ifndef MarlinDDKalTest_h
2 #define MarlinDDKalTest_h
3 
5 
6 #ifdef MARLINTRK_DIAGNOSTICS_ON
8 #endif
9 
10 #include "DDKalTest/DDKalDetector.h"
11 
12 //LCIO:
13 #include "lcio.h"
14 #include "UTIL/BitField64.h"
15 #include "UTIL/LCTOOLS.h"
16 #include <LCRTRelations.h>
17 
18 #include "streamlog/streamlog.h"
19 
20 #include "TObjArray.h"
21 #include "TVector3.h"
22 
23 #include <cmath>
24 #include <vector>
25 
26 
27 class TKalDetCradle ;
28 class TVKalDetector ;
29 class DDVMeasLayer ;
30 class THelicalTrack ;
31 
32 class DDCylinderMeasLayer;
33 
34 namespace EVENT{
35  class TrackerHit ;
36 }
37 
38 namespace MarlinTrk{
39 
43 
44  public:
45 
46  friend class MarlinDDKalTestTrack;
47 
48  // define some configuration constants
49  static const bool FitBackward = kIterBackward ;
50  static const bool FitForward = kIterForward ;
51  static const bool OrderOutgoing = true ;
52  static const bool OrderIncoming = false ;
53 
55  MarlinDDKalTest() ;
56  MarlinDDKalTest(const MarlinDDKalTest&) = delete;
57  MarlinDDKalTest const& operator=(const MarlinDDKalTest&) = delete;
58 
61 
66  virtual void setOption(unsigned CFGOption, bool val) ;
67 
69  void init() ;
70 
72  virtual std::string name() { return "DDKalTest" ; }
73 
76 
77 
78  protected:
79 
81  void includeMultipleScattering( bool on ) ;
82 
84  void includeEnergyLoss( bool on ) ;
85 
87  void storeActiveMeasurementModuleIDs(TVKalDetector* detector);
88 
90  void getSensitiveMeasurementModules( int detElementID, std::vector< const DDVMeasLayer *>& measmodules) const;
91 
94 
95  // void init(bool MSOn, bool EnergyLossOn) ;
96  bool is_initialised=false;
97 
98  //** find the measurment layer for a given hit
99  const DDVMeasLayer* findMeasLayer( EVENT::TrackerHit * trkhit) const ;
100  //** find the measurment layer for a given det element ID and point in space
101  const DDVMeasLayer* findMeasLayer( int detElementID, const TVector3& point) const ;
102 
103  // get the last layer crossed by the helix when extrapolating from the present position to the pca to point
104  const DDVMeasLayer* getLastMeasLayer(THelicalTrack const& helix, TVector3 const& point) const ;
105 
106  const DDCylinderMeasLayer* getIPLayer() const { return _ipLayer; }
107 
108 
109  // members:
110 
111  const DDCylinderMeasLayer* _ipLayer=nullptr;
112 
113  TKalDetCradle* _det=nullptr; // the detector cradle
114 
116 
118 
120 
121 #ifdef MARLINTRK_DIAGNOSTICS_ON
122 
123  private:
124  MarlinTrk::DiagnosticsController _diagnostics;
125 
126  public:
127 
130  virtual void * getDiagnositicsPointer() { return &_diagnostics ; }
131 
132 #endif
133 
134 
135  } ;
136 
137 } // end of namespace MarlinTrk
138 
139 #endif
MarlinTrk::IMarlinTrack * createTrack()
instantiate its implementation of the IMarlinTrack
static const bool FitBackward
void storeActiveMeasurementModuleIDs(TVKalDetector *detector)
Store active measurement module IDs for a given TVKalDetector needed for navigation.
static const bool OrderIncoming
std::multimap< int, const DDVMeasLayer * > _active_measurement_modules_by_layer
virtual void setOption(unsigned CFGOption, bool val)
Sets the specified option ( one of the constants defined in IMarlinTrkSystem::CFG ) to the given valu...
const DDVMeasLayer * getLastMeasLayer(THelicalTrack const &helix, TVector3 const &point) const
std::vector< DDKalDetector * > _detectors
virtual std::string name()
the name of the implementation
void getSensitiveMeasurementModulesForLayer(int layerID, std::vector< const DDVMeasLayer * > &measmodules) const
Store active measurement module IDs needed for navigation.
void init()
initialise track fitter system
STL class.
void getSensitiveMeasurementModules(int detElementID, std::vector< const DDVMeasLayer * > &measmodules) const
Store active measurement module IDs needed for navigation.
const DDCylinderMeasLayer * _ipLayer
std::multimap< int, const DDVMeasLayer * > _active_measurement_modules
MarlinDDKalTest()
Default c&#39;tor.
Interface for generic tracks in MarlinTrk.
Definition: IMarlinTrack.h:36
MarlinDDKalTest const & operator=(const MarlinDDKalTest &)=delete
const DDVMeasLayer * findMeasLayer(EVENT::TrackerHit *trkhit) const
Interface to KaltTest Kalman fitter - instantiates and holds the detector geometry.
Base class for tracking system implementations in MarlinTrk.
void includeEnergyLoss(bool on)
take energy loss into account during the fit
const DDCylinderMeasLayer * getIPLayer() const
static const bool FitForward
static const bool OrderOutgoing
void includeMultipleScattering(bool on)
take multiple scattering into account during the fit