CMS 3D CMS Logo

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

#include <HFNoseNumberingScheme.h>

Public Member Functions

uint32_t getUnitID (int layer, int module, int cell, int iz, const G4ThreeVector &pos, double &wt)
 assigns the det id to a hit More...
 
 HFNoseNumberingScheme (const HGCalDDDConstants &hgc)
 
 ~HFNoseNumberingScheme ()
 

Private Member Functions

 HFNoseNumberingScheme ()=delete
 

Private Attributes

const HGCalDDDConstantshgcons_
 
const HGCalGeometryMode::GeometryMode mode_
 

Detailed Description

Definition at line 14 of file HFNoseNumberingScheme.h.

Constructor & Destructor Documentation

HFNoseNumberingScheme::HFNoseNumberingScheme ( const HGCalDDDConstants hgc)

Definition at line 11 of file HFNoseNumberingScheme.cc.

11  :
12  hgcons_(hgc), mode_(hgc.geomMode()) {
13 #ifdef EDM_ML_DEBUG
14  edm::LogVerbatim("HGCSim") << "Creating HFNoseNumberingScheme";
15 #endif
16 }
HGCalGeometryMode::GeometryMode geomMode() const
const HGCalGeometryMode::GeometryMode mode_
const HGCalDDDConstants & hgcons_
HFNoseNumberingScheme::~HFNoseNumberingScheme ( )
inline

Definition at line 19 of file HFNoseNumberingScheme.h.

References getUnitID(), and HFNoseNumberingScheme().

19 {}
HFNoseNumberingScheme::HFNoseNumberingScheme ( )
privatedelete

Referenced by ~HFNoseNumberingScheme().

Member Function Documentation

uint32_t HFNoseNumberingScheme::getUnitID ( int  layer,
int  module,
int  cell,
int  iz,
const G4ThreeVector &  pos,
double &  wt 
)

assigns the det id to a hit

Definition at line 18 of file HFNoseNumberingScheme.cc.

References TauDecayModes::dec, HGCalGeometryMode::Hexagon8Full, hgcons_, mode_, DetId::rawId(), HGCalDDDConstants::waferFromPosition(), and geometryCSVtoXML::xx.

Referenced by ~HFNoseNumberingScheme().

20  {
21  // module is the copy number of the wafer as placed in the layer
22  uint32_t index(0);
23  wt = 1.0;
24  int cellU(0), cellV(0), waferType(-1), waferU(0), waferV(0);
25  if (cell >= 0) {
26  waferType = module/1000000;
27  waferU = module%100;
28  if ((module/10000)%10 > 0) waferU = -waferU;
29  waferV = (module/100)%100;
30  if ((module/100000)%10 > 0) waferV = -waferV;
31  cellU = cell%100;
32  cellV = (cell/100)%100;
33  } else if (mode_ == HGCalGeometryMode::Hexagon8Full) {
34  double xx = (pos.z() > 0) ? pos.x() : -pos.x();
35  hgcons_.waferFromPosition(xx,pos.y(),layer,waferU,waferV,cellU,
36  cellV,waferType,wt);
37  }
38  if (waferType >= 0) {
39  index = HFNoseDetId(iz,waferType,layer,waferU,waferV,cellU,cellV).rawId();
40 #ifdef EDM_ML_DEBUG
41  edm::LogVerbatim("HFNSim") << "OK WaferType " << waferType << " Wafer "
42  << waferU << ":" << waferV << " Cell "
43  << cellU << ":" << cellV;
44  } else {
45  edm::LogVerbatim("HFNSim") << "Bad WaferType " << waferType;
46 #endif
47  }
48 #ifdef EDM_ML_DEBUG
49  edm::LogVerbatim("HFNSim") << "HFNoseNumberingScheme::i/p " << layer << ":"
50  << module << ":" << cell << ":" << iz << ":"
51  << pos.x() << ":" << pos.y() << ":" << pos.z()
52  << " ID " << std::hex << index << std::dec
53  << " wt " << wt;
54 #endif
55  return index;
56 }
void waferFromPosition(const double x, const double y, int &wafer, int &icell, int &celltyp) const
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
const HGCalGeometryMode::GeometryMode mode_
const HGCalDDDConstants & hgcons_
Definition: vlib.h:208

Member Data Documentation

const HGCalDDDConstants& HFNoseNumberingScheme::hgcons_
private

Definition at line 30 of file HFNoseNumberingScheme.h.

Referenced by getUnitID().

const HGCalGeometryMode::GeometryMode HFNoseNumberingScheme::mode_
private

Definition at line 31 of file HFNoseNumberingScheme.h.

Referenced by getUnitID().