CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
ZdcHardcodeGeometryLoader Class Reference

#include <ZdcHardcodeGeometryLoader.h>

Public Types

typedef CaloSubdetectorGeometryReturnType
 

Public Member Functions

ReturnType load ()
 
virtual ReturnType load (DetId::Detector det, int subdet)
 
 ZdcHardcodeGeometryLoader ()
 
 ZdcHardcodeGeometryLoader (const ZdcTopology &ht)
 
virtual ~ZdcHardcodeGeometryLoader ()
 

Private Member Functions

void fill (HcalZDCDetId::Section section, CaloSubdetectorGeometry *cg)
 
void init ()
 
void makeCell (const HcalZDCDetId &detId, CaloSubdetectorGeometry *geom) const
 

Private Attributes

const ZdcTopologyextTopology
 
float theEMSectiondX
 
float theEMSectiondY
 
float theEMSectiondZ
 
float theHADSectiondX
 
float theHADSectiondY
 
float theHADSectiondZ
 
float theLUMSectiondX
 
float theLUMSectiondY
 
float theLUMSectiondZ
 
float theRPDSectiondX
 
float theRPDSectiondY
 
float theRPDSectiondZ
 
ZdcTopologytheTopology
 

Detailed Description

Author
E. Garcia - UIC

Definition at line 16 of file ZdcHardcodeGeometryLoader.h.

Member Typedef Documentation

◆ ReturnType

Definition at line 18 of file ZdcHardcodeGeometryLoader.h.

Constructor & Destructor Documentation

◆ ZdcHardcodeGeometryLoader() [1/2]

ZdcHardcodeGeometryLoader::ZdcHardcodeGeometryLoader ( )

Definition at line 10 of file ZdcHardcodeGeometryLoader.cc.

11  init();
12 }

References init().

◆ ZdcHardcodeGeometryLoader() [2/2]

ZdcHardcodeGeometryLoader::ZdcHardcodeGeometryLoader ( const ZdcTopology ht)
explicit

Definition at line 14 of file ZdcHardcodeGeometryLoader.cc.

14  : theTopology(nullptr), extTopology(&ht) {
15  init();
16 }

References init().

◆ ~ZdcHardcodeGeometryLoader()

virtual ZdcHardcodeGeometryLoader::~ZdcHardcodeGeometryLoader ( )
inlinevirtual

Definition at line 22 of file ZdcHardcodeGeometryLoader.h.

22 { delete theTopology; }

References theTopology.

Member Function Documentation

◆ fill()

void ZdcHardcodeGeometryLoader::fill ( HcalZDCDetId::Section  section,
CaloSubdetectorGeometry cg 
)
private

Definition at line 40 of file ZdcHardcodeGeometryLoader.cc.

40  {
41  // start by making the new HcalDetIds
42  std::vector<HcalZDCDetId> zdcIds;
44  int firstCell = extTopology->firstCell(section);
45  int lastCell = extTopology->lastCell(section);
46  for (int ichannel = firstCell; ichannel <= lastCell; ++ichannel) {
47  id = HcalZDCDetId(section, true, ichannel);
48  if (extTopology->valid(id))
49  zdcIds.emplace_back(id);
50  id = HcalZDCDetId(section, false, ichannel);
51  if (extTopology->valid(id))
52  zdcIds.emplace_back(id);
53  }
54  if (geom->cornersMgr() == nullptr)
55  geom->allocateCorners(HcalZDCDetId::kSizeForDenseIndexing);
56  if (geom->parMgr() == nullptr)
59 
60  edm::LogInfo("ZdcHardcodeGeometry") << "Number of ZDC DetIds made: " << section << " " << zdcIds.size();
61 
62  // for each new HcalZdcDetId, make a CaloCellGeometry
63 
64  for (std::vector<HcalZDCDetId>::const_iterator zdcIdItr = zdcIds.begin(); zdcIdItr != zdcIds.end(); ++zdcIdItr) {
65  makeCell(*zdcIdItr, geom);
66  }
67 }

References extTopology, ZdcTopology::firstCell(), relativeConstraints::geom, triggerObjects_cff::id, ZdcGeometry::k_NumberOfParametersPerShape, ZdcGeometry::k_NumberOfShapes, HcalZDCDetId::kSizeForDenseIndexing, ZdcTopology::lastCell(), makeCell(), trackingPlots::section, and ZdcTopology::valid().

Referenced by load().

◆ init()

void ZdcHardcodeGeometryLoader::init ( void  )
private

Definition at line 18 of file ZdcHardcodeGeometryLoader.cc.

18 {}

Referenced by ZdcHardcodeGeometryLoader().

◆ load() [1/2]

ZdcHardcodeGeometryLoader::ReturnType ZdcHardcodeGeometryLoader::load ( )

Definition at line 31 of file ZdcHardcodeGeometryLoader.cc.

31  {
36  // fill(HcalZDCDetId::RPD ,hg );
37  return hg;
38 }

References HcalZDCDetId::EM, extTopology, fill(), HcalZDCDetId::HAD, and HcalZDCDetId::LUM.

◆ load() [2/2]

ZdcHardcodeGeometryLoader::ReturnType ZdcHardcodeGeometryLoader::load ( DetId::Detector  det,
int  subdet 
)
virtual

Definition at line 20 of file ZdcHardcodeGeometryLoader.cc.

20  {
22  if (subdet == HcalZDCDetId::SubdetectorId) {
26  // fill(HcalZDCDetId::RPD ,hg ); // line will be needed in next version of code, but is commented out for now in order to ensure run1 compatability.
27  }
28  return hg;
29 }

References HcalZDCDetId::EM, extTopology, fill(), HcalZDCDetId::HAD, HcalZDCDetId::LUM, and HcalZDCDetId::SubdetectorId.

Referenced by ZdcHardcodeGeometryEP::produce().

◆ makeCell()

void ZdcHardcodeGeometryLoader::makeCell ( const HcalZDCDetId detId,
CaloSubdetectorGeometry geom 
) const
private

Definition at line 69 of file ZdcHardcodeGeometryLoader.cc.

69  {
70  double zside(detId.zside());
71 
72  const HcalZDCDetId::Section section(detId.section());
73 
74  const int channel(detId.channel());
75 
76  //********* Here are all the hardcoded numbers you need to know, in **cm**
77  //********* Most are from the zdc.xml and zdclum.xml files ******
78 
79  static const double x0(0); // these 3 are for the "mother" volume
80  static const double y0(0);
81  static const double z0(14000);
82 
83  static const double angEM(0); // the angles of front face wrt vertical
84  static const double angLUM(0);
85  static const double angRPD(0);
86  static const double angHAD(atan(1.)); // this is 45 deg
87 
88  // these dimensions are **half**-sizes
89 
90  static const double dxHAD(4.8);
91  static const double dxEM(dxHAD / 5.);
92  static const double dxLUM(4.8); // to be updated when known
93  static const double dxRPD(4.8); // to be updated when known
94 
95  static const double dhEM(6.25);
96  static const double dhLUM(6.25); // to be updated when known
97  static const double dhHAD(6.25);
98  static const double dhRPD(6.25); // to be updated when known
99 
100  static const double dzEM(33. * 0.15);
101  static const double dzLUM(23.5); // to be updated when known
102  static const double dzHAD(0.82 * 6. / cos(angHAD));
103  static const double dzRPD(23.5); // to be updated when known
104 
105  // these are not half-dimensions, they are offsets from nominal
106  // for the center-of-front-face points
107 
108  static const double xOffEM(-4. * dxEM);
109  static const double xOffLUM(0);
110  static const double xOffHAD(0);
111  static const double xOffRPD(0);
112 
113  static const double yOffEM(0);
114  static const double yOffLUM(0);
115  static const double yOffHAD(0);
116  static const double yOffRPD(0);
117 
118  static const double zOffEM(-49.85 - 0.15);
119  static const double zOffLUM(-39.555);
120  static const double zOffHAD(-29.00);
121  static const double zOffRPD(-39.555);
122 
123  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
124 
125  double dx, dh, dz, x, y, z, an;
126 
127  if (section == HcalZDCDetId::EM) {
128  dx = dxEM;
129  dh = dhEM;
130  dz = dzEM;
131  an = angEM;
132  x = zside * (x0 + xOffEM + (channel - 1.0) * dxEM * 2.);
133  y = y0 + yOffEM;
134  z = zside * (z0 + zOffEM);
135  } else if (section == HcalZDCDetId::LUM) {
136  dx = dxLUM;
137  dh = dhLUM;
138  dz = dzLUM;
139  an = angLUM;
140  x = zside * (x0 + xOffLUM);
141  y = y0 + yOffLUM;
142  z = zside * (z0 + zOffLUM + (channel - 1.0) * dzLUM * 2.);
143  } else if (section == HcalZDCDetId::RPD) {
144  dx = dxRPD;
145  dh = dhRPD;
146  dz = dzRPD;
147  an = angRPD;
148  x = zside * (x0 + xOffRPD);
149  y = y0 + yOffRPD;
150  z = zside * (z0 + zOffRPD + (channel - 1.0) * dzRPD * 2.);
151  } else {
153  dx = dxHAD;
154  dh = dhHAD;
155  dz = dzHAD;
156  an = angHAD;
157  x = zside * (x0 + xOffHAD);
158  y = y0 + yOffHAD;
159  z = zside * (z0 + zOffHAD + (channel - 1.0) * dzHAD * 2.);
160  }
161 
162  const GlobalPoint fc(x, y, z);
163 
164  const double dy(dh * cos(an));
165 
166  std::vector<CCGFloat> zz;
168  zz.emplace_back(an);
169  zz.emplace_back(dx);
170  zz.emplace_back(dy);
171  zz.emplace_back(dz);
172 
173  geom->newCell(fc, fc, fc, CaloCellGeometry::getParmPtr(zz, geom->parMgr(), geom->parVecVec()), detId);
174 }

References cms::cuda::assert(), HcalZDCDetId::channel(), funct::cos(), cuy::dh, PVValHelper::dx, PVValHelper::dy, PVValHelper::dz, HcalZDCDetId::EM, benchmark_cfg::fc, relativeConstraints::geom, CaloCellGeometry::getParmPtr(), HcalZDCDetId::HAD, ZdcGeometry::k_NumberOfParametersPerShape, HcalZDCDetId::LUM, HcalZDCDetId::RPD, HcalZDCDetId::section(), trackingPlots::section, x, y, z, HLTMuonOfflineAnalyzer_cfi::z0, HcalZDCDetId::zside(), ecaldqm::zside(), and geometryCSVtoXML::zz.

Referenced by fill().

Member Data Documentation

◆ extTopology

const ZdcTopology* ZdcHardcodeGeometryLoader::extTopology
private

Definition at line 33 of file ZdcHardcodeGeometryLoader.h.

Referenced by fill(), and load().

◆ theEMSectiondX

float ZdcHardcodeGeometryLoader::theEMSectiondX
private

Definition at line 35 of file ZdcHardcodeGeometryLoader.h.

◆ theEMSectiondY

float ZdcHardcodeGeometryLoader::theEMSectiondY
private

Definition at line 36 of file ZdcHardcodeGeometryLoader.h.

◆ theEMSectiondZ

float ZdcHardcodeGeometryLoader::theEMSectiondZ
private

Definition at line 37 of file ZdcHardcodeGeometryLoader.h.

◆ theHADSectiondX

float ZdcHardcodeGeometryLoader::theHADSectiondX
private

Definition at line 41 of file ZdcHardcodeGeometryLoader.h.

◆ theHADSectiondY

float ZdcHardcodeGeometryLoader::theHADSectiondY
private

Definition at line 42 of file ZdcHardcodeGeometryLoader.h.

◆ theHADSectiondZ

float ZdcHardcodeGeometryLoader::theHADSectiondZ
private

Definition at line 43 of file ZdcHardcodeGeometryLoader.h.

◆ theLUMSectiondX

float ZdcHardcodeGeometryLoader::theLUMSectiondX
private

Definition at line 38 of file ZdcHardcodeGeometryLoader.h.

◆ theLUMSectiondY

float ZdcHardcodeGeometryLoader::theLUMSectiondY
private

Definition at line 39 of file ZdcHardcodeGeometryLoader.h.

◆ theLUMSectiondZ

float ZdcHardcodeGeometryLoader::theLUMSectiondZ
private

Definition at line 40 of file ZdcHardcodeGeometryLoader.h.

◆ theRPDSectiondX

float ZdcHardcodeGeometryLoader::theRPDSectiondX
private

Definition at line 44 of file ZdcHardcodeGeometryLoader.h.

◆ theRPDSectiondY

float ZdcHardcodeGeometryLoader::theRPDSectiondY
private

Definition at line 45 of file ZdcHardcodeGeometryLoader.h.

◆ theRPDSectiondZ

float ZdcHardcodeGeometryLoader::theRPDSectiondZ
private

Definition at line 46 of file ZdcHardcodeGeometryLoader.h.

◆ theTopology

ZdcTopology* ZdcHardcodeGeometryLoader::theTopology
private

Definition at line 32 of file ZdcHardcodeGeometryLoader.h.

Referenced by ~ZdcHardcodeGeometryLoader().

DDAxes::y
geometryCSVtoXML.zz
zz
Definition: geometryCSVtoXML.py:19
HcalZDCDetId::HAD
Definition: HcalZDCDetId.h:23
HcalZDCDetId::Section
Section
Definition: HcalZDCDetId.h:23
ecaldqm::zside
int zside(DetId const &)
Definition: EcalDQMCommonUtils.cc:189
ZdcHardcodeGeometryLoader::ReturnType
CaloSubdetectorGeometry * ReturnType
Definition: ZdcHardcodeGeometryLoader.h:18
ZdcGeometry
Definition: ZdcGeometry.h:12
edm::LogInfo
Definition: MessageLogger.h:254
HcalZDCDetId::channel
int channel() const
get the channel
Definition: HcalZDCDetId.cc:63
ZdcTopology::firstCell
int firstCell(HcalZDCDetId::Section section) const
Definition: ZdcTopology.cc:320
cms::cuda::assert
assert(be >=bs)
DDAxes::x
ZdcTopology::valid
virtual bool valid(const HcalZDCDetId &id) const
Definition: ZdcTopology.cc:27
HcalZDCDetId::kSizeForDenseIndexing
Definition: HcalZDCDetId.h:66
HcalZDCDetId
Definition: HcalZDCDetId.h:16
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
DDAxes::z
benchmark_cfg.fc
fc
Definition: benchmark_cfg.py:15
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
ZdcHardcodeGeometryLoader::init
void init()
Definition: ZdcHardcodeGeometryLoader.cc:18
HLTMuonOfflineAnalyzer_cfi.z0
z0
Definition: HLTMuonOfflineAnalyzer_cfi.py:98
HcalZDCDetId::SubdetectorId
static const int SubdetectorId
Definition: HcalZDCDetId.h:25
Point3DBase< float, GlobalTag >
HcalZDCDetId::zside
int zside() const
get the z-side of the cell (1/-1)
Definition: HcalZDCDetId.h:39
HcalZDCDetId::RPD
Definition: HcalZDCDetId.h:23
ZdcHardcodeGeometryLoader::fill
void fill(HcalZDCDetId::Section section, CaloSubdetectorGeometry *cg)
Definition: ZdcHardcodeGeometryLoader.cc:40
ZdcHardcodeGeometryLoader::extTopology
const ZdcTopology * extTopology
Definition: ZdcHardcodeGeometryLoader.h:33
ZdcTopology::lastCell
int lastCell(HcalZDCDetId::Section section) const
Definition: ZdcTopology.cc:342
PVValHelper::dy
Definition: PVValidationHelpers.h:49
trackingPlots.section
section
Definition: trackingPlots.py:1380
PVValHelper::dz
Definition: PVValidationHelpers.h:50
ZdcHardcodeGeometryLoader::theTopology
ZdcTopology * theTopology
Definition: ZdcHardcodeGeometryLoader.h:32
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
CaloCellGeometry::getParmPtr
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
Definition: CaloCellGeometry.cc:117
HcalZDCDetId::LUM
Definition: HcalZDCDetId.h:23
ZdcGeometry::k_NumberOfShapes
Definition: ZdcGeometry.h:28
ZdcTopology
Definition: ZdcTopology.h:14
ZdcGeometry::k_NumberOfParametersPerShape
Definition: ZdcGeometry.h:30
ZdcHardcodeGeometryLoader::makeCell
void makeCell(const HcalZDCDetId &detId, CaloSubdetectorGeometry *geom) const
Definition: ZdcHardcodeGeometryLoader.cc:69
HcalZDCDetId::section
Section section() const
get the section
Definition: HcalZDCDetId.cc:44
HcalZDCDetId::EM
Definition: HcalZDCDetId.h:23
PVValHelper::dx
Definition: PVValidationHelpers.h:48
cuy.dh
dh
Definition: cuy.py:355