1 #ifndef BasicTrajectoryState_H 2 #define BasicTrajectoryState_H 36 BTSCount(BTSCount
const&) {}
38 static unsigned int maxReferences;
39 static unsigned long long aveReferences;
40 static unsigned long long toteReferences;
42 void addReference()
const {
44 referenceMax_ =
std::max(referenceMax_, referenceCount_);
46 void removeReference()
const {
47 if (0 == --referenceCount_) {
48 delete const_cast<BTSCount*
>(
this);
52 unsigned int references()
const {
return referenceCount_; }
55 mutable unsigned int referenceCount_ = 0;
56 mutable unsigned int referenceMax_ = 0;
85 template <
typename T,
typename... Args>
86 static std::shared_ptr<BTSOS>
build(Args&&...
args) {
87 return std::make_shared<T>(std::forward<Args>(
args)...);
90 template <
typename T,
typename... Args>
91 static std::shared_ptr<BTSOS>
churn(Args&&...
args) {
181 template <
typename... Args>
ConstReferenceCountingPointer< SurfaceType > theSurfaceP
virtual ~BasicTrajectoryState()
CurvilinearTrajectoryError & setCurvilinearError()
virtual bool singleState() const =0
CartesianTrajectoryError cartesianError() const
const CurvilinearTrajectoryError & curvilinearError() const
SurfaceSideDefinition::SurfaceSide SurfaceSide
SurfaceSide theSurfaceSide
FreeTrajectoryState const * freeTrajectoryState(bool withErrors=true) const
GlobalVector globalMomentum() const
virtual pointer clone() const =0
void createLocalParameters() const
const GlobalTrajectoryParameters & globalParameters() const
BasicTrajectoryState(const GlobalTrajectoryParameters &par, const CurvilinearTrajectoryError &err, const SurfaceType &aSurface, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
virtual void update(const LocalTrajectoryParameters &p, const SurfaceType &aSurface, const MagneticField *field, const SurfaceSide side)
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
static std::shared_ptr< BTSOS > build(Args &&... args)
std::shared_ptr< T > pointer
BasicTrajectoryState(double iweight, Args &&... args)
GlobalVector globalDirection() const
const GlobalTrajectoryParameters & parameters() const
virtual Components const & components() const =0
void rescaleError(double factor)
TrackCharge charge() const
GlobalPoint position() const
BasicTrajectoryState(const LocalTrajectoryParameters &par, const SurfaceType &aSurface, const MagneticField *field, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
std::vector< TrajectoryStateOnSurface > Components
static std::shared_ptr< BTSOS > churn(Args &&... args)
TrackCharge charge() const
LocalVector momentum() const
Momentum vector in the local frame.
BasicTrajectoryState(const FreeTrajectoryState &fts, const SurfaceType &aSurface, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
const SurfaceType & surface() const
GlobalVector momentum() const
double signedInverseMomentum() const
double signedInverseMomentum() const
virtual bool canUpdateLocalParameters() const
const LocalTrajectoryError & localError() const
void missingError(char const *where) const
double transverseCurvature() const
void createLocalError() const
GlobalPoint globalPosition() const
FreeTrajectoryState theFreeState
const MagneticField & magneticField() const
CurvilinearTrajectoryError & setCurvilinearError()
BasicTrajectoryState(const GlobalTrajectoryParameters &par, const SurfaceType &aSurface, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
bool theLocalParametersValid
BasicTrajectoryState(const GlobalTrajectoryParameters &par, const CartesianTrajectoryError &err, const SurfaceType &aSurface, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
const LocalTrajectoryParameters & localParameters() const
LocalVector localDirection() const
double transverseCurvature() const
LocalTrajectoryParameters theLocalParameters
void createLocalErrorFromCurvilinearError() const
const CartesianTrajectoryError cartesianError() const
Vector3DBase unit() const
BasicTrajectoryState(const FreeTrajectoryState &fts)
LocalTrajectoryError theLocalError
ProxyBase11< BTSOS > Proxy
LocalPoint position() const
Local x and y position coordinates.
LocalVector localMomentum() const
void checkCurvilinError() const
LocalPoint localPosition() const
const CurvilinearTrajectoryError & curvilinearError() const
const MagneticField * magneticField() const
BasicTrajectoryState BTSOS