4 #ifndef TrackMomentumCalculator_H 5 #define TrackMomentumCalculator_H 12 #include "TGraphErrors.h" 14 #include "TPolyLine3D.h" 23 #include "Minuit2/MnUserParameterState.h" 24 #include "Minuit2/Minuit2Minimizer.h" 25 #include "Minuit2/FunctionMinimum.h" 26 #include "Minuit2/MnMigrad.h" 27 #include "Minuit2/MnUserParameters.h" 28 #include "Minuit2/MnPrint.h" 29 #include "Minuit2/FCNBase.h" 30 #include "Math/Minimizer.h" 31 #include "Math/Factory.h" 33 #include "TMatrixDSym.h" 34 #include "TMatrixDSymEigen.h" 57 Double_t
x[50000]; Double_t
y[50000]; Double_t
z[50000];
61 Float_t x_reco[50000]; Float_t y_reco[50000]; Float_t z_reco[50000];
63 Float_t seg_size; Float_t
seg_stop; Int_t n_seg;
65 Float_t x_seg[50000]; Float_t y_seg[50000]; Float_t z_seg[50000];
67 TVector3 basex; TVector3 basey; TVector3
basez;
69 std::vector<Float_t> segx; std::vector<Float_t> segy; std::vector<Float_t>
segz;
71 std::vector<Float_t> segnx; std::vector<Float_t> segny; std::vector<Float_t>
segnz;
75 std::vector<Float_t> azx0; std::vector<Float_t>
azy0;
77 Double_t find_angle( Double_t vz, Double_t vy );
79 Float_t
steps_size; Int_t n_steps; std::vector<Float_t> steps;
85 std::vector<Float_t> dthij; std::vector<Float_t> dEi; std::vector<Float_t> dEj; std::vector<Float_t>
ind;
99 double GetTrackMomentum(
double trkrange,
int pdg);
101 TPolyLine3D *gr_xyz=0; TGraph *gr_xy=0; TGraph *gr_yz=0; TGraph *gr_xz=0;
103 Int_t GetTracks(
const std::vector<Float_t> &xxx,
const std::vector<Float_t> &yyy,
const std::vector<Float_t> &zzz );
105 TPolyLine3D *gr_reco_xyz; TGraph *gr_reco_xy; TGraph *
gr_reco_yz; TGraph *gr_reco_xz;
107 Int_t GetRecoTracks(
const std::vector<Float_t> &xxx,
const std::vector<Float_t> &yyy,
const std::vector<Float_t> &zzz );
109 TPolyLine3D *gr_seg_xyz; TGraph *gr_seg_xy; TGraph *
gr_seg_yz; TGraph *gr_seg_xz;
111 Int_t GetSegTracks(
const std::vector<Float_t> &xxx,
const std::vector<Float_t> &yyy,
const std::vector<Float_t> &zzz );
113 Int_t GetSegTracks2(
const std::vector<Float_t> &xxx,
const std::vector<Float_t> &yyy,
const std::vector<Float_t> &zzz );
115 void GetDeltaThetaRMS( Double_t &
mean, Double_t &rms, Double_t &rmse, Double_t thick );
117 TGraphErrors *gr_meas = 0;
125 Double_t p_mcs; Double_t
p_mcs_e; Double_t chi2;
127 Int_t GetDeltaThetaij( std::vector<Float_t> &ei, std::vector<Float_t> &ej, std::vector<Float_t> &th, Double_t thick, std::vector<Float_t> &ind );
129 Double_t my_g( Double_t
xx, Double_t Q, Double_t
s );
131 Double_t my_mcs_llhd( Double_t x0, Double_t
x1 );
154 #endif // TrackMomentumCalculator_H
void SetMaxLength(double maxLen)
Float_t x1[n_points_granero]
std::vector< Float_t > segnz
std::vector< Float_t > segz
std::vector< Float_t > segL
std::vector< Float_t > ind
Provides recob::Track data product.
void SetMinLength(double minLen)
std::vector< Float_t > azy0
double mean(const std::vector< short > &wf, size_t start, size_t nsample)