28 const vector< math::XYZPoint >& cornersxyz) :
35 cornersxyz_(cornersxyz)
43 double posx,
double posy,
double posz,
44 double axisx,
double axisy,
double axisz) :
50 position_(posx, posy, posz),
51 axisxyz_(axisx, axisy, axisz) {
64 originalRecHit_(other.originalRecHit_),
67 energy_(other.energy_),
69 position_(other.position_),
70 positionrep_(other.positionrep_),
71 axisxyz_(other.axisxyz_),
72 cornersxyz_(other.cornersxyz_),
73 cornersrep_(other.cornersrep_),
74 neighbours_(other.neighbours_),
75 neighbourInfos_(other.neighbourInfos_),
76 neighbours4_(other.neighbours4_),
77 neighbours8_(other.neighbours8_)
112 cornersxyz_[i].
Eta(),
113 cornersxyz_[i].
Phi() );
138 unsigned short absx =
abs(x);
139 unsigned short absy =
abs(y);
140 unsigned short absz =
abs(z);
142 unsigned short bitmask=0;
146 bitmask = bitmask | 1 ;
147 bitmask = bitmask | (absx << 1);
149 bitmask = bitmask | (1<<4) ;
150 bitmask = bitmask | (absy << 5);
152 bitmask = bitmask | (1<<8) ;
153 bitmask = bitmask | (absz << 9);
172 for (
unsigned ic=0; ic<
cornersxyz_.size(); ++ic ) {
176 if(phi>maxphi) maxphi=
phi;
177 if(phi<minphi) minphi=
phi;
178 if(eta>maxeta) maxeta=
eta;
179 if(eta<mineta) mineta=
eta;
182 deta = maxeta - mineta;
183 dphi = maxphi - minphi;
196 out<<
"hit id:"<<hit.
detId()
200 <<
" rep:"<<posxyz.Rho()<<
","<<posxyz.Eta()<<
","<<posxyz.Phi()<<
"| N:";
void setSECorner(double posx, double posy, double posz)
static const char layer_[]
ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< Double32_t > > REPPoint
std::vector< math::XYZPoint > cornersxyz_
rechit cell corners
void setNECorner(double posx, double posy, double posz)
PFRecHitRefVector neighbours4_
unsigned detId() const
rechit detId
void addNeighbour(short x, short y, short z, const PFRecHitRef &)
std::vector< unsigned short > neighbourInfos_
PFLayer::Layer layer() const
rechit layer
virtual ~PFRecHit()
destructor
void setSWCorner(double posx, double posy, double posz)
std::ostream & operator<<(std::ostream &, BeamSpot beam)
Particle flow rechit (rechit + geometry and topology information). See clustering algorithm in PFClus...
Abs< T >::type abs(const T &t)
layer definition for PFRecHit and PFCluster
void size(double &deta, double &dphi) const
void setNWCorner(double posx, double posy, double posz)
const math::XYZPoint & position() const
rechit cell centre x, y, z
void calculatePositionREP()
PFRecHitRefVector neighbours8_
math::XYZPoint position_
rechit cell centre: x, y, z
XYZVectorD XYZVector
spatial vector with cartesian internal representation
XYZPointD XYZPoint
point in space with cartesian internal representation
PFRecHitRefVector neighbours_
indices to existing neighbours (1 common side)
std::vector< REPPoint > cornersrep_
rechit cell corners rho/eta/phi
double energy() const
rechit energy
static int position[264][3]
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
REPPoint positionrep_
rechit cell centre: rho, eta, phi (transient)
static const unsigned nCorners_
number of corners
double time() const
timing for cleaned hits
void setCorner(unsigned i, double posx, double posy, double posz)
set position of one of the corners
PFRecHit()
default constructor. Sets energy and position to zero