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>
64 typedef typename std::tuple_element<
N-1,TupleType>
::type Elem;
65 enum { nDim = Elem::nDim +
totDim<TupleType,N-1>::nDim};
68 template<
class TupleType>
82 assert(offset==
DIM || offset==0);
88 PlaceValue(ROOT::Math::SVector<double, DIM> & iret) : ret(iret){}
89 ROOT::Math::SVector<double, DIM> &
ret;
93 ret.Place_at(cs.value(),this->
offset);
97 template<
int DIM,
int NTRK>
99 PlaceParDer(ROOT::Math::SMatrix<double, DIM, 7*NTRK> & iret) : ret(iret){}
100 ROOT::Math::SMatrix<double, DIM, 7*NTRK> &
ret;
104 ret.Place_at(cs.parametersDerivative(),this->
offset,0);
110 PlacePosDer(ROOT::Math::SMatrix<double, DIM, 3> & iret) : ret(iret){}
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)));
202 std::bind(&base::numberOfEquations,std::placeholders::_1)
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 CombinedKinematicConstraintT * clone() const
PlaceValue(ROOT::Math::SVector< double, DIM > &iret)
void iterate_tuple(TupleType &t, F f)
CombinedKinematicConstraintT(Constraints const &iconstraints)
ROOT::Math::SMatrix< double, DIM, 3 > & ret
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
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)