13 :myCalorimeter(theCalo),theCaloProperties(
nullptr),base_(basedet),subdetn_(subdetn),onCal_(cal),showerType_(sht)
41 double&
t,
bool segment,
bool debug)
46 double AAA = normal.X();
47 double BBB = normal.Y();
48 double CCC = normal.Z();
50 double DDD = p.HesseDistance();
52 double denom = AAA*(b.X()-a.X()) + BBB*(b.Y()-a.Y()) + CCC*(b.Z()-a.Z());
56 t=-(AAA*a.X()+BBB*a.Y()+CCC*a.Z()+DDD);
58 if(debug)
std::cout <<
" T = " << t <<std::endl;
62 return XYZPoint(a.X()+(b.X()-a.X())*t,
63 a.Y()+(b.Y()-a.Y())*t,
64 a.Z()+(b.Z()-a.Z())*t);
68 return XYZPoint(a.X()+(b.X()-a.X())*t,
69 a.Y()+(b.Y()-a.Y())*t,
70 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
virtual double interactionLength() const =0
Interaction length in cm.
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)
ROOT::Math::Plane3D::Point Point
ROOT::Math::Plane3D Plane3D
math::XYZVector XYZVector
virtual double moliereRadius() const =0
Moliere Radius in cm.
CaloHitMaker(const CaloGeometryHelper *calo, DetId::Detector det, int subdetn, int cal, unsigned sht=0)