29 const vector< math::XYZPoint >& cornersxyz) :
37 cornersxyz_(cornersxyz)
45 double posx,
double posy,
double posz,
46 double axisx,
double axisy,
double axisz) :
53 position_(posx, posy, posz),
54 axisxyz_(axisx, axisy, axisz) {
67 originalRecHit_(other.originalRecHit_),
70 energy_(other.energy_),
73 position_(other.position_),
74 positionrep_(other.positionrep_),
75 axisxyz_(other.axisxyz_),
76 cornersxyz_(other.cornersxyz_),
77 cornersrep_(other.cornersrep_),
78 neighbours_(other.neighbours_),
79 neighbourInfos_(other.neighbourInfos_),
80 neighbours4_(other.neighbours4_),
81 neighbours8_(other.neighbours8_)
116 cornersxyz_[i].
Eta(),
117 cornersxyz_[i].
Phi() );
142 unsigned short absx =
abs(x);
143 unsigned short absy =
abs(y);
144 unsigned short absz =
abs(z);
146 unsigned short bitmask=0;
150 bitmask = bitmask | 1 ;
151 bitmask = bitmask | (absx << 1);
153 bitmask = bitmask | (1<<4) ;
154 bitmask = bitmask | (absy << 5);
156 bitmask = bitmask | (1<<8) ;
157 bitmask = bitmask | (absz << 9);
172 unsigned short absx =
abs(x);
173 unsigned short absy =
abs(y);
174 unsigned short absz =
abs(z);
176 unsigned short bitmask=0;
179 bitmask = bitmask | 1 ;
180 bitmask = bitmask | (absx << 1);
182 bitmask = bitmask | (1<<4) ;
183 bitmask = bitmask | (absy << 5);
185 bitmask = bitmask | (1<<8) ;
186 bitmask = bitmask | (absz << 9);
202 for (
unsigned ic=0; ic<
cornersxyz_.size(); ++ic ) {
206 if(phi>maxphi) maxphi=
phi;
207 if(phi<minphi) minphi=
phi;
208 if(eta>maxeta) maxeta=
eta;
209 if(eta<mineta) mineta=
eta;
212 deta = maxeta - mineta;
213 dphi = maxphi - minphi;
226 out<<
"hit id:"<<hit.
detId()
230 <<
" rep:"<<posxyz.Rho()<<
","<<posxyz.Eta()<<
","<<posxyz.Phi()<<
"| N:";
void setSECorner(double posx, double posy, double posz)
static const char layer_[]
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)
const PFRecHitRef getNeighbour(short x, short y, short z)
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
edm::Ref< PFRecHitCollection > PFRecHitRef
persistent reference to PFRecHit objects
void setNWCorner(double posx, double posy, double posz)
const math::XYZPoint & position() const
rechit cell centre x, y, z
void calculatePositionREP()
ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double > > REPPoint
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