BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnMath.h
Go to the documentation of this file.
1#ifndef BMNMATH_H_
2#define BMNMATH_H_
3
4#include "BmnHit.h"
5#include "BmnTrack.h"
6#include "FairTrackParam.h"
7#include "TF1.h"
8#include "TLorentzVector.h"
9#include "TVectorD.h"
10
11class CbmHit;
12class CbmStripHit;
13class CbmPixelHit;
14class CbmGlobalTrack;
15
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"
23
24#define DBG(a) printf(ANSI_BOLD "Trace %s: %s" ANSI_DEFAULT " (%s:%d)\n", __func__, a, __FILE__, __LINE__);
25#define DBGERR(a) \
26 fprintf(stderr, ANSI_COLOR_RED "!!! %s error in %s: %s" ANSI_DEFAULT " (%s:%d)\n", a, __func__, strerror(errno), \
27 __FILE__, __LINE__);
28
29namespace lit
30{
31
32Float_t ChiSq(const FairTrackParam* par, const BmnHit* hit);
33
34Int_t NDF(const BmnTrack* track);
35
36} // namespace lit
37
38Bool_t IsParCorrect(const FairTrackParam* par, const Bool_t isField);
39Bool_t IsParCorrect(const FairTrackParam* par);
41TVector3 LineFit(BmnTrack* track, const TClonesArray* arr, TString type);
43TVector3 LineFitBy3Hits(const BmnHit* h0, const BmnHit* h1, const BmnHit* h2);
44TVector3 CircleFit(BmnTrack* track, const TClonesArray* arr, Double_t& chi2);
45TVector3 CircleFit(vector<BmnHit*> hits, Int_t idSkip);
46TVector3 CircleBy3Hit(BmnTrack* track, const TClonesArray* arr);
47TVector3 CircleBy3Hit(const BmnHit* h0, const BmnHit* h1, const BmnHit* h2);
48TVector3 Pol2By3Hit(BmnTrack* track, const TClonesArray* arr);
49Double_t CalcTx(const BmnHit* h0, const BmnHit* h1, const BmnHit* h2);
50void DrawHits(BmnTrack* track, const TClonesArray* arr);
53
56TVector3 Pol2Fit(vector<BmnHit*>, Int_t);
57TVector2 LineFit(vector<BmnHit*>, Int_t, TString);
58
59void DrawBar(UInt_t iEv, UInt_t nEv);
60void DrawBar(Long64_t iEv, Long64_t nEv);
61
62// Some supplementary functions to calculate Tukey weights
63vector<Double_t> dist(vector<Double_t>, Double_t);
64vector<Double_t> W(vector<Double_t>, Double_t);
65Double_t Sigma(vector<Double_t>, vector<Double_t>);
66Double_t Mu(vector<Double_t>, vector<Double_t>);
67
70
71void UpdateTrackParam(FairTrackParam* initPar, const FairTrackParam* detPar, Double_t& chiSq);
72
73#endif /*BMNMATH_H_*/
vector< Double_t > dist(vector< Double_t > qp, Double_t mu)
Definition BmnMath.cxx:869
bool Bool_t
int Int_t
unsigned int UInt_t
float Float_t
double Double_t
long long Long64_t
Double_t Mu(vector< Double_t >, vector< Double_t >)
Definition BmnMath.cxx:906
TVector3 LineFit(BmnTrack *track, const TClonesArray *arr, TString type)
Definition BmnMath.cxx:113
void DrawHits(BmnTrack *track, const TClonesArray *arr)
Definition BmnMath.cxx:532
void DrawBar(UInt_t iEv, UInt_t nEv)
Definition BmnMath.cxx:940
TVector3 CircleBy3Hit(BmnTrack *track, const TClonesArray *arr)
Definition BmnMath.cxx:470
vector< Double_t > dist(vector< Double_t >, Double_t)
Definition BmnMath.cxx:869
Double_t GetVZByTwoStraightTracks(BmnTrack *tr0, BmnTrack *tr1, Double_t &dist)
Definition BmnMath.cxx:979
TVector3 CircleFit(BmnTrack *track, const TClonesArray *arr, Double_t &chi2)
Definition BmnMath.cxx:312
void Pol2Fit(BmnTrack *, const TClonesArray *, Double_t &, Double_t &, Double_t &, Int_t)
Definition BmnMath.cxx:781
Double_t CalcTx(const BmnHit *h0, const BmnHit *h1, const BmnHit *h2)
Definition BmnMath.cxx:422
void UpdateTrackParam(FairTrackParam *initPar, const FairTrackParam *detPar, Double_t &chiSq)
Definition BmnMath.cxx:1048
void fit_seg(Double_t *, Double_t *, Double_t *, Double_t *, Int_t, Int_t)
Definition BmnMath.cxx:589
Double_t Sigma(vector< Double_t >, vector< Double_t >)
Definition BmnMath.cxx:890
Float_t NewtonSolver(Float_t A0, Float_t A1, Float_t A2, Float_t A22)
Definition BmnMath.cxx:441
Bool_t IsParCorrect(const FairTrackParam *par, const Bool_t isField)
Definition BmnMath.cxx:59
vector< Double_t > W(vector< Double_t >, Double_t)
Definition BmnMath.cxx:878
TVector3 LineFitBy3Hits(const BmnHit *h0, const BmnHit *h1, const BmnHit *h2)
Definition BmnMath.cxx:209
Float_t Dist(Float_t x1, Float_t y1, Float_t x2, Float_t y2)
Definition BmnMath.cxx:432
Float_t NumericalRootFinder(TF1 f, Float_t left, Float_t right)
Definition BmnMath.cxx:96
Double_t GetVzByVectorStraightTracks(vector< BmnTrack > tr, Double_t &dist)
Definition BmnMath.cxx:999
TVector3 Pol2By3Hit(BmnTrack *track, const TClonesArray *arr)
Definition BmnMath.cxx:505
CbmGlobalTrack.h.
Abstract base class for hits used for tracking in CBM.
Definition CbmHit.h:22
Int_t NDF(const BmnTrack *track)
Definition BmnMath.cxx:47
Float_t ChiSq(const FairTrackParam *par, const BmnHit *hit)
Definition BmnMath.cxx:29