PandaRoot
PndTrkCTFindTrackInXY.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef PndTrkCTFindTrackInXY_H
14 #define PndTrkCTFindTrackInXY_H 1
15 
16 // Root includes
17 #include "TROOT.h"
19  Double_t *ALFA;
21  Double_t *BETA;
22  Short_t *Charge;
23  Double_t deltanr;
24  Double_t dimensionscitil;
25  Short_t *FiConformalIndex;
28  Double_t *Fi_low_limit;
29  Double_t *Fi_up_limit;
30  Double_t *GAMMA;
31  Short_t *HitsinBoxConf;
32  int icounter; // counter useful for debugging;
33  Short_t iHit; // seed hit; it is negative for SciTil Hits.
36  Double_t (*info)[7];
37  Double_t (*infoparalConformal)[5];
38  Short_t *ListHitsinTrack;
40  Short_t *ListSttParHits;
41  Short_t maxhitsinfit;
43  Short_t maxstthits;
47  Short_t *nBoxConf;
48  Short_t nFicell; // Fi cell of the seed hit;
49  Short_t nfidivconformal;
50  Short_t *nHitsinTrack;
51  Short_t nRcell; // R cell of the seed hit;
52  Short_t nrdivconformal;
53  Short_t nSciTilHits;
55  Int_t nsttparhit;
56  Double_t *Oxx;
57  Double_t *Oyy;
58  void *posizSciT;
59  Double_t posizSciTilx;
60  Double_t posizSciTily;
61  Double_t *radiaConf;
62  Short_t *RConformalIndex;
63  Double_t *Rr;
66  Double_t strawradius;
68  Double_t *trajectory_vertex;
69  bool *TypeConf;
70  Double_t *U;
71  Double_t *V;
72  bool YesSciTil;
73 };
74 
75 class PndTrkCTFindTrackInXY : public TObject {
76 
77  public:
80 
83 
84  //----------------
85 
86  bool AcceptHitsConformal(Double_t distance,
87  Double_t DriftConfR, // drift radius in conformal space
88  Double_t StrawConfR // straw radius in conformal space
89  );
90 
91  Short_t AssociateSciTilHit(Double_t dimensionscitil,
92  Double_t *esse, // output, list of S of the SciTil hits associated.
93  bool *InclusionListSciTil,
94  Short_t *List, // output, list of SciTil hits associated (max. 2);
95  Short_t maxscitilhitsintrack, Short_t nSciTilHits, Double_t Oxx, Double_t Oyy, Double_t posizSciTil[][3], Double_t Rr);
96 
97  void FindCharge(Double_t oX, Double_t oY, Short_t nHits, Double_t *X, Double_t *Y, Short_t *Charge);
98 
99  bool FindTrackInXYProjection(struct FindTrackInXYProjection_InputData *inputdata);
100 
101  Short_t FindTrackPatterninBoxConformal(Short_t *FiConformalIndex, Short_t *HitsinBoxConformal,
102  Short_t ihit, // seed hit;
103  bool *InclusionListStt, Double_t info[][7], Short_t *ListHitsinTrack, Short_t *ListSttParHits, Short_t maxstthitsintracks,
104  Short_t maxstthits, Short_t minimumhitspertrack, Short_t *nBoxConformal, Short_t nfidivconformal,
105  Short_t nFicell, // Fi cell of the seed hit;
106  Short_t NFiCELLDISTANCE, Short_t Nparal,
107  Short_t nRcell, // R cell of the seed hit;
108  // can be negative beacuse of SciTil hits;
109  Short_t NRCELLDISTANCE, Short_t *RConformalIndex, Short_t nrdivconformal);
110 
111  Short_t FindTrackPatterninBoxConformalSpecial(Short_t *FiConformalIndex, Short_t *HitsinBoxConformal, bool *InclusionListStt, Double_t info[][7], Short_t iSeed,
112  Short_t *ListHitsinTrackinWhichToSearch, Short_t *ListSttParHits, Short_t maxstthits, Short_t minimumhitspertrack,
113  Short_t *nBoxConformal, Short_t NFiCELLDISTANCE, Short_t nfidivconformal, Short_t Nparal, Short_t NparallelToSearch,
114  Short_t NRCELLDISTANCE, Short_t nrdivconformal, Short_t *OutputListHitsinTrack, Short_t *RConformalIndex
115 
116  );
117 
118  Short_t FindTrackStrictCollection(Short_t *FiConformalIndex, bool *InclusionListStt,
119  // seed track (original notation) as far as the Fi angle is concerned
120  Short_t iSeed, Short_t *ListHitsinTrackinWhichToSearch, Short_t MAXSTTHITS, Short_t NFiCELLDISTANCE, Short_t nfidivconformal,
121  // n. of hits to search in ListHitsinTrackinWhichToSearch
122  Short_t NParallelToSearch, Short_t *OutputListHitsinTrack);
123 
124  void OrderingParallel(Short_t Charge, Double_t *Fi_initial_helix_referenceframe, Double_t *Fi_final_helix_referenceframe, Double_t info[][7], Short_t *ListParallelHits,
125  Short_t nParallelHits, Double_t oX, Double_t oY, Double_t *U, Double_t *V);
126 
127  Short_t TrkAssociatedParallelHitsToHelixQuater(Short_t *auxListHitsinTrack, Double_t deltanr, Short_t *FiConformalIndex, Short_t *HitsinBoxConformal, bool *InclusionListStt,
128  Double_t info[][7], Double_t infoparalConformal[][5], Short_t *ListHitsinTrack, Double_t m, Short_t MAXSTTHITS,
129  Short_t *nBoxConformal, Short_t nfidivconformal, Short_t nHitsinTrack, Int_t NhitsParallel, Short_t nrdivconformal, Double_t Oxx,
130  Double_t Oyy, Double_t q, Double_t *radiaConf, Short_t *RConformalIndex, Double_t Rr, Double_t rstrawdetectormin, Short_t Status,
131  Double_t strawradius);
132 
133  Short_t TrkAssociatedParallelHitsToHelix5(Short_t *auxListHitsinTrack, bool *InclusionListStt, Double_t Fi_low, Double_t Fi_up, Double_t info[][7], Short_t *ListSttParHits,
134  Int_t NhitsParallel, Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t strawradius);
135 
136  ClassDef(PndTrkCTFindTrackInXY, 1);
137 };
138 
139 #endif
__m128 m
Definition: P4_F32vec4.h:38