14#ifndef TRGCDCHoughPlaneBoolean_FLAG_
15#define TRGCDCHoughPlaneBoolean_FLAG_
18#include "trg/cdc/HoughPlaneBase.h"
20#ifdef TRGCDC_SHORT_NAMES
21#define TCHPlaneBoolean TRGCDCHoughPlaneBoolean
56 unsigned entry(
unsigned id)
const override;
58 unsigned entry(
unsigned x,
unsigned y)
const override;
62 const std::vector<unsigned>&
patternId(
unsigned cellId)
const;
71 void clear(
void)
override;
76 int weight = 1)
override;
79#pragma clang diagnostic push
80#pragma clang diagnostic ignored "-Woverloaded-virtual"
95#pragma clang diagnostic pop
113 void add(
unsigned cellId,
int weight)
override;
144 std::cout <<
"TRGCDCHoughPlaneBoolean !!! given serialId is too large : "
145 <<
"max=" <<
_n * 32 <<
",serialId=" <<
serialId << std::endl;
149 _cell[b0] |= (1 << b1);
151 _cell[b0] &= (~(1 << b1));
153 return (
_cell[b0] >> b1) & 1;
160 memset(
_cell, 0,
_n *
sizeof(
unsigned));
170 vote(rx, ry, 0, weight);
182 std::cout <<
"TRGCDCHoughPlaneBoolean::entry !!! given serialId is too large"
184 <<
"max=" <<
_n * 32 <<
",serialId=" <<
serialId << std::endl;
187 return (
_cell[b0] >> b1) & 1;
202 std::cout <<
"TRGCDCHoughPlaneBoolean::maxEntry !!! "
203 <<
" this function has no meaning for TRGCDCHoughPlaneBooolean object"
220 const std::vector<unsigned>&
A class to represent a Hough parameter plane.
A class to represent a Hough parameter plane.
unsigned _n
nX * nY / 32 + 1
unsigned ** _patterns
patterns
unsigned _nPatterns
number of patterns
unsigned *const _cell
cell
std::vector< unsigned > * _reverse
Pattern ID's for each cell.
unsigned * _nActive
number of active cells
TRGCDCHoughPlaneBoolean(TRGCDCHoughPlaneBoolean &)=delete
Copy constructor, deleted.
TRGCDCHoughPlaneBoolean & operator=(TRGCDCHoughPlaneBoolean &)=delete
Assignement operator, delete.
A class to represent a Hough parameter plane.
void registerPattern(unsigned id) override
registers a pattern..
virtual void clear(void)=0
Clears all entries.
float xMin(void) const
returns min. of x.
void voteUsedInTrasan(float rx, float ry, float charge, int weight=1)
Votes with charge decision.
unsigned nY(void) const
return # of y bins.
void add(unsigned cellId, int weight) override
Add to a cell.
float xMax(void) const
returns max. of x.
void preparePatterns(unsigned nPatterns)
allocate memory for patterns.
void vote(float rx, float ry, int weight=1) override
Votes.
float charge(void) const
returns charge for this plane.
unsigned serialId(unsigned x, unsigned y) const
returns serial ID for position (x, y).
int maxEntry(void) const override
returns max. count in a plane.
float yMax(void) const
returns max. of y.
const std::vector< unsigned > & patternId(unsigned cellId) const
returns pattern ID which activates specified cell.
void clear(void) override
clear all entries.
const TRGCDCHoughTransformation & transformation(void) const
returns Hough transformation object.
std::string name(void) const
returns name.
unsigned entry(unsigned id) const override
returns entry in a cell.
unsigned nX(void) const
returns # of x bins.
float yMin(void) const
returns min. of y.
virtual ~TRGCDCHoughPlaneBoolean()
Destructor.
unsigned setEntry(unsigned serialId, unsigned n) override
Sets entry.
Abstract base class for different kinds of events.