10#include <tracking/trackingUtilities/eventdata/hits/CDCWireHit.h>
12#include <tracking/trackingUtilities/utilities/VectorRange.h>
14#include <tracking/trackingUtilities/geometry/Vector3D.h>
23 namespace TrackingUtilities {
31 namespace TrackFindingCDC {
60 TrackingUtilities::ERightLeft rlInfo) :
72 TrackingUtilities::ERightLeft rlInfo,
74 double arcLength2D = NAN,
75 double trueDriftLength = NAN) :
105 TrackingUtilities::ConstVectorRange<TrackingUtilities::CDCWireHit>
getWireHits()
const;
114 std::vector<TrackingUtilities::CDCTrack>
simulate(
const std::vector<TrackingUtilities::CDCTrajectory3D>& trajectories3D);
124 std::vector<TrackingUtilities::CDCTrack>
constructMCTracks(
int nMCTracks, std::vector<SimpleSimHit> simpleSimHits);
132 double arcLength2DOffset)
const;
137 double arcLength2DOffset)
const;
Class representing a sense wire in the central drift chamber.
Class providing a simple simulation of the CDC mainly for quick unit test checks.
void activateTOFDelay(bool activate=true)
Activate the TOF time delay.
TrackingUtilities::ConstVectorRange< TrackingUtilities::CDCWireHit > getWireHits() const
Getter for the wire hits created in the simulation.
void setMaxNHitOnWire(int maxNHitOnWire)
Setter for the maximal number of hits that are allowed on each layer.
std::shared_ptr< const std::vector< TrackingUtilities::CDCWireHit > > m_sharedWireHits
Space for the memory of the generated wire hits.
std::vector< TrackingUtilities::CDCTrack > constructMCTracks(int nMCTracks, std::vector< SimpleSimHit > simpleSimHits)
Creates TrackingUtilities::CDCWireHits and uses them to construct the true TrackingUtilities::CDCTrac...
int getMaxNHitOnWire() const
Getter for the maximal number of hits that are allowed on each layer.
bool m_addInWireSignalDelay
Switch to activate the in wire signal delay.
double m_propSpeed
Electrical current propagation speed in the wires.
std::vector< SimpleSimHit > createHits(const TrackingUtilities::Helix &globalHelix, double arcLength2DOffset) const
Generate hits for the given helix in starting from the two dimensional arc length.
std::vector< TrackingUtilities::CDCTrack > simulate(const std::vector< TrackingUtilities::CDCTrajectory3D > &trajectories3D)
Propagates the trajectories through the CDC as without energy loss until they first leave the CDC.
void setEventTime(double eventTime)
Setter for a global event time offset.
double getEventTime() const
Getter for a global event time offset.
double m_driftLengthVariance
Variance by which the drift length should be smeared.
const double s_nominalPropSpeed
Default in wire signal propagation speed - 27.25 cm / ns.
void activateInWireSignalDelay(bool activate=true)
Activate the in wire signal delay.
double m_eventTime
A global event time.
bool m_addTOFDelay
Switch to activate the addition of the time of flight.
int m_maxNHitOnWire
Maximal number of hits allowed on each wire (0 means all).
const double s_nominalDriftLengthVariance
Default drift length variance.
double m_driftLengthSigma
Standard deviation by which the drift length should be smeared.
std::vector< TrackingUtilities::CDCTrack > loadPreparedEvent()
Fills the wire hits with a hard coded event from the real simulation.
SimpleSimHit createHitForCell(const CDC::CDCWire &wire, const TrackingUtilities::Helix &globalHelix, double arcLength2DOffset) const
Generate a hit for the given wire.
std::vector< SimpleSimHit > createHitsForLayer(const CDC::CDCWire &nearWire, const TrackingUtilities::Helix &globalHelix, double arcLength2DOffset) const
Generate connected hits for wires in the same layer close to the given wire.
double m_driftSpeed
Electron drift speed in the cdc gas.
const double s_nominalDriftSpeed
Default electron drift speed in cdc gas - 4 * 10^-3 cm / ns.
Class representing a sequence of three dimensional reconstructed hits.
Particle full three dimensional trajectory.
Class representing a hit wire in the central drift chamber.
Extension of the generalized circle also caching the perigee coordinates.
A three dimensional vector.
Abstract base class for different kinds of events.
Structure to accommodate information about the individual hits during the simulation.
SimpleSimHit(const TrackingUtilities::CDCWireHit &wireHit, size_t iMCTrack, TrackingUtilities::ERightLeft rlInfo, const TrackingUtilities::Vector3D &pos3D, double arcLength2D=NAN, double trueDriftLength=NAN)
Constructor from complete truth information.
double m_arcLength2D
Memory for the true two dimensional arc length on the helix to this hit.
SimpleSimHit(const TrackingUtilities::CDCWireHit &wireHit, size_t iMCTrack, TrackingUtilities::ERightLeft rlInfo)
Constructor from limited truth information Mainly used by the manually prepared event.
double m_trueDriftLength
Memory for the true drift length from the true position to the wire.
TrackingUtilities::ERightLeft m_rlInfo
Memory for the true right left passage information.
size_t m_iMCTrack
Memory for the true index of the track this hit is contained in.
TrackingUtilities::CDCWireHit m_wireHit
Memory for the wire hit instance that will be given to the reconstruction.
TrackingUtilities::Vector3D m_pos3D
Memory for the true position on the track closest to the wire.