10#include <tracking/trackingUtilities/eventdata/hits/CDCWireHit.h>
12#include <tracking/trackingUtilities/utilities/VectorRange.h>
14#include <Math/Vector3D.h>
24 namespace TrackingUtilities {
32 namespace TrackFindingCDC {
61 TrackingUtilities::ERightLeft rlInfo) :
73 TrackingUtilities::ERightLeft rlInfo,
74 const ROOT::Math::XYZVector& pos3D,
75 double arcLength2D = NAN,
76 double trueDriftLength = NAN) :
106 TrackingUtilities::ConstVectorRange<TrackingUtilities::CDCWireHit>
getWireHits()
const;
115 std::vector<TrackingUtilities::CDCTrack>
simulate(
const std::vector<TrackingUtilities::CDCTrajectory3D>& trajectories3D);
125 std::vector<TrackingUtilities::CDCTrack>
constructMCTracks(
int nMCTracks, std::vector<SimpleSimHit> simpleSimHits);
133 double arcLength2DOffset)
const;
138 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.
Abstract base class for different kinds of events.
Structure to accommodate information about the individual hits during the simulation.
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.
ROOT::Math::XYZVector m_pos3D
Memory for the true position on the track closest to the wire.
TrackingUtilities::CDCWireHit m_wireHit
Memory for the wire hit instance that will be given to the reconstruction.
SimpleSimHit(const TrackingUtilities::CDCWireHit &wireHit, size_t iMCTrack, TrackingUtilities::ERightLeft rlInfo, const ROOT::Math::XYZVector &pos3D, double arcLength2D=NAN, double trueDriftLength=NAN)
Constructor from complete truth information.