 |
Belle II Software
release-05-02-19
|
14 #ifndef TRGCDCLink_FLAG_
15 #define TRGCDCLink_FLAG_
19 #include "CLHEP/Geometry/Point3D.h"
20 #include "trg/cdc/Cell.h"
21 #include "trg/cdc/CellHit.h"
23 #ifdef TRGCDC_SHORT_NAMES
24 #define TCLink TRGCDCLink
59 static void*
operator new(size_t);
62 static void operator delete(
void*);
82 double pull(
void)
const;
94 double dPhi(
void)
const;
164 float drift(
void)
const;
167 float drift(
unsigned)
const;
170 float drift(
float,
unsigned);
176 float dDrift(
unsigned)
const;
179 float dDrift(
float,
unsigned);
184 void dump(
const std::string& message = std::string(
""),
185 const std::string& prefix = std::string(
""))
const;
190 static void separate(
const std::vector<TRGCDCLink*>& links,
192 std::vector<TRGCDCLink*>* layers);
198 const std::vector<TRGCDCLink*>& links);
201 static unsigned nSuperLayers(
const std::vector<TRGCDCLink*>& links);
204 static unsigned nSuperLayers(
const std::vector<TRGCDCLink*>& links,
210 const std::vector<TRGCDCLink*>& links);
214 const std::vector<TRGCDCLink*>& links);
217 static unsigned nLayers(
const std::vector<TRGCDCLink*>& links);
220 static void nHits(
const std::vector<TRGCDCLink*>& links,
229 std::vector<TRGCDCLink*>* list);
232 static std::vector<TRGCDCLink*>
axialHits(
233 const std::vector<TRGCDCLink*>& links);
237 const std::vector<TRGCDCLink*>& links);
240 static unsigned nAxialHits(
const std::vector<TRGCDCLink*>& links);
243 static unsigned nStereoHits(
const std::vector<TRGCDCLink*>& links);
248 static unsigned width(
const std::vector<TRGCDCLink*>&);
252 static std::vector<TRGCDCLink*>
edges(
const std::vector<TRGCDCLink*>&);
255 static std::vector<TRGCDCLink*>
sameLayer(
256 const std::vector<TRGCDCLink*>& list,
260 static std::vector<TRGCDCLink*>
sameLayer(
261 const std::vector<TRGCDCLink*>& list,
266 const std::vector<TRGCDCLink*>& list,
271 const std::vector<TRGCDCLink*>& list,
275 static unsigned superLayer(
const std::vector<TRGCDCLink*>& list);
278 static unsigned superLayer(
const std::vector<TRGCDCLink*>& list,
290 static std::vector<TRGCDCLink*>
inOut(
const std::vector<TRGCDCLink*>&);
293 static void separateCores(
const std::vector<TRGCDCLink*>& input,
294 std::vector<TRGCDCLink*>&
cores,
295 std::vector<TRGCDCLink*>& nonCores);
298 static std::vector<TRGCDCLink*>
cores(
299 const std::vector<TRGCDCLink*>& input);
302 static void remove(std::vector<TRGCDCLink*>& list,
303 const std::vector<TRGCDCLink*>& links);
306 static void dump(
const std::vector<const TRGCDCLink*>& links,
307 const std::string& message = std::string(
""),
308 const std::string& prefix = std::string(
""));
311 static void dump(
const std::vector<TRGCDCLink*>& links,
312 const std::string& message = std::string(
""),
313 const std::string& prefix = std::string(
""));
317 const std::string& message = std::string(
""),
318 const std::string& prefix = std::string(
""));
321 static std::string
layerUsage(
const std::vector<TRGCDCLink*>& links);
343 void dump_base(
const std::string& message = std::string(
""),
344 const std::string& prefix = std::string(
""))
const;
349 static std::vector<TRGCDCLink*>
_all;
409 static unsigned nTRGCDCLinks(
void);
410 static unsigned nTRGCDCLinksMax(
void);
412 static unsigned _nTRGCDCLinks;
413 static unsigned _nTRGCDCLinksMax;
A class to relate TRGCDCCellHit and TRGCDCTrack objects.
static unsigned _nL
...Buffers...
static std::vector< TRGCDCLink * > axialHits(const std::vector< TRGCDCLink * > &links)
returns axial hits.
HepGeom::Point3D< double > _arcZ[4]
arcZ
TRGCDCTrack * _track
Track object.
static void initializeBuffers(void)
initialize the Buffers
void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
static void nHits(const std::vector< TRGCDCLink * > &links, unsigned *nHits)
returns # of hits per layer.
static unsigned _nSL
...Buffers...
static void separate(const std::vector< TRGCDCLink * > &links, unsigned nLayers, std::vector< TRGCDCLink * > *layers)
separates into layers.
const TRGCDCSegment * segment(void) const
returns a pointer to a track segment.
const TRGCDCCellHit * hit(void) const
returns a pointer to a hit.
A class to represent a GEN_HEPEVT particle in tracking.
static unsigned width(const std::vector< TRGCDCLink * > &)
returns width(wire cell unit) of given std::vector<TRGCDCLink *>.
const TRGCDCCellHit * _hit
Cell hit object.
double dPhi(void) const
returns dPhi to the closest point.
static bool sortById(const TRGCDCLink *a, const TRGCDCLink *b)
sorts by ID.
static std::vector< TRGCDCLink * > _all
Keeps all TRGCDCLinks created by new().
A class to represent a wire in CDC.
double pull(void) const
returns pull.
static unsigned superLayer(const std::vector< TRGCDCLink * > &list)
returns super layer pattern.
HepGeom::Point3D< double > _position
position
static unsigned nMissingAxialSuperLayers(const std::vector< TRGCDCLink * > &links)
returns # of missing axial super layers.
const HepGeom::Point3D< double > & positionOnTrack(void) const
returns the closest point on track to wire.
TRGCDCLink * link(void) const
returns a pointer to a TRGCDCLink.
static std::vector< TRGCDCLink * > edges(const std::vector< TRGCDCLink * > &)
returns links which are edges.
unsigned _fit2D
2D fitted or not
float _dDrift[2]
drift distance error
static std::vector< TRGCDCLink * > sameLayer(const std::vector< TRGCDCLink * > &list, const TRGCDCLink &a)
returns links which are in the same layer as 'a' or 'id'.
static void nHitsSuperLayer(const std::vector< TRGCDCLink * > &links, unsigned *nHits)
returns # of hits per super layer.
int _zStatus
z status of stereo
TRGCDCTrack * track(void) const
returns a pointer to a track.
static unsigned nSuperLayers(const std::vector< TRGCDCLink * > &links)
returns # of layers.
static bool ms_smallcell
ms_smallcell
A class to represent a wire in CDC.
static std::vector< TRGCDCLink * > cores(const std::vector< TRGCDCLink * > &input)
separate cores and non-cores.
A class to represent a wire hit in CDC.
float _drift[2]
drift distance
void update(const HepGeom::Point3D< double > &onTrack, const HepGeom::Point3D< double > &onWire, unsigned leftRight, double pull)
sets results of fitting.
const HepGeom::Point3D< double > & conf(const HepGeom::Point3D< double > &conf)
conf 3D point
double distance(void) const
returns distance between point on wire and on track.
static unsigned nLayers(const std::vector< TRGCDCLink * > &links)
returns # of layers.
static TRGCDCLink * innerMost(const std::vector< TRGCDCLink * > &links)
returns the inner-most link.
static std::vector< TRGCDCLink * > stereoHits(const std::vector< TRGCDCLink * > &links)
returns stereo hits.
const HepGeom::Point3D< double > & positionOnWire(void) const
returns the closest point on wire to a track.
Abstract base class for different kinds of events.
TRGCDCLink * _link
TRGCDCLink.
static unsigned nAxialHits(const std::vector< TRGCDCLink * > &links)
returns # of axial hits.
static unsigned nStereoHits(const std::vector< TRGCDCLink * > &links)
returns # of stereo hits.
static std::vector< TRGCDCLink * > sameSuperLayer(const std::vector< TRGCDCLink * > &list, const TRGCDCLink &a)
returns links which are in the same super layer as 'a' or 'id'.
static void remove(std::vector< TRGCDCLink * > &list, const std::vector< TRGCDCLink * > &links)
removes links from list if wire is same
static const TRGCDCTrackMC & links2HEP(const std::vector< TRGCDCLink * > &links)
returns TRGCDCTrackMC
The instance of TRGCDC is a singleton.
const TRGCDCCell * cell(void) const
returns a pointer to a cell.
HepGeom::Point3D< double > _onTrack
position on track
TRGCDCLink * neighbor(unsigned int) const
returns neighbor TRGCDCLink.
A class to represent a wire in CDC.
static std::string layerUsage(const std::vector< TRGCDCLink * > &links)
usage of each layer
static unsigned * _nHitsSL
...Buffers...
static unsigned _nSLA
...Buffers...
const HepGeom::Point3D< double > & position(void) const
returns position.
static std::vector< TRGCDCLink * > inOut(const std::vector< TRGCDCLink * > &)
returns links which are in the inner most and outer most layer.
const HepGeom::Point3D< double > & xyPosition(void) const
returns middle position of a wire. z componet is 0.
unsigned _leftRight
left right
A class to represent a reconstructed charged track in TRGCDC.
unsigned leftRight(void) const
returns left-right. 0:left, 1:right, 2:wire
void dump_base(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
virtual const TRGCDCCell & cell(void) const
returns a pointer to a TRGCDCWire.
HepGeom::Point3D< double > _conf
...tmp...
float drift(void) const
returns drift distance.
static void clearBufferSL(void)
clear buffers
virtual ~TRGCDCLink()
Destructor.
static bool ms_superb
ms_superb
static void separateCores(const std::vector< TRGCDCLink * > &input, std::vector< TRGCDCLink * > &cores, std::vector< TRGCDCLink * > &nonCores)
separate cores and non-cores.
static unsigned nMissingStereoSuperLayers(const std::vector< TRGCDCLink * > &links)
returns # of missing stereo super layers.
HepGeom::Point3D< double > Point3D
3D point
static int sortByX(const TRGCDCLink *a, const TRGCDCLink *b)
sorts by X position.
TRGCDCLink(TRGCDCTrack *track=0, const TRGCDCCellHit *hit=0, const HepGeom::Point3D< double > &position=Point3D())
Constructor.
TRGCDCLink * _neighbor[7]
neighbor TRGCDCLink
static void removeAll(void)
destructs all TRGCDCLink objects. (Called by TRGCDC)
const TRGCDCWire * wire(void) const
returns a pointer to a wire.
static TRGCDCLink * outerMost(const std::vector< TRGCDCLink * > &links)
returns the outer-most link.
HepGeom::Point3D< double > _onWire
position on wire
float dDrift(void) const
returns drift distance error.