CMS 3D CMS Logo

MTDCPEBase.cc
Go to the documentation of this file.
4 
6 
7 // MessageLogger
9 
10 // Magnetic field
12 
13 #include <iostream>
14 
15 using namespace std;
16 
17 //-----------------------------------------------------------------------------
18 // A constructor run for generic and templates
19 //
20 //-----------------------------------------------------------------------------
22  //-----------------------------------------------------------------------------
23  // Fill all variables which are constant for an event (geometry)
24  //-----------------------------------------------------------------------------
25  auto const& dus = geom_.detUnits();
26  unsigned detectors = dus.size();
27  m_DetParams.resize(detectors);
28  LogDebug("MTDCPEBase::fillDetParams():") << "caching " << detectors << "MTD detectors" << endl;
29  for (unsigned i = 0; i != detectors; ++i) {
30  auto& p = m_DetParams[i];
31  p.theDet = dynamic_cast<const MTDGeomDetUnit*>(dus[i]);
32  assert(p.theDet);
33 
34  p.theOrigin = p.theDet->surface().toLocal(GlobalPoint(0, 0, 0));
35 
36  //--- p.theDet->type() returns a GeomDetType, which implements subDetector()
37  p.thePart = p.theDet->type().subDetector();
38 
39  //--- bounds() is implemented in BoundSurface itself.
40  p.theThickness = p.theDet->surface().bounds().thickness();
41 
42  // Cache the det id for templates and generic erros
43  p.theTopol = &(static_cast<const ProxyMTDTopology&>(p.theDet->topology()));
44  assert(p.theTopol);
45  p.theRecTopol = &(static_cast<const RectangularMTDTopology&>(p.theTopol->specificTopology()));
46  assert(p.theRecTopol);
47 
48  //--- The geometrical description of one module/plaquette
49  std::pair<float, float> pitchxy = p.theRecTopol->pitch();
50  p.thePitchX = pitchxy.first; // pitch along x
51  p.thePitchY = pitchxy.second; // pitch along y
52 
53  LogDebug("MTDCPEBase::fillDetParams()") << "***** MTD LAYOUT *****"
54  << " thePart = " << p.thePart << " theThickness = " << p.theThickness
55  << " thePitchX = " << p.thePitchX << " thePitchY = " << p.thePitchY;
56  }
57 }
58 
59 //------------------------------------------------------------------------
60 MTDCPEBase::DetParam const& MTDCPEBase::detParam(const GeomDetUnit& det) const { return m_DetParams.at(det.index()); }
61 
63  //remember measurement point is row(col)+0.5f
64  MeasurementPoint pos(cp.theCluster->x(), cp.theCluster->y());
65  return dp.theTopol->localPosition(pos);
66 }
67 
69  constexpr double one_over_twelve = 1. / 12.;
70  MeasurementPoint pos(cp.theCluster->x(), cp.theCluster->y());
71  MeasurementError simpleRect(one_over_twelve, 0, one_over_twelve);
72  return dp.theTopol->localError(pos, simpleRect);
73 }
74 
76  return cp.theCluster->time();
77 }
78 
80  return cp.theCluster->timeError();
81 }
Point2DBase
Definition: Point2DBase.h:9
MuonGeometrySanityCheck_cfi.detectors
def detectors(dt=True, csc=True, me42=False, chambers=True, superlayers=False, layers=False)
Definition: MuonGeometrySanityCheck_cfi.py:13
mps_fire.i
i
Definition: mps_fire.py:428
MessageLogger.h
GeomDet
Definition: GeomDet.h:27
MTDCPEBase::geom_
const MTDGeometry & geom_
Definition: MTDCPEBase.h:89
pos
Definition: PixelAliasList.h:18
MTDGeomDetUnit.h
MTDCPEBase::detParam
DetParam const & detParam(const GeomDetUnit &det) const
Definition: MTDCPEBase.cc:60
cms::cuda::assert
assert(be >=bs)
MTDClusterParameterEstimator::TimeValueError
float TimeValueError
Definition: MTDClusterParameterEstimator.h:23
GeomDet::index
int index() const
Definition: GeomDet.h:83
hgcal_conditions::parameters
Definition: HGCConditions.h:86
MTDCPEBase::m_DetParams
DetParams m_DetParams
Definition: MTDCPEBase.h:99
MTDCPEBase::localError
virtual LocalError localError(DetParam const &dp, ClusterParam &cp) const
Definition: MTDCPEBase.cc:68
MTDCPEBase::clusterTime
virtual TimeValue clusterTime(DetParam const &dp, ClusterParam &cp) const
Definition: MTDCPEBase.cc:75
Calorimetry_cff.dp
dp
Definition: Calorimetry_cff.py:158
MeasurementError
Definition: MeasurementError.h:8
MTDGeometry::detUnits
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
Definition: MTDGeometry.h:27
RectangularMTDTopology.h
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Point3DBase< float, LocalTag >
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
edm::ParameterSet
Definition: ParameterSet.h:47
MTDCPEBase::localPosition
virtual LocalPoint localPosition(DetParam const &dp, ClusterParam &cp) const
Definition: MTDCPEBase.cc:62
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
MTDCPEBase.h
LocalError
Definition: LocalError.h:12
MagneticField.h
ProxyMTDTopology.h
MTDGeometry
Definition: MTDGeometry.h:14
MTDClusterParameterEstimator::TimeValue
float TimeValue
Definition: MTDClusterParameterEstimator.h:22
std
Definition: JetResolutionObject.h:76
MTDCPEBase::clusterTimeError
virtual TimeValueError clusterTimeError(DetParam const &dp, ClusterParam &cp) const
Definition: MTDCPEBase.cc:79
MTDCPEBase::MTDCPEBase
MTDCPEBase(edm::ParameterSet const &conf, const MTDGeometry &geom)
Definition: MTDCPEBase.cc:21
MTDCPEBase::ClusterParam
Definition: MTDCPEBase.h:46
MTDCPEBase::DetParam
Definition: MTDCPEBase.h:33