SdHorizontalReconstruction.h
Go to the documentation of this file.
1 
14 #ifndef _SdHorizontalReconstructionNS_SdHorizontalReconstruction_h_
15 #define _SdHorizontalReconstructionNS_SdHorizontalReconstruction_h_
16 
17 #include "FitInterface.h"
18 
19 #include <fwk/VModule.h>
20 
21 #include <evt/Event.h>
22 
23 #include <utl/TimeStamp.h>
24 #include <utl/CoordinateSystemPtr.h>
25 
26 #include <boost/shared_ptr.hpp>
27 
28 #include <vector>
29 
30 namespace sdet {
31  class SDetector;
32  class Station;
33 }
34 
35 namespace evt {
36  class Event;
37 }
38 
39 namespace sevt {
40  class SEvent;
41  class Station;
42 }
43 
44 namespace tls {
45  class MuonProfile;
46  class VTankResponse;
47  class EMComponent;
48 }
49 
50 namespace utl {
51  class Point;
52 }
53 
54 namespace SdHorizontalReconstructionNS{
55 
58  eMC,
61  };
62 
64  {
67  };
68 
70  eFixCurvature = 1 << 0,
71  eFixDirection = 1 << 1
72  };
73 
75  eFixAxis = 1 << 0,
76  eFixCore = 1 << 1,
77  eApproximate = 1 << 2
78  };
79 
81  public:
82 
85 
89 
90  // config
95  double fMinTheta;
96  double fMaxTheta;
99  double fMaxTimeSigma;
103  boost::shared_ptr<tls::MuonProfile> fMuonProfile;
105  boost::shared_ptr<tls::EMComponent> fEMComponent;
106  std::vector<double> fN19Correction;
108  double fGamma;
112  std::vector<double> fCurvModelPars;
113 
114  // local reference system
119 
120  bool
121  UpdateBarycenter(std::size_t& nCandidates,
122  const sevt::SEvent& sevent);
123 
124  bool
126  const evt::Event& event);
127 
128  bool
129  CleanEvent(std::size_t& nCandidates,
130  sevt::SEvent& sEvent,
131  const AxisData& axisData,
132  const SizeData& sizeData) const;
133 
134  void
136  SilentStationList& slist,
137  const utl::Point& core,
138  const utl::Point& origin,
139  const sevt::SEvent& sEvent) const;
140 
141  bool
142  FitShowerFront(const utl::Point& core,
143  AxisData& ad,
144  const ExternalGeometryData& gd,
145  const StationList& list,
146  const int option = 0) const;
147 
148  bool
150  const AxisData& ad,
151  const ExternalGeometryData& gd,
152  const StationList& list,
153  const SilentStationList& slist,
154  const int option = 0) const;
155 
156  void
158  const SizeData& sd,
159  const AxisData& ad,
160  const StationList& list,
161  const SilentStationList& slist,
162  const ExternalGeometryData& extGeom) const;
163 
164  // Utilities
165  void
167  utl::Point& origin,
168  const double coreX,
169  const double coreY,
170  const double theta,
171  const double phi,
172  const double distance) const;
173 
174  // convenience...
175  void
177  utl::Point& origin,
178  const SizeData& sd,
179  const AxisData& ad) const;
180 
181  void
182  LocalCoordinates(double& xProjected, double& yProjected,
183  double& rho, double& theta,
184  const utl::Point& pos,
185  const utl::Point& origin,
186  const utl::Point& core) const;
187 
188  double
189  ExpectedCurvatureRadius(const double theta) const;
190 
191  REGISTER_MODULE("SdHorizontalReconstruction", SdHorizontalReconstruction);
192  };
193 
194 } // SdHorizontalReconstruction2 namespace
195 
196 #endif
197 
198 // Configure (x)emacs for this file ...
199 // Local Variables:
200 // mode:c++
201 // compile-command: "make -k"
202 // End:
Facade for any instance of EMComponent.
Definition: EMComponent.h:43
bool FitShowerSize(SizeData &sd, const AxisData &ad, const ExternalGeometryData &gd, const StationList &list, const SilentStationList &slist, const int option=0) const
Point object.
Definition: Point.h:32
bool UpdateBarycenter(std::size_t &nCandidates, const sevt::SEvent &sevent)
void PrepareStationData(StationList &list, SilentStationList &slist, const utl::Point &core, const utl::Point &origin, const sevt::SEvent &sEvent) const
Class to handle average muon profiles.
Definition: MuonProfile.h:38
Interface class to access to the SD part of an event.
Definition: SEvent.h:39
fwk::VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
REGISTER_MODULE("SdHorizontalReconstruction", SdHorizontalReconstruction)
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
void LocalCoordinates(double &xProjected, double &yProjected, double &rho, double &theta, const utl::Point &pos, const utl::Point &origin, const utl::Point &core) const
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
Interface class for coupling different tank response calculations into the reconstruction code...
Definition: VTankResponse.h:26
void GetShowerAxis(utl::Point &core, utl::Point &origin, const double coreX, const double coreY, const double theta, const double phi, const double distance) const
std::vector< StationData > StationList
Definition: FitInterface.h:80
Module interface.
Definition: VModule.h:53
bool FitShowerFront(const utl::Point &core, AxisData &ad, const ExternalGeometryData &gd, const StationList &list, const int option=0) const
bool GetExternalGeometry(ExternalGeometryData &gd, const evt::Event &event)
void SetReconstructedValues(evt::Event &event, const SizeData &sd, const AxisData &ad, const StationList &list, const SilentStationList &slist, const ExternalGeometryData &extGeom) const
ResultFlag
Flag returned by module methods to the RunController.
Definition: VModule.h:60
std::vector< SilentStationData > SilentStationList
Definition: FitInterface.h:79
fwk::VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
Definition: XbArray.h:7
bool CleanEvent(std::size_t &nCandidates, sevt::SEvent &sEvent, const AxisData &axisData, const SizeData &sizeData) const
fwk::VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)

, generated on Tue Sep 26 2023.