CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
CaloHitMaker.cc
Go to the documentation of this file.
9 
11 
13  const CaloGeometryHelper* theCalo, DetId::Detector basedet, int subdetn, int cal, unsigned sht)
14  : myCalorimeter(theCalo),
15  theCaloProperties(nullptr),
16  base_(basedet),
17  subdetn_(subdetn),
18  onCal_(cal),
19  showerType_(sht) {
20  // std::cout << " FamosCalorimeter " << basedet << " " << cal << std::endl;
21  EMSHOWER = (sht == 0);
22  HADSHOWER = (sht == 1);
23  MIP = (sht == 2);
24  if (base_ == DetId::Ecal && (subdetn_ == EcalBarrel || subdetn == EcalEndcap) && onCal_)
26  // is it really necessary to cast here ?
29  if (base_ == DetId::Hcal && cal)
31 
32  if (theCaloProperties) {
35  } else {
36  moliereRadius = 999;
37  interactionLength = 999;
38  }
39 }
40 
42  const Plane3D& p, const XYZPoint& a, const XYZPoint& b, double& t, bool segment, bool debug) {
43  t = -9999.;
44  // En Attendant //
45  XYZVector normal = p.Normal();
46  double AAA = normal.X();
47  double BBB = normal.Y();
48  double CCC = normal.Z();
49  // double DDD = p.Distance(Point(0.,0.,0.));
50  double DDD = p.HesseDistance();
51  // double denom = p.A()*(b.X()-a.X()) + p.B()*(b.Y()-a.Y()) + p.C()*(b.Z()-a.Z());
52  double denom = AAA * (b.X() - a.X()) + BBB * (b.Y() - a.Y()) + CCC * (b.Z() - a.Z());
53  if (denom != 0.) {
54  // t=-(p.A()*a.X()+p.B()*a.Y()+p.C()*a.Z()+p.D());
55  t = -(AAA * a.X() + BBB * a.Y() + CCC * a.Z() + DDD);
56  t /= denom;
57  if (debug)
58  std::cout << " T = " << t << std::endl;
59  if (segment) {
60  if (t >= 0 && t <= 1)
61  return XYZPoint(a.X() + (b.X() - a.X()) * t, a.Y() + (b.Y() - a.Y()) * t, a.Z() + (b.Z() - a.Z()) * t);
62  } else {
63  return XYZPoint(a.X() + (b.X() - a.X()) * t, a.Y() + (b.Y() - a.Y()) * t, a.Z() + (b.Z() - a.Z()) * t);
64  }
65  }
66 
67  return XYZPoint(0., 0., 0.);
68 }
const ECALProperties * ecalProperties(int onEcal) const
ECAL properties.
Definition: Calorimeter.cc:78
const CalorimeterProperties * theCaloProperties
Definition: CaloHitMaker.h:45
math::XYZVector XYZPoint
Definition: CaloHitMaker.h:23
const PreshowerLayer1Properties * layer1Properties(int onLayer1) const
Preshower Layer1 properties.
Definition: Calorimeter.cc:103
const CaloGeometryHelper * myCalorimeter
Definition: CaloHitMaker.h:44
math::XYZPoint Point
const HCALProperties * hcalProperties(int onHcal) const
HCAL properties.
Definition: Calorimeter.cc:88
static XYZPoint intersect(const Plane3D &p, const XYZPoint &a, const XYZPoint &b, double &t, bool segment, bool debug=false)
Definition: CaloHitMaker.cc:41
#define debug
Definition: HDRShower.cc:19
virtual double moliereRadius() const =0
Moliere Radius in cm.
Detector
Definition: DetId.h:24
ROOT::Math::Plane3D Plane3D
Definition: CaloHitMaker.h:24
double interactionLength
Definition: CaloHitMaker.h:47
double b
Definition: hdecay.h:118
double moliereRadius
Definition: CaloHitMaker.h:46
double a
Definition: hdecay.h:119
math::XYZVector XYZVector
Definition: CaloHitMaker.h:22
tuple cout
Definition: gather_cfg.py:144
DetId::Detector base_
Definition: CaloHitMaker.h:55
virtual double interactionLength() const =0
Interaction length in cm.
CaloHitMaker(const CaloGeometryHelper *calo, DetId::Detector det, int subdetn, int cal, unsigned sht=0)
Definition: CaloHitMaker.cc:12