16#ifndef BMNSILICONTRACKFINDER_H
17#define BMNSILICONTRACKFINDER_H 1
23#include "FairMCPoint.h"
25#include "FairTrackParam.h"
83 Double_t x[4] = {-999., -999., -999., -999.};
84 Double_t y[4] = {-999., -999., -999., -999.};
85 Double_t z[4] = {-999., -999., -999., -999.};
197 TH1D *
hNpoint, *
hChiSquareNdf, *
hNtracks, *
hAxglob, *
hBxglob, *
hAyglob, *
hByglob, *
hY_st_1, *
hY_st_2, *
hY_st_3,
198 *
hdY_st_1, *
hdY_st_2, *
hdY_st_3, *
hX_st_1, *
hX_st_2, *
hX_st_3, *
hdX_st_1, *
hdX_st_2, *
hdX_st_3, *
hdXp_st_1,
#define ClassDef(name, id)
TClonesArray * fBmnSiliconHitsXArray
Double_t *** DigitsArrayX
TH1D * hXXp12CheckLeftover
vector< TH1D * > hoccupancyX2
void Case3(Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Int_t **, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, vector< tracksX > &, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***)
Double_t half_target_regionY
Double_t *** leftoverYsigsp
void GetXYspatial(Int_t **NClX, Int_t **NClXp, Double_t ***XCoor, Double_t ***XpCoor, Double_t ***Xsp, Double_t ***Xpsp, Double_t ***Ysp, Int_t **NXYsp, Double_t ***SigmX, Double_t ***SigmXp, Double_t ***SigspX, Double_t ***SigspXp, Double_t ***SigspY, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***)
void CoordinateAlignment(Int_t **, Double_t ***, Double_t ***, Double_t ***, Int_t **, Int_t **, Double_t ***, Double_t ***)
Double_t * shiftStXtoGlob
void WriteSiliconHits(Int_t **, Int_t **, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Int_t ***)
void CoordinateCalculation(Int_t **, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, vector< MC_points > &, Int_t ***)
void PrintAllTracks(vector< tracksX > &)
void CountSpatialPoints(Int_t **, Int_t *)
TString fInputBranchName2
void Clustering(Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Int_t **, Double_t ***, Double_t ***, Double_t ***, Int_t **)
const Double_t half_module
const Double_t shift_after_zigzag
virtual InitStatus Init()
void WriteSiliconTracks(vector< tracksX > &)
Double_t *** leftoverXsigsp
Bool_t SkipEvent(Int_t **, Int_t **, Double_t ***, Double_t ***)
virtual void Exec(Option_t *opt)
Double_t *** XpClust_width
Double_t GetXYspatial_station1_2(Int_t &, Int_t &, Double_t &, Double_t &)
TClonesArray * fBmnSiliconHitsArray
Double_t ** ZstnCforglfit
const Double_t half_roadX1_X3
Double_t ** SigmXforglfit
Double_t *** leftoverXpsig
vector< TH1D * > hoccupancyXp1
Double_t Shift_toCenterOfMagnetX
void Case2(Int_t &, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Int_t **, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, vector< tracksX > &, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***)
Double_t FindClusterCenter(Double_t *, Int_t, Double_t &)
void MCefficiencyCalculation(vector< MC_points > &, vector< tracksX > &)
Double_t *** leftoverXsig
BmnSiliconTrackFinder(Bool_t, Int_t, Int_t)
vector< MC_points > vec_points
const Double_t half_roadX1_Xp1
void StripsReading(Double_t ***, Double_t ***)
const Double_t half_roadX2_Xp2
const Double_t half_roadX1_Xp2
vector< TH1D * > hoccupancyX1
Double_t Shift_toCenterOfMagnetAX
TClonesArray * fBmnSiDigitsArray
Double_t Shift_toCenterOfMagnetY
void Case4(Int_t &, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Int_t **, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, vector< tracksX > &, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***)
Double_t Shift_toCenterOfMagnetAY
bool InvertMatrix(Double_t *, Double_t *)
void PrepareArraysToProcessEvent()
virtual ~BmnSiliconTrackFinder()
void RecordingTracks(vector< tracksX > &, vector< tracksX > &)
TH1D * hXXp12CheckLeftover03
TClonesArray * fBmnHitsArray
Double_t *** DigitsArrayXp
Double_t *** leftoverXpsp
const Double_t half_roadXp1_Xp2_diff_sign
vector< tracksX > vec_tracks
const Double_t half_roadY1_Y2
void RecordingTracksAfterSpatialPoints(vector< tracksX > &, vector< tracksX > &)
TClonesArray * fBmnSiliconHitsXpArray
Double_t ** SigmXpforglfit
Int_t Angle(Int_t &, Int_t &)
static bool compareSegments(const tracksX &a, const tracksX &b)
Double_t *** XspClust_width
vector< TH1D * > hoccupancyXp2
Double_t *** leftoverXpsigsp
void calculationOfChi2(Double_t **, Double_t **, Double_t **, Double_t **, Int_t *, Int_t *, Double_t &, Double_t *)
const Double_t half_roadXp1_Xp2
void CheckPoints(Int_t **, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Int_t **, vector< tracksX > &, Int_t **, Int_t **, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***)
Double_t * SensitiveAreaY
Double_t * shiftStYtoGlob
TClonesArray * fBmnHitsArray2
const Double_t half_roadX3_Xp3
Double_t *** XpspClust_width
vector< TH1D * > hoccupancyXp3
TString fOutputHitsBranchName
Output array of Silicon Hits.
TClonesArray * fBmnSiliconHitsXYArray
vector< TH1D * > hoccupancyX3
void RecordingTracks_case3(vector< tracksX > &, vector< tracksX > &)
void CheckLeftover(Int_t **, Int_t **, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, vector< tracksX > &, Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***)
Double_t *** XClust_width
Double_t half_target_regionX
const Double_t half_roadX1_X2
void GlobalFit(Double_t **, Double_t **, Double_t **, Double_t **, Double_t **, Double_t **, Double_t *)
vector< tracksX > CleanTr
Double_t ** SigmYforglfit
void Case1(Int_t **, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, vector< tracksX > &, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***, Double_t ***)
RVec< PromoteType< T > > tan(const RVec< T > &v)
RVec< PromoteType< T > > cos(const RVec< T > &v)
RVec< PromoteType< T > > sqrt(const RVec< T > &v)
RVec< PromoteType< T > > sin(const RVec< T > &v)