11 :myCalorimeter(theCalo),theCaloProperties(
NULL),base_(basedet),subdetn_(subdetn),onCal_(cal),showerType_(sht)
39 double&
t,
bool segment,
bool debug)
44 double AAA = normal.X();
45 double BBB = normal.Y();
46 double CCC = normal.Z();
48 double DDD = p.HesseDistance();
50 double denom = AAA*(b.X()-a.X()) + BBB*(b.Y()-a.Y()) + CCC*(b.Z()-a.Z());
54 t=-(AAA*a.X()+BBB*a.Y()+CCC*a.Z()+DDD);
56 if(debug)
std::cout <<
" T = " << t <<std::endl;
60 return XYZPoint(a.X()+(b.X()-a.X())*t,
61 a.Y()+(b.Y()-a.Y())*t,
62 a.Z()+(b.Z()-a.Z())*t);
66 return XYZPoint(a.X()+(b.X()-a.X())*t,
67 a.Y()+(b.Y()-a.Y())*t,
68 a.Z()+(b.Z()-a.Z())*t);
const ECALProperties * ecalProperties(int onEcal) const
ECAL properties.
const CalorimeterProperties * theCaloProperties
const PreshowerLayer1Properties * layer1Properties(int onLayer1) const
Preshower Layer1 properties.
const CaloGeometryHelper * myCalorimeter
const HCALProperties * hcalProperties(int onHcal) const
HCAL properties.
static XYZPoint intersect(const Plane3D &p, const XYZPoint &a, const XYZPoint &b, double &t, bool segment, bool debug=false)
virtual double moliereRadius() const =0
Moliere Radius in cm.
ROOT::Math::Plane3D Plane3D
math::XYZVector XYZVector
virtual double interactionLength() const =0
Interaction length in cm.
CaloHitMaker(const CaloGeometryHelper *calo, DetId::Detector det, int subdetn, int cal, unsigned sht=0)