1 #ifndef BasicTrajectoryState_H
2 #define BasicTrajectoryState_H
39 BTSCount(BTSCount
const &){}
41 static unsigned int maxReferences;
42 static unsigned long long aveReferences;
43 static unsigned long long toteReferences;
45 void addReference()
const { ++referenceCount_ ; 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_;}
54 mutable unsigned int referenceCount_=0;
55 mutable unsigned int referenceMax_ =0;
86 template<
typename T,
typename...
Args>
87 static std::shared_ptr<BTSOS>
build(
Args && ...
args){
return std::make_shared<T>(std::forward<Args>(
args)...);}
89 template<
typename T,
typename...
Args>
163 template<
typename...
Args>
300 virtual std::vector<TrajectoryStateOnSurface>
components()
const =0;
GlobalPoint globalPosition() const
ConstReferenceCountingPointer< SurfaceType > theSurfaceP
virtual ~BasicTrajectoryState()
CurvilinearTrajectoryError & setCurvilinearError()
LocalPoint localPosition() const
FreeTrajectoryState const * freeTrajectoryState(bool withErrors=true) const
virtual std::vector< TrajectoryStateOnSurface > components() const =0
CartesianTrajectoryError cartesianError() const
const MagneticField * magneticField() const
SurfaceSideDefinition::SurfaceSide SurfaceSide
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
SurfaceSide theSurfaceSide
const GlobalTrajectoryParameters & parameters() const
virtual pointer clone() const =0
LocalPoint position() const
Local x and y position coordinates.
BasicTrajectoryState(const GlobalTrajectoryParameters &par, const CurvilinearTrajectoryError &err, const SurfaceType &aSurface, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
const CartesianTrajectoryError cartesianError() const
virtual void update(const LocalTrajectoryParameters &p, const SurfaceType &aSurface, const MagneticField *field, const SurfaceSide side)
BasicTrajectoryState(double iweight, Args &&...args)
TrackCharge charge() const
TrackCharge charge() const
std::shared_ptr< T > pointer
const CurvilinearTrajectoryError & curvilinearError() const
void rescaleError(double factor)
BasicTrajectoryState(const LocalTrajectoryParameters &par, const SurfaceType &aSurface, const MagneticField *field, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
GlobalVector globalDirection() const
static std::shared_ptr< BTSOS > build(Args &&...args)
void createLocalErrorFromCurvilinearError() const
const LocalTrajectoryError & localError() const
void createLocalError() const
void checkCurvilinError() const
double signedInverseMomentum() const
void createLocalParameters() const
LocalVector momentum() const
Momentum vector in the local frame.
GlobalVector momentum() const
Vector3DBase unit() const
GlobalPoint position() const
const SurfaceType & surface() const
static std::shared_ptr< BTSOS > churn(Args &&...args)
const GlobalTrajectoryParameters & globalParameters() const
double transverseCurvature() const
FreeTrajectoryState theFreeState
CurvilinearTrajectoryError & setCurvilinearError()
double transverseCurvature() const
BasicTrajectoryState(const GlobalTrajectoryParameters &par, const SurfaceType &aSurface, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
void missingError(char const *where) const
bool theLocalParametersValid
GlobalVector globalMomentum() const
const LocalTrajectoryParameters & localParameters() const
LocalTrajectoryParameters theLocalParameters
virtual bool canUpdateLocalParameters() const
LocalVector localDirection() const
const MagneticField & magneticField() const
LocalVector localMomentum() const
const CurvilinearTrajectoryError & curvilinearError() const
volatile std::atomic< bool > shutdown_flag false
LocalTrajectoryError theLocalError
ProxyBase11< BTSOS > Proxy
double signedInverseMomentum() const
BasicTrajectoryState BTSOS