1 #ifndef CombinedKinematicConstraintT_H
2 #define CombinedKinematicConstraintT_H
16 template<
class TupleType,
size_t N>
26 static void call(TupleType
const &
t,
F f)
35 template<
class TupleType>
42 static void call(TupleType
const &,
F)
46 template<
class TupleType,
typename F>
52 template<
class TupleType,
typename F>
59 namespace combinedConstraintHelpers {
64 typedef typename std::tuple_element<
N-1,TupleType>
::type Elem;
68 template<
class TupleType>
89 ROOT::Math::SVector<double, DIM> &
ret;
97 template<
int DIM,
int NTRK>
100 ROOT::Math::SMatrix<double, DIM, 7*NTRK> &
ret;
104 ret.Place_at(cs.parametersDerivative(),this->
offset,0);
111 ROOT::Math::SMatrix<double, DIM, 3> &
ret;
115 ret.Place_at(cs.positionDerivative(),this->
offset,0);
135 template<
class TupleType,
int NTRK >
157 virtual void init(
const std::vector<KinematicState>& states,
160 std::bind(&
base::init,std::placeholders::_1,std::ref(states),std::ref(point), std::ref(mf)));
ROOT::Math::SMatrix< double, DIM, 3 > positionDerivativeType
super::positionDerivativeType positionDerivativeType
auto_ptr< ClusterSequence > cs
ROOT::Math::SMatrix< double, DIM, 7 *NTRK > & ret
void operator()(C const &cs)
std::tuple_element< N-1, TupleType >::type Elem
ROOT::Math::SMatrix< double, DIM, 7 *NTRK > parametersDerivativeType
super::valueType valueType
static void call(TupleType &, F)
virtual void init(const std::vector< KinematicState > &states, const GlobalPoint &point, const GlobalVector &mf)
virtual int numberOfEquations() const
MultiTrackKinematicConstraintBaseT base
void fillPositionDerivative() const
virtual int numberOfEquations() const =0
virtual CombinedKinematicConstraintT * clone() const
PlaceValue(ROOT::Math::SVector< double, DIM > &iret)
void iterate_tuple(TupleType &t, F f)
positionDerivativeType & jac_e() const
CombinedKinematicConstraintT(Constraints const &iconstraints)
ROOT::Math::SMatrix< double, DIM, 3 > & ret
parametersDerivativeType & jac_d() const
static void call(TupleType &t, F f)
ROOT::Math::SVector< double, DIM > valueType
PlaceParDer(ROOT::Math::SMatrix< double, DIM, 7 *NTRK > &iret)
static void call(TupleType const &t, F f)
MultiTrackKinematicConstraintT< NTRK, combinedConstraintHelpers::totDim< TupleType >::nDim > super
void operator()(C const &cs)
PlacePosDer(ROOT::Math::SMatrix< double, DIM, 3 > &iret)
void operator()(C const &cs)
ROOT::Math::SVector< double, DIM > & ret
super::parametersDerivativeType parametersDerivativeType
void fillParametersDerivative() const
virtual void init(const std::vector< KinematicState > &states, const GlobalPoint &point, const GlobalVector &mf)=0
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
static void call(TupleType const &, F)