FairRoot/PandaRoot
PndSttCellTrackFinderData.h
Go to the documentation of this file.
1 /*
2  * PndSttCellTrackFinderData.h
3  *
4  * Created on: May 8, 2014
5  * Author: schumann
6  */
7 
8 #ifndef PNDSTTCELLTRACKFINDERDATA_H_
9 #define PNDSTTCELLTRACKFINDERDATA_H_
10 
11 #include <vector>
12 #include <map>
13 
14 #include "TVector3.h"
15 #include "PndSttGeometryMap.h"
16 #include "PndSttStrawMap.h"
17 #include "FairHit.h"
18 
19 class TClonesArray;
20 class PndSttSkewedHit;
21 
23 
24 public:
25 
26  PndSttCellTrackFinderData(TClonesArray* fTubeArray);
27 
29  delete fStrawMap;
30  delete fGeometryMap;
31  for (size_t i = 0; i < fHits.size(); ++i)
32  delete fHits.at(i);
33  for (size_t i = 0; i < fHitsOrig.size(); ++i)
34  delete fHitsOrig.at(i);
35 
36  }
37 // only support STTHits , uses brachNAme to distinguish between normal and skewed straws
38 
39  void AddHits(TClonesArray* hits, TString branchName);
40 
42 
43  void clear() {
44  fHits.clear();
45  fHitsOrig.clear();
46  fMapHitToFairLink.clear();
47  fMapTubeIdToHit.clear();
48  fHitNeighbors.clear();
49  fSeparations.clear();
50  fCombinedSkewedHits.clear();
55  }
56 
57  void PrintInfo();
58 
60  fAllowDoubleHits=value;
61  }
62 
64  return fAllowDoubleHits;
65  }
66 
67  std::vector<FairHit*> GetHits() const {
68  return fHits;
69  }
70 
71  std::multimap<int, PndSttSkewedHit*> GetCombinedSkewedHits() const {
72  return fCombinedSkewedHits;
73  }
74 
76  return fStrawMap;
77  }
78 
80  return fGeometryMap;
81  }
82 
83  std::map<int,FairLink> GetMapHitToFairLink() const{
84  return fMapHitToFairLink;
85  }
86 
87  std::map<int, int> GetMapTubeIdToHit() const {
88  return fMapTubeIdToHit;
89  }
90 
91  std::map<int, TVector3> GetMapTubeIdToPos() const {
92  return fMapTubeIdToPos;
93  }
94 
95  std::map<int, std::vector<int> > GetHitNeighbors() const {
96  return fHitNeighbors;
97  }
98 
99  std::map<int, std::vector<int> > GetSeparations() const {
100  return fSeparations;
101  }
102 
103  std::map<int, std::vector<int> > GetHitNeighborsWithoutEdges() const {
105  }
106 
107  std::map<int, std::vector<int> > GetSeparationsWithoutEdges() const {
109  }
110 
111  std::map<int, std::vector<int> > GetHitNeighborsWithoutSkewed() const {
113  }
114 
115  std::map<int, std::vector<int> > GetSeparationsWithoutSkewed() const {
117  }
118 
119  int GetNumHits() {
120  return fNumHits;
121  }
122 
124  return fNumHitsWithoutDouble;
125  }
127  fRunTimeBased = val;
128  }; // J.R. 26/04-2018
129  void SetClusterTime(double val){
130  fClusterTime = val;
131  }; // J.R. 20/04-2018
132 
133 private:
134 
135  std::map<int, FairLink> fMapHitToFairLink; // map< index of hit in fHit, FairLink of SttHit>
136  std::map<int, FairLink> fMapHitToFairLinkOrig; // map< index of hit in fHitOrig, FairLink of SttHit>
137  std::vector<FairHit*> fHits; //vector with selected hits of an event
138  std::vector<FairHit*> fHitsOrig;//vector with all originally hits of an event
139  std::multimap<int, PndSttSkewedHit*> fCombinedSkewedHits; //<(inner) Tube-ID of combined stt hits of skewed layers, corresponding hit>
140 
141  double fClusterTime; // J.R. 17/04-2018
143  int fNumHits;
146 
147  PndSttStrawMap* fStrawMap; // for getting more information about the tubes
148  PndSttGeometryMap* fGeometryMap;// for initializing the neighbors of each tube
149  std::map<int, TVector3> fMapTubeIdToPos;// map<straw id, position of the center of the tube>
150  std::map<int, int> fMapTubeIdToHit; // map< id of straw tube, index of hit in fHit>
151 
152  std::map<int, std::vector<int> > fHitNeighbors; // map<straw id, vector<ids of hit-neighbors>>
153  std::map<int, std::vector<int> > fSeparations; // map<#active neighbors, vector<straw ids>>
154 
155  std::map<int, std::vector<int> > fHitNeighborsWithoutEdges; // map<straw id, vector<ids of hit-neighbors>>
156  std::map<int, std::vector<int> > fSeparationsWithoutEdges; // map<#active neighbors, vector<straw ids>>
157 
158  std::map<int, std::vector<int> > fHitNeighborsWithoutSkewed; // map<straw id, vector<ids of hit-neighbors>>
159  std::map<int, std::vector<int> > fSeparationsWithoutSkewed; // map<#active neighbors, vector<straw ids>>
160 
161  /* Method grades the active cells according to the number of hit-neighbors.*/
162  void SeparateNeighbors();
163 
164  /* Method searches for hit-neighbors of each cell.*/
165 
167 
169 
170 ClassDef(PndSttCellTrackFinderData,1)
171  ;
172 };
173 
174 #endif /* PNDSTTCELLTRACKFINDERDATA_H_ */
std::multimap< int, PndSttSkewedHit * > GetCombinedSkewedHits() const
std::map< int, std::vector< int > > fHitNeighbors
std::map< int, std::vector< int > > GetHitNeighborsWithoutEdges() const
PndSttStrawMap * GetStrawMap() const
Int_t i
Definition: run_full.C:25
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
std::map< int, std::vector< int > > fHitNeighborsWithoutSkewed
std::map< int, std::vector< int > > GetHitNeighbors() const
std::map< int, std::vector< int > > fHitNeighborsWithoutEdges
std::vector< FairHit * > fHits
std::map< int, std::vector< int > > GetHitNeighborsWithoutSkewed() const
std::map< int, FairLink > fMapHitToFairLink
std::map< int, std::vector< int > > fSeparationsWithoutEdges
std::map< int, TVector3 > GetMapTubeIdToPos() const
std::multimap< int, PndSttSkewedHit * > fCombinedSkewedHits
PndSttGeometryMap * GetGeometryMap() const
std::map< int, std::vector< int > > GetSeparationsWithoutSkewed() const
std::map< int, int > GetMapTubeIdToHit() const
void AddHits(TClonesArray *hits, TString branchName)
std::map< int, FairLink > GetMapHitToFairLink() const
std::vector< FairHit * > GetHits() const
PndSttCellTrackFinderData(TClonesArray *fTubeArray)
std::map< int, std::vector< int > > GetSeparations() const
std::vector< FairHit * > fHitsOrig
std::map< int, TVector3 > fMapTubeIdToPos
CbmHit * hits[nHits]
Definition: RiemannTest.C:19
std::map< int, std::vector< int > > fSeparations
std::map< int, std::vector< int > > fSeparationsWithoutSkewed
std::map< int, FairLink > fMapHitToFairLinkOrig
std::map< int, std::vector< int > > GetSeparationsWithoutEdges() const