MarlinTrk  2.2.0
MarlinDDKalTest.h
1 #ifndef MarlinDDKalTest_h
2 #define MarlinDDKalTest_h
3 
4 #include "MarlinTrk/IMarlinTrkSystem.h"
5 
6 #ifdef MARLINTRK_DIAGNOSTICS_ON
7 #include "MarlinTrk/DiagnosticsController.h"
8 #endif
9 
10 //LCIO:
11 #include "lcio.h"
12 #include "UTIL/BitField64.h"
13 #include "UTIL/LCTOOLS.h"
14 #include <LCRTRelations.h>
15 
16 #include "streamlog/streamlog.h"
17 
18 #include "TObjArray.h"
19 #include "TVector3.h"
20 
21 #include <cmath>
22 #include <vector>
23 
24 
25 class TKalDetCradle ;
26 class TVKalDetector ;
27 class DDVMeasLayer ;
28 class THelicalTrack ;
29 
30 class DDCylinderMeasLayer;
31 
32 namespace EVENT{
33  class TrackerHit ;
34 }
35 
36 namespace MarlinTrk{
37 
41 
42  public:
43 
44  friend class MarlinDDKalTestTrack;
45 
46  // define some configuration constants
47  static const bool FitBackward = kIterBackward ;
48  static const bool FitForward = kIterForward ;
49  static const bool OrderOutgoing = true ;
50  static const bool OrderIncoming = false ;
51 
53  MarlinDDKalTest() ;
54 
57 
59  void init() ;
60 
62  virtual std::string name() { return "DDKalTest" ; }
63 
66 
67 
68  protected:
69 
71  void includeMultipleScattering( bool on ) ;
72 
74  void includeEnergyLoss( bool on ) ;
75 
77  void storeActiveMeasurementModuleIDs(TVKalDetector* detector);
78 
80  void getSensitiveMeasurementModules( int detElementID, std::vector< const DDVMeasLayer *>& measmodules) const;
81 
83  void getSensitiveMeasurementModulesForLayer( int layerID, std::vector<const DDVMeasLayer *>& measmodules) const;
84 
85  // void init(bool MSOn, bool EnergyLossOn) ;
86  bool is_initialised ;
87 
88  //** find the measurment layer for a given hit
89  const DDVMeasLayer* findMeasLayer( EVENT::TrackerHit * trkhit) const ;
90  //** find the measurment layer for a given det element ID and point in space
91  const DDVMeasLayer* findMeasLayer( int detElementID, const TVector3& point) const ;
92 
93  // get the last layer crossed by the helix when extrapolating from the present position to the pca to point
94  const DDVMeasLayer* getLastMeasLayer(THelicalTrack const& helix, TVector3 const& point) const ;
95 
96  const DDCylinderMeasLayer* getIPLayer() const { return _ipLayer; }
97 
98 
99  // members:
100 
101  const DDCylinderMeasLayer* _ipLayer ;
102 
103  TKalDetCradle* _det ; // the detector cradle
104 
105  std::multimap< int,const DDVMeasLayer *> _active_measurement_modules;
106 
107  std::multimap< int,const DDVMeasLayer *> _active_measurement_modules_by_layer;
108 
109 
110 #ifdef MARLINTRK_DIAGNOSTICS_ON
111 
112  private:
113  MarlinTrk::DiagnosticsController _diagnostics;
114 
115  public:
116 
119  virtual void * getDiagnositicsPointer() { return &_diagnostics ; }
120 
121 #endif
122 
123 
124  } ;
125 
126 } // end of namespace MarlinTrk
127 
128 #endif
MarlinTrk::IMarlinTrack * createTrack()
instantiate its implementation of the IMarlinTrack
Definition: MarlinDDKalTest.cc:202
void storeActiveMeasurementModuleIDs(TVKalDetector *detector)
Store active measurement module IDs for a given TVKalDetector needed for navigation.
Definition: MarlinDDKalTest.cc:300
virtual std::string name()
the name of the implementation
Definition: MarlinDDKalTest.h:62
void getSensitiveMeasurementModulesForLayer(int layerID, std::vector< const DDVMeasLayer * > &measmodules) const
Store active measurement module IDs needed for navigation.
Definition: MarlinDDKalTest.cc:238
void init()
initialise track fitter system
Definition: MarlinDDKalTest.cc:62
void getSensitiveMeasurementModules(int detElementID, std::vector< const DDVMeasLayer * > &measmodules) const
Store active measurement module IDs needed for navigation.
Definition: MarlinDDKalTest.cc:277
MarlinDDKalTest()
Default c'tor.
Definition: MarlinDDKalTest.cc:37
Interface for generic tracks in MarlinTrk.
Definition: IMarlinTrack.h:28
~MarlinDDKalTest()
d'tor
Definition: MarlinDDKalTest.cc:52
Definition: MarlinDDKalTestTrack.h:39
Interface to KaltTest Kalman fitter - instantiates and holds the detector geometry.
Definition: MarlinDDKalTest.h:40
Base class for tracking system implementations in MarlinTrk.
Definition: IMarlinTrkSystem.h:45
void includeEnergyLoss(bool on)
take energy loss into account during the fit
Definition: MarlinDDKalTest.cc:227
void includeMultipleScattering(bool on)
take multiple scattering into account during the fit
Definition: MarlinDDKalTest.cc:216