4 #ifndef TrackMomentumCalculator_H
5 #define TrackMomentumCalculator_H
7 #include "canvas/Persistency/Common/Ptr.h"
13 #include "TGraphErrors.h"
16 #include "TMatrixDSym.h"
17 #include "TMatrixDSymEigen.h"
18 #include "TPolyLine3D.h"
22 #include "Math/Factory.h"
23 #include "Math/Minimizer.h"
24 #include "Minuit2/FCNBase.h"
25 #include "Minuit2/FunctionMinimum.h"
26 #include "Minuit2/Minuit2Minimizer.h"
27 #include "Minuit2/MnMigrad.h"
28 #include "Minuit2/MnPrint.h"
29 #include "Minuit2/MnUserParameterState.h"
30 #include "Minuit2/MnUserParameters.h"
40 class TrackMomentumCalculator {
53 std::vector<float>
const& yyy,
54 std::vector<float>
const& zzz);
57 std::vector<float>
x,
nx;
58 std::vector<float>
y,
ny;
59 std::vector<float>
z,
nz;
63 std::optional<Segments>
getSegTracks_(std::vector<float>
const& xxx,
64 std::vector<float>
const& yyy,
65 std::vector<float>
const& zzz,
72 std::vector<float>& ej,
73 std::vector<float>& th,
74 std::vector<float>& ind,
75 Segments
const& segments,
78 double my_g(
double xx,
double Q,
double s)
const;
81 std::vector<float>
const& dEj,
82 std::vector<float>
const& dthij,
83 std::vector<float>
const& ind,
84 double x0,
double x1)
const;
97 std::vector<float>
steps;
126 #endif // TrackMomentumCalculator_H
double GetMomentumMultiScatterChi2(art::Ptr< recob::Track > const &trk, const bool checkValidPoints=false)
double my_g(double xx, double Q, double s) const
int getDeltaThetaij_(std::vector< float > &ei, std::vector< float > &ej, std::vector< float > &th, std::vector< float > &ind, Segments const &segments, double thick) const
std::optional< Segments > getSegTracks_(std::vector< float > const &xxx, std::vector< float > const &yyy, std::vector< float > const &zzz, double seg_size)
double find_angle(double vz, double vy) const
TPolyLine3D * gr_reco_xyz
std::tuple< double, double, double > getDeltaThetaRMS_(Segments const &segments, double thick) const
Provides recob::Track data product.
double GetMuMultiScatterLLHD3(art::Ptr< recob::Track > const &trk, bool dir)
std::vector< float > steps
TrackMomentumCalculator(double minLength=100.0, double maxLength=1350.0)
double my_mcs_llhd(std::vector< float > const &dEi, std::vector< float > const &dEj, std::vector< float > const &dthij, std::vector< float > const &ind, double x0, double x1) const
then echo File list $list not found else cat $list while read file do echo $file sed s
TVector3 GetMultiScatterStartingPoint(art::Ptr< recob::Track > const &trk)
double GetMomentumMultiScatterLLHD(art::Ptr< recob::Track > const &trk)
double GetTrackMomentum(double trkrange, int pdg) const
bool plotRecoTracks_(std::vector< float > const &xxx, std::vector< float > const &yyy, std::vector< float > const &zzz)