CMS 3D CMS Logo

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

#include <HFNoseSD.h>

Inheritance diagram for HFNoseSD:
CaloSD Observer< const BeginOfJob * > SensitiveCaloDetector Observer< const BeginOfRun * > Observer< const BeginOfEvent * > Observer< const BeginOfTrack * > Observer< const EndOfTrack * > Observer< const EndOfEvent * > SensitiveDetector

Public Member Functions

 HFNoseSD (const std::string &, const DDCompactView &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
 
uint32_t setDetUnitId (const G4Step *step) override
 
 ~HFNoseSD () override=default
 
- Public Member Functions inherited from CaloSD
 CaloSD (const std::string &aSDname, const DDCompactView &cpv, const SensitiveDetectorCatalog &clg, edm::ParameterSet const &p, const SimTrackManager *, float timeSlice=1., bool ignoreTkID=false)
 
void clear () override
 
void clearHits () override
 
void DrawAll () override
 
void EndOfEvent (G4HCofThisEvent *eventHC) override
 
void fillHits (edm::PCaloHitContainer &, const std::string &) override
 
void Initialize (G4HCofThisEvent *HCE) override
 
void PrintAll () override
 
G4bool ProcessHits (G4Step *step, G4TouchableHistory *) override
 
bool ProcessHits (G4GFlashSpot *aSpot, G4TouchableHistory *) override
 
 ~CaloSD () override
 
- Public Member Functions inherited from SensitiveCaloDetector
 SensitiveCaloDetector (const std::string &iname, const DDCompactView &cpv, const SensitiveDetectorCatalog &clg, edm::ParameterSet const &p)
 
- Public Member Functions inherited from SensitiveDetector
void EndOfEvent (G4HCofThisEvent *eventHC) override
 
const std::vector< std::string > & getNames () const
 
void Initialize (G4HCofThisEvent *eventHC) override
 
 SensitiveDetector (const std::string &iname, const DDCompactView &cpv, const SensitiveDetectorCatalog &, edm::ParameterSet const &p)
 
 ~SensitiveDetector () override
 
- Public Member Functions inherited from Observer< const BeginOfRun * >
 Observer ()
 
void slotForUpdate (const BeginOfRun * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const BeginOfEvent * >
 Observer ()
 
void slotForUpdate (const BeginOfEvent * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const BeginOfTrack * >
 Observer ()
 
void slotForUpdate (const BeginOfTrack * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const EndOfTrack * >
 Observer ()
 
void slotForUpdate (const EndOfTrack * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const EndOfEvent * >
 Observer ()
 
void slotForUpdate (const EndOfEvent * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const BeginOfJob * >
 Observer ()
 
void slotForUpdate (const BeginOfJob * iT)
 
virtual ~Observer ()
 

Protected Member Functions

bool filterHit (CaloG4Hit *, double) override
 
double getEnergyDeposit (const G4Step *) override
 
void initRun () override
 
void update (const BeginOfJob *) override
 This routine will be called when the appropriate signal arrives. More...
 
- Protected Member Functions inherited from CaloSD
bool checkHit ()
 
CaloG4HitcreateNewHit (const G4Step *)
 
virtual void endEvent ()
 
double getAttenuation (const G4Step *aStep, double birk1, double birk2, double birk3) const
 
virtual uint16_t getDepth (const G4Step *)
 
virtual bool getFromLibrary (const G4Step *step)
 
int getNumberOfHits ()
 
double getResponseWt (const G4Track *)
 
virtual int getTrackID (const G4Track *)
 
bool hitExists (const G4Step *)
 
virtual void initEvent (const BeginOfEvent *)
 
void processHit (const G4Step *step)
 
void resetForNewPrimary (const G4Step *)
 
void setNumberCheckedHits (int val)
 
void setParameterized (bool val)
 
G4ThreeVector setToGlobal (const G4ThreeVector &, const G4VTouchable *) const
 
G4ThreeVector setToLocal (const G4ThreeVector &, const G4VTouchable *) const
 
virtual int setTrackID (const G4Step *)
 
void setUseMap (bool val)
 
void update (const BeginOfRun *) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const BeginOfEvent *) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const BeginOfTrack *trk) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const EndOfTrack *trk) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const ::EndOfEvent *) override
 
void updateHit (CaloG4Hit *)
 
- Protected Member Functions inherited from SensitiveDetector
TrackInformationcmsTrackInformation (const G4Track *aTrack)
 
Local3DPoint ConvertToLocal3DPoint (const G4ThreeVector &point) const
 
Local3DPoint FinalStepPosition (const G4Step *step, coordinates) const
 
Local3DPoint InitialStepPosition (const G4Step *step, coordinates) const
 
Local3DPoint LocalPostStepPosition (const G4Step *step) const
 
Local3DPoint LocalPreStepPosition (const G4Step *step) const
 
void NaNTrap (const G4Step *step) const
 
void setNames (const std::vector< std::string > &)
 
- Protected Member Functions inherited from Observer< const EndOfEvent * >
virtual void update (const EndOfEvent *)=0
 This routine will be called when the appropriate signal arrives. More...
 

Private Member Functions

bool isItinFidVolume (const G4ThreeVector &)
 
uint32_t setDetUnitId (int, int, int, int, G4ThreeVector &)
 

Private Attributes

std::vector< double > angles_
 
int cornerMinMask_
 
double distanceFromEdge_
 
double eminHit_
 
bool fiducialCut_
 
HGCalGeometryMode::GeometryMode geom_mode_
 
const HGCalDDDConstantshgcons_
 
int levelT1_
 
int levelT2_
 
std::unique_ptr< HGCMouseBitemouseBite_
 
double mouseBiteCut_
 
std::string nameX_
 
std::unique_ptr< HFNoseNumberingSchemenumberingScheme_
 
bool rejectMB_
 
double slopeMin_
 
bool storeAllG4Hits_
 
const double tan30deg_
 
bool waferRot_
 
double weight_
 

Additional Inherited Members

- Protected Types inherited from SensitiveDetector
enum  coordinates { WorldCoordinates, LocalCoordinates }
 
- Protected Attributes inherited from CaloSD
CaloG4HitcurrentHit
 
CaloHitID currentID
 
float edepositEM
 
float edepositHAD
 
double eminHit
 
double energyCut
 
G4ThreeVector entranceLocal
 
G4ThreeVector entrancePoint
 
bool forceSave
 
float incidentEnergy
 
double kmaxIon
 
double kmaxNeutron
 
double kmaxProton
 
G4ThreeVector posGlobal
 
CaloHitID previousID
 
bool suppressHeavy
 
double tmaxHit
 

Detailed Description

Definition at line 21 of file HFNoseSD.h.

Constructor & Destructor Documentation

HFNoseSD::HFNoseSD ( const std::string &  name,
const DDCompactView cpv,
const SensitiveDetectorCatalog clg,
edm::ParameterSet const &  p,
const SimTrackManager manager 
)

Definition at line 30 of file HFNoseSD.cc.

References angles_, cornerMinMask_, distanceFromEdge_, eminHit_, fiducialCut_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), MeV, mouseBite_, dataset::name, nameX_, numberingScheme_, rejectMB_, CaloSD::setNumberCheckedHits(), CaloSD::setUseMap(), storeAllG4Hits_, and waferRot_.

32  :
33  CaloSD(name, cpv, clg, p, manager,
34  (float)(p.getParameter<edm::ParameterSet>("HFNoseSD").getParameter<double>("TimeSliceUnit")),
35  p.getParameter<edm::ParameterSet>("HFNoseSD").getParameter<bool>("IgnoreTrackID")),
36  hgcons_(nullptr), slopeMin_(0), levelT1_(99), levelT2_(99),
37  tan30deg_(std::tan(30.0*CLHEP::deg)) {
38 
39  numberingScheme_.reset(nullptr); mouseBite_.reset(nullptr);
40 
41  edm::ParameterSet m_HFN = p.getParameter<edm::ParameterSet>("HFNoseSD");
42  eminHit_ = m_HFN.getParameter<double>("EminHit")*CLHEP::MeV;
43  fiducialCut_ = m_HFN.getParameter<bool>("FiducialCut");
44  distanceFromEdge_= m_HFN.getParameter<double>("DistanceFromEdge");
45  storeAllG4Hits_ = m_HFN.getParameter<bool>("StoreAllG4Hits");
46  rejectMB_ = m_HFN.getParameter<bool>("RejectMouseBite");
47  waferRot_ = m_HFN.getParameter<bool>("RotatedWafer");
48  cornerMinMask_ = m_HFN.getParameter<int>("CornerMinMask");
49  angles_ = m_HFN.getUntrackedParameter<std::vector<double>>("WaferAngles");
50 
51  nameX_ = ((name.find("HFNoseHits")!=std::string::npos) ?
52  "HGCalHFNoseSensitive" : "HFNoseSensitive");
53 
54  if(storeAllG4Hits_) {
55  setUseMap(false);
57  }
58 
59 #ifdef EDM_ML_DEBUG
60  edm::LogVerbatim("HFNSim")<< "**************************************************"
61  << "\n"
62  << "* *"
63  << "\n"
64  << "* Constructing a HFNoseSD with name " << name << "\n"
65  << "* *"
66  << "\n"
67  << "**************************************************";
68 #endif
69  edm::LogVerbatim("HFNSim") << "HFNoseSD:: Threshold for storing hits: "
70  << eminHit_ << " for " << name;
71  edm::LogVerbatim("HFNSim") << "Flag for storing individual Geant4 Hits "
72  << storeAllG4Hits_;
73  edm::LogVerbatim("HFNSim") << "Fiducial volume cut with cut from eta/phi "
74  << "boundary " << fiducialCut_ << " at "
76  edm::LogVerbatim("HFNSim") << "Reject MosueBite Flag: " << rejectMB_
77  << " cuts along " << angles_.size() << " axes: "
78  << angles_[0] << ", " << angles_[1];
79 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
double eminHit_
Definition: HFNoseSD.h:50
std::unique_ptr< HFNoseNumberingScheme > numberingScheme_
Definition: HFNoseSD.h:46
void setNumberCheckedHits(int val)
Definition: CaloSD.h:111
int cornerMinMask_
Definition: HFNoseSD.h:52
bool storeAllG4Hits_
Definition: HFNoseSD.h:53
int levelT1_
Definition: HFNoseSD.h:52
bool fiducialCut_
Definition: HFNoseSD.h:54
double distanceFromEdge_
Definition: HFNoseSD.h:51
bool rejectMB_
Definition: HFNoseSD.h:54
void setUseMap(bool val)
Definition: CaloSD.h:100
bool waferRot_
Definition: HFNoseSD.h:54
const double MeV
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
const double tan30deg_
Definition: HFNoseSD.h:55
CaloSD(const std::string &aSDname, const DDCompactView &cpv, const SensitiveDetectorCatalog &clg, edm::ParameterSet const &p, const SimTrackManager *, float timeSlice=1., bool ignoreTkID=false)
Definition: CaloSD.cc:28
int levelT2_
Definition: HFNoseSD.h:52
const HGCalDDDConstants * hgcons_
Definition: HFNoseSD.h:45
std::string nameX_
Definition: HFNoseSD.h:48
std::unique_ptr< HGCMouseBite > mouseBite_
Definition: HFNoseSD.h:47
std::vector< double > angles_
Definition: HFNoseSD.h:56
double slopeMin_
Definition: HFNoseSD.h:50
HFNoseSD::~HFNoseSD ( )
overridedefault

Member Function Documentation

bool HFNoseSD::filterHit ( CaloG4Hit aHit,
double  time 
)
overrideprotectedvirtual

Reimplemented from CaloSD.

Definition at line 223 of file HFNoseSD.cc.

References eminHit_, CaloG4Hit::getEnergyDeposit(), and CaloSD::tmaxHit.

223  {
224  return ((time <= tmaxHit) && (aHit->getEnergyDeposit() > eminHit_));
225 }
double eminHit_
Definition: HFNoseSD.h:50
double tmaxHit
Definition: CaloSD.h:134
double getEnergyDeposit() const
Definition: CaloG4Hit.h:81
double HFNoseSD::getEnergyDeposit ( const G4Step *  aStep)
overrideprotectedvirtual

Reimplemented from CaloSD.

Definition at line 81 of file HFNoseSD.cc.

References funct::abs(), CaloSD::getResponseWt(), alignCSCRings::r, slopeMin_, weight_, and z.

81  {
82 
83  double r = aStep->GetPreStepPoint()->GetPosition().perp();
84  double z = std::abs(aStep->GetPreStepPoint()->GetPosition().z());
85 #ifdef EDM_ML_DEBUG
86  G4int parCode = aStep->GetTrack()->GetDefinition()->GetPDGEncoding();
87  G4String parName = aStep->GetTrack()->GetDefinition()->GetParticleName();
88  G4LogicalVolume* lv =
89  aStep->GetPreStepPoint()->GetPhysicalVolume()->GetLogicalVolume();
90  edm::LogVerbatim("HFNSim") << "HFNoseSD: Hit from standard path from "
91  << lv->GetName() << " for Track "
92  << aStep->GetTrack()->GetTrackID() << " ("
93  << parCode << ":" << parName << ") R = " << r
94  << " Z = " << z << " slope = " << r/z << ":"
95  << slopeMin_;
96 #endif
97  // Apply fiducial cut
98  if (r < z*slopeMin_) {
99 #ifdef EDM_ML_DEBUG
100  edm::LogVerbatim("HFNSim") << "HFNoseSD: Fiducial Volume cut";
101 #endif
102  return 0.0;
103  }
104 
105  double wt1 = getResponseWt(aStep->GetTrack());
106  double wt2 = aStep->GetTrack()->GetWeight();
107  double destep = weight_*wt1*(aStep->GetTotalEnergyDeposit());
108  if (wt2 > 0) destep *= wt2;
109 #ifdef EDM_ML_DEBUG
110  edm::LogVerbatim("HFNSim") << "HFNoseSD: weights= " << weight_ << ":"
111  << wt1 << ":" << wt2 << " Total weight "
112  << weight_*wt1*wt2 << " deStep: "
113  << aStep->GetTotalEnergyDeposit()
114  << ":" <<destep;
115 #endif
116  return destep;
117 }
double weight_
Definition: HFNoseSD.h:50
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double getResponseWt(const G4Track *)
Definition: CaloSD.cc:652
double slopeMin_
Definition: HFNoseSD.h:50
void HFNoseSD::initRun ( )
overrideprotectedvirtual

Reimplemented from CaloSD.

Definition at line 220 of file HFNoseSD.cc.

220  {
221 }
bool HFNoseSD::isItinFidVolume ( const G4ThreeVector &  pos)
private

Definition at line 237 of file HFNoseSD.cc.

References distanceFromEdge_, HGCalDDDConstants::distFromEdgeHex(), fiducialCut_, and hgcons_.

237  {
238  if (fiducialCut_) {
239  return (hgcons_->distFromEdgeHex(pos.x(),pos.y(),pos.z()) > distanceFromEdge_);
240  } else {
241  return true;
242  }
243 }
bool fiducialCut_
Definition: HFNoseSD.h:54
double distanceFromEdge_
Definition: HFNoseSD.h:51
const HGCalDDDConstants * hgcons_
Definition: HFNoseSD.h:45
double distFromEdgeHex(double x, double y, double z) const
uint32_t HFNoseSD::setDetUnitId ( const G4Step *  step)
overridevirtual

Implements CaloSD.

Definition at line 119 of file HFNoseSD.cc.

References TauDecayModes::dec, triggerObjects_cff::id, levelT1_, levelT2_, mouseBite_, rejectMB_, and HFNoseDetId::waferUV().

119  {
120 
121  const G4StepPoint* preStepPoint = aStep->GetPreStepPoint();
122  const G4VTouchable* touch = preStepPoint->GetTouchable();
123 
124  //determine the exact position in global coordinates in the mass geometry
125  G4ThreeVector hitPoint = preStepPoint->GetPosition();
126  float globalZ = touch->GetTranslation(0).z();
127  int iz( globalZ>0 ? 1 : -1);
128 
129  int layer, module, cell;
130  if ((touch->GetHistoryDepth() == levelT1_) ||
131  (touch->GetHistoryDepth() == levelT2_)) {
132  layer = touch->GetReplicaNumber(0);
133  module = -1;
134  cell = -1;
135 #ifdef EDM_ML_DEBUG
136  edm::LogVerbatim("HFNSim") << "DepthsTop: " << touch->GetHistoryDepth()
137  << ":" << levelT1_ << ":" << levelT2_
138  << " name " << touch->GetVolume(0)->GetName()
139  << " layer:module:cell " << layer << ":"
140  << module << ":" << cell;
141 #endif
142  } else {
143  layer = touch->GetReplicaNumber(3);
144  module = touch->GetReplicaNumber(2);
145  cell = touch->GetReplicaNumber(1);
146 #ifdef EDM_ML_DEBUG
147  edm::LogVerbatim("HFNSim") << "DepthsInside: " << touch->GetHistoryDepth()
148  << " name " << touch->GetVolume(0)->GetName()
149  << " layer:module:cell " << layer << ":"
150  << module << ":" << cell;
151 #endif
152  }
153 #ifdef EDM_ML_DEBUG
154  G4Material* mat = aStep->GetPreStepPoint()->GetMaterial();
155  edm::LogVerbatim("HFNSim") << "Depths: " << touch->GetHistoryDepth()
156  << " name " << touch->GetVolume(0)->GetName()
157  << ":" << touch->GetReplicaNumber(0) << " "
158  << touch->GetVolume(1)->GetName()
159  << ":" << touch->GetReplicaNumber(1) << " "
160  << touch->GetVolume(2)->GetName()
161  << ":" << touch->GetReplicaNumber(2) << " "
162  << touch->GetVolume(3)->GetName()
163  << ":" << touch->GetReplicaNumber(3) << " "
164  << touch->GetVolume(4)->GetName()
165  << ":" << touch->GetReplicaNumber(4) << " "
166  << " layer:module:cell " << layer << ":"
167  << module << ":" << cell << " Material "
168  << mat->GetName() << ":" << mat->GetRadlen();
169 #endif
170  // The following statement should be examined later before elimination
171  if (aStep->GetPreStepPoint()->GetMaterial()->GetRadlen() > 100000.) return 0;
172 
173  uint32_t id = setDetUnitId (layer, module, cell, iz, hitPoint);
174  if (rejectMB_ && id != 0) {
175  auto uv = HFNoseDetId(id).waferUV();
176 #ifdef EDM_ML_DEBUG
177  edm::LogVerbatim("HFNSim") << "ID " << std::hex << id << std::dec
178  << " " << HFNoseDetId(id);
179 #endif
180  if (mouseBite_->exclude(hitPoint, iz, uv.first, uv.second)) {
181  id = 0;
182 #ifdef EDM_ML_DEBUG
183  edm::LogVerbatim("HFNSim") << "Rejected by mousebite cutoff *****";
184 #endif
185  }
186  }
187  return id;
188 }
int levelT1_
Definition: HFNoseSD.h:52
std::pair< int, int > waferUV() const
Definition: HFNoseDetId.h:79
uint32_t setDetUnitId(const G4Step *step) override
Definition: HFNoseSD.cc:119
bool rejectMB_
Definition: HFNoseSD.h:54
int levelT2_
Definition: HFNoseSD.h:52
std::unique_ptr< HGCMouseBite > mouseBite_
Definition: HFNoseSD.h:47
Definition: vlib.h:208
uint32_t HFNoseSD::setDetUnitId ( int  layer,
int  module,
int  cell,
int  iz,
G4ThreeVector &  pos 
)
private

Definition at line 227 of file HFNoseSD.cc.

References cornerMinMask_, hgcons_, triggerObjects_cff::id, HGCalDDDConstants::maskCell(), numberingScheme_, and weight_.

228  {
229  uint32_t id = numberingScheme_ ?
230  numberingScheme_->getUnitID(layer, module, cell, iz, pos, weight_) : 0;
231  if (cornerMinMask_ > 2) {
232  if (hgcons_->maskCell(DetId(id), cornerMinMask_)) id = 0;
233  }
234  return id;
235 }
std::unique_ptr< HFNoseNumberingScheme > numberingScheme_
Definition: HFNoseSD.h:46
int cornerMinMask_
Definition: HFNoseSD.h:52
double weight_
Definition: HFNoseSD.h:50
Definition: DetId.h:18
const HGCalDDDConstants * hgcons_
Definition: HFNoseSD.h:45
bool maskCell(const DetId &id, int corners) const
Definition: vlib.h:208
void HFNoseSD::update ( const BeginOfJob )
overrideprotectedvirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfJob * >.

Definition at line 190 of file HFNoseSD.cc.

References angles_, Exception, geom_mode_, HGCalDDDConstants::geomMode(), edm::EventSetup::get(), hgcons_, levelT1_, levelT2_, HGCalDDDConstants::levelTop(), HGCalDDDConstants::minSlope(), HGCalDDDConstants::mouseBite(), mouseBite_, mouseBiteCut_, nameX_, numberingScheme_, rejectMB_, slopeMin_, tan30deg_, waferRot_, and HGCalDDDConstants::waferSize().

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

190  {
191 
192  const edm::EventSetup* es = (*job)();
194  es->get<IdealGeometryRecord>().get(nameX_,hdc);
195  if (hdc.isValid()) {
196  hgcons_ = hdc.product();
199  levelT1_ = hgcons_->levelTop(0);
200  levelT2_ = hgcons_->levelTop(1);
201  double waferSize = hgcons_->waferSize(false);
202  double mouseBite = hgcons_->mouseBite(false);
203  mouseBiteCut_ = waferSize*tan30deg_ - mouseBite;
204 #ifdef EDM_ML_DEBUG
205  edm::LogVerbatim("HFNSim") << "HFNoseSD::Initialized with mode "
206  << geom_mode_ << " Slope cut " << slopeMin_
207  << " top Level " << levelT1_ << ":" << levelT2_
208  << " wafer " << waferSize << ":" << mouseBite;
209 #endif
210 
212  if (rejectMB_)
214  waferRot_));
215  } else {
216  throw cms::Exception("Unknown", "HFNoseSD") << "Cannot find HGCalDDDConstants for " << nameX_ << "\n";
217  }
218 }
std::unique_ptr< HFNoseNumberingScheme > numberingScheme_
Definition: HFNoseSD.h:46
int levelT1_
Definition: HFNoseSD.h:52
double mouseBiteCut_
Definition: HFNoseSD.h:51
bool rejectMB_
Definition: HFNoseSD.h:54
bool waferRot_
Definition: HFNoseSD.h:54
HGCalGeometryMode::GeometryMode geom_mode_
Definition: HFNoseSD.h:49
double mouseBite(bool reco) const
double minSlope() const
const double tan30deg_
Definition: HFNoseSD.h:55
HGCalGeometryMode::GeometryMode geomMode() const
double waferSize(bool reco) const
int levelT2_
Definition: HFNoseSD.h:52
const HGCalDDDConstants * hgcons_
Definition: HFNoseSD.h:45
std::string nameX_
Definition: HFNoseSD.h:48
T get() const
Definition: EventSetup.h:68
std::unique_ptr< HGCMouseBite > mouseBite_
Definition: HFNoseSD.h:47
int levelTop(int ind=0) const
std::vector< double > angles_
Definition: HFNoseSD.h:56
double slopeMin_
Definition: HFNoseSD.h:50

Member Data Documentation

std::vector<double> HFNoseSD::angles_
private

Definition at line 56 of file HFNoseSD.h.

Referenced by HFNoseSD(), and update().

int HFNoseSD::cornerMinMask_
private

Definition at line 52 of file HFNoseSD.h.

Referenced by HFNoseSD(), and setDetUnitId().

double HFNoseSD::distanceFromEdge_
private

Definition at line 51 of file HFNoseSD.h.

Referenced by HFNoseSD(), and isItinFidVolume().

double HFNoseSD::eminHit_
private

Definition at line 50 of file HFNoseSD.h.

Referenced by filterHit(), and HFNoseSD().

bool HFNoseSD::fiducialCut_
private

Definition at line 54 of file HFNoseSD.h.

Referenced by HFNoseSD(), and isItinFidVolume().

HGCalGeometryMode::GeometryMode HFNoseSD::geom_mode_
private

Definition at line 49 of file HFNoseSD.h.

Referenced by update().

const HGCalDDDConstants* HFNoseSD::hgcons_
private

Definition at line 45 of file HFNoseSD.h.

Referenced by isItinFidVolume(), setDetUnitId(), and update().

int HFNoseSD::levelT1_
private

Definition at line 52 of file HFNoseSD.h.

Referenced by setDetUnitId(), and update().

int HFNoseSD::levelT2_
private

Definition at line 52 of file HFNoseSD.h.

Referenced by setDetUnitId(), and update().

std::unique_ptr<HGCMouseBite> HFNoseSD::mouseBite_
private

Definition at line 47 of file HFNoseSD.h.

Referenced by HFNoseSD(), setDetUnitId(), and update().

double HFNoseSD::mouseBiteCut_
private

Definition at line 51 of file HFNoseSD.h.

Referenced by update().

std::string HFNoseSD::nameX_
private

Definition at line 48 of file HFNoseSD.h.

Referenced by HFNoseSD(), and update().

std::unique_ptr<HFNoseNumberingScheme> HFNoseSD::numberingScheme_
private

Definition at line 46 of file HFNoseSD.h.

Referenced by HFNoseSD(), setDetUnitId(), and update().

bool HFNoseSD::rejectMB_
private

Definition at line 54 of file HFNoseSD.h.

Referenced by HFNoseSD(), setDetUnitId(), and update().

double HFNoseSD::slopeMin_
private

Definition at line 50 of file HFNoseSD.h.

Referenced by getEnergyDeposit(), and update().

bool HFNoseSD::storeAllG4Hits_
private

Definition at line 53 of file HFNoseSD.h.

Referenced by HFNoseSD().

const double HFNoseSD::tan30deg_
private

Definition at line 55 of file HFNoseSD.h.

Referenced by update().

bool HFNoseSD::waferRot_
private

Definition at line 54 of file HFNoseSD.h.

Referenced by HFNoseSD(), and update().

double HFNoseSD::weight_
private

Definition at line 50 of file HFNoseSD.h.

Referenced by getEnergyDeposit(), and setDetUnitId().