4#include "FairTrackParam.h"
7#include "TLorentzVector.h"
16#define ANSI_COLOR_RED "\x1b[91m"
17#define ANSI_COLOR_BLUE "\x1b[94m"
18#define ANSI_COLOR_RESET "\x1b[0m"
19#define ANSI_COLOR_YELLOW_BG "\x1b[33;7m"
20#define ANSI_COLOR_BLUE_BG "\x1b[94;7m"
21#define ANSI_BOLD "\e[1m"
22#define ANSI_DEFAULT "\e[0m"
24#define DBG(a) printf(ANSI_BOLD "Trace %s: %s" ANSI_DEFAULT " (%s:%d)\n", __func__, a, __FILE__, __LINE__);
25#define DBGERR(a) fprintf(stderr, ANSI_COLOR_RED "!!! %s error in %s: %s" ANSI_DEFAULT " (%s:%d)\n", a, __func__, strerror(errno), __FILE__, __LINE__);
31Float_t
ChiSq(
const FairTrackParam* par,
const BmnHit* hit);
37Bool_t
IsParCorrect(
const FairTrackParam* par,
const Bool_t isField);
40TVector3
LineFit(
BmnTrack* track,
const TClonesArray* arr, TString type);
41void LineFit(Double_t&, Double_t&,
BmnTrack*, TClonesArray*, Int_t, Int_t);
44TVector3
CircleFit(vector<BmnHit*> hits, Int_t idSkip);
50Float_t
NewtonSolver(Float_t A0, Float_t A1, Float_t A2, Float_t A22);
51Float_t
Dist(Float_t x1, Float_t y1, Float_t x2, Float_t y2);
53void fit_seg(Double_t*, Double_t*, Double_t*, Double_t*, Int_t, Int_t);
54void Pol2Fit(
BmnTrack*,
const TClonesArray*, Double_t&, Double_t&, Double_t&, Int_t);
55TVector3
Pol2Fit(vector <BmnHit*>, Int_t);
56TVector2
LineFit(vector<BmnHit*>, Int_t, TString);
58void DrawBar(UInt_t iEv, UInt_t nEv);
59void DrawBar(Long64_t iEv, Long64_t nEv);
62vector <Double_t>
dist(vector <Double_t>, Double_t);
63vector <Double_t>
W(vector <Double_t>, Double_t);
64Double_t
Sigma(vector <Double_t>, vector <Double_t>);
65Double_t
Mu(vector <Double_t>, vector <Double_t>);
70void UpdateTrackParam(FairTrackParam* initPar,
const FairTrackParam* detPar, Double_t& chiSq);
Double_t Mu(vector< Double_t >, vector< Double_t >)
TVector3 LineFit(BmnTrack *track, const TClonesArray *arr, TString type)
void DrawHits(BmnTrack *track, const TClonesArray *arr)
void DrawBar(UInt_t iEv, UInt_t nEv)
TVector3 CircleBy3Hit(BmnTrack *track, const TClonesArray *arr)
vector< Double_t > dist(vector< Double_t >, Double_t)
Double_t GetVZByTwoStraightTracks(BmnTrack *tr0, BmnTrack *tr1, Double_t &dist)
TVector3 CircleFit(BmnTrack *track, const TClonesArray *arr, Double_t &chi2)
void Pol2Fit(BmnTrack *, const TClonesArray *, Double_t &, Double_t &, Double_t &, Int_t)
Double_t CalcTx(const BmnHit *h0, const BmnHit *h1, const BmnHit *h2)
void UpdateTrackParam(FairTrackParam *initPar, const FairTrackParam *detPar, Double_t &chiSq)
void fit_seg(Double_t *, Double_t *, Double_t *, Double_t *, Int_t, Int_t)
Double_t Sigma(vector< Double_t >, vector< Double_t >)
Float_t NewtonSolver(Float_t A0, Float_t A1, Float_t A2, Float_t A22)
Bool_t IsParCorrect(const FairTrackParam *par, const Bool_t isField)
vector< Double_t > W(vector< Double_t >, Double_t)
TVector3 LineFitBy3Hits(const BmnHit *h0, const BmnHit *h1, const BmnHit *h2)
Float_t Dist(Float_t x1, Float_t y1, Float_t x2, Float_t y2)
Float_t NumericalRootFinder(TF1 f, Float_t left, Float_t right)
Double_t GetVzByVectorStraightTracks(vector< BmnTrack > tr, Double_t &dist)
TVector3 Pol2By3Hit(BmnTrack *track, const TClonesArray *arr)
Int_t NDF(const BmnTrack *track)
Float_t ChiSq(const FairTrackParam *par, const BmnHit *hit)