CMS 3D CMS Logo

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

#include <HGCSD.h>

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

Public Member Functions

 HGCSD (const std::string &, const DDCompactView &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
 
uint32_t setDetUnitId (const G4Step *step) override
 
 ~HGCSD () 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
 
bool isCaloSD () const
 
 SensitiveDetector (const std::string &iname, const DDCompactView &cpv, const SensitiveDetectorCatalog &, edm::ParameterSet const &p, bool calo)
 
 ~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

void endEvent () override
 
bool filterHit (CaloG4Hit *, double) override
 
double getEnergyDeposit (const G4Step *) override
 
void initEvent (const BeginOfEvent *) 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 *)
 
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 *)
 
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 (ForwardSubdetector &, int, int, int, int, G4ThreeVector &)
 

Private Attributes

std::vector< double > angles_
 
double eminHit_
 
HGCalGeometryMode::GeometryMode geom_mode_
 
int levelT_
 
std::unique_ptr< HGCMouseBitemouseBite_
 
double mouseBiteCut_
 
ForwardSubdetector myFwdSubdet_
 
std::string nameX_
 
std::unique_ptr< HGCNumberingSchemenumberingScheme_
 
bool rejectMB_
 
double slopeMin_
 
bool storeAllG4Hits_
 
std::vector< double > t_Angle_
 
std::vector< double > t_dEStep1_
 
std::vector< double > t_dEStep2_
 
uint32_t t_EventID_
 
std::vector< int > t_Layer_
 
std::vector< int > t_Parcode_
 
std::vector< double > t_TrackE_
 
TTree * tree_
 
bool waferRot_
 

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 25 of file HGCSD.h.

Constructor & Destructor Documentation

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

Definition at line 39 of file HGCSD.cc.

References angles_, CaloSD::eminHit, eminHit_, ForwardEmpty, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HGCEE, HGCHEB, HGCHEF, MeV, mouseBite_, mouseBiteCut_, myFwdSubdet_, dataset::name, nameX_, numberingScheme_, rejectMB_, CaloSD::setNumberCheckedHits(), CaloSD::setUseMap(), storeAllG4Hits_, funct::tan(), and waferRot_.

41  :
42  CaloSD(name, cpv, clg, p, manager,
43  (float)(p.getParameter<edm::ParameterSet>("HGCSD").getParameter<double>("TimeSliceUnit")),
44  p.getParameter<edm::ParameterSet>("HGCSD").getParameter<bool>("IgnoreTrackID")),
45  slopeMin_(0), levelT_(99), tree_(nullptr) {
46 
47  numberingScheme_.reset(nullptr); mouseBite_.reset(nullptr);
48 
49  edm::ParameterSet m_HGC = p.getParameter<edm::ParameterSet>("HGCSD");
50  eminHit_ = m_HGC.getParameter<double>("EminHit")*CLHEP::MeV;
51  storeAllG4Hits_ = m_HGC.getParameter<bool>("StoreAllG4Hits");
52  rejectMB_ = m_HGC.getParameter<bool>("RejectMouseBite");
53  waferRot_ = m_HGC.getParameter<bool>("RotatedWafer");
54  angles_ = m_HGC.getUntrackedParameter<std::vector<double>>("WaferAngles");
55  double waferSize = m_HGC.getUntrackedParameter<double>("WaferSize")*CLHEP::mm;
56  double mouseBite = m_HGC.getUntrackedParameter<double>("MouseBite")*CLHEP::mm;
57  mouseBiteCut_ = waferSize*tan(30.0*CLHEP::deg) - mouseBite;
58 
59  if(storeAllG4Hits_) {
60  setUseMap(false);
62  }
63  //this is defined in the hgcsens.xml
64  G4String myName = name;
66  nameX_ = "HGCal";
67  if (myName.find("HitsEE")!=std::string::npos) {
69  nameX_ = "HGCalEESensitive";
70  } else if (myName.find("HitsHEfront")!=std::string::npos) {
72  nameX_ = "HGCalHESiliconSensitive";
73  } else if (myName.find("HitsHEback")!=std::string::npos) {
75  nameX_ = "HGCalHEScintillatorSensitive";
76  }
77 
78 #ifdef EDM_ML_DEBUG
79  edm::LogVerbatim("HGCSim")<< "**************************************************"
80  << "\n"
81  << "* *"
82  << "\n"
83  << "* Constructing a HGCSD with name " << name << "\n"
84  << "* *"
85  << "\n"
86  << "**************************************************";
87 #endif
88  edm::LogVerbatim("HGCSim") << "HGCSD:: Threshold for storing hits: "
89  << eminHit << " for " << nameX_ << " subdet "
90  << myFwdSubdet_;
91  edm::LogVerbatim("HGCSim") << "Flag for storing individual Geant4 Hits "
92  << storeAllG4Hits_;
93  edm::LogVerbatim("HGCSim") << "Reject MosueBite Flag: " << rejectMB_
94  << " Size of wafer " << waferSize
95  << " Mouse Bite " << mouseBite << ":"
96  << mouseBiteCut_ << " along " << angles_.size()
97  << " axes";
98 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
void setNumberCheckedHits(int val)
Definition: CaloSD.h:111
int levelT_
Definition: HGCSD.h:59
double mouseBiteCut_
Definition: HGCSD.h:61
std::string nameX_
Definition: HGCSD.h:52
std::vector< double > angles_
Definition: HGCSD.h:62
bool storeAllG4Hits_
Definition: HGCSD.h:60
bool waferRot_
Definition: HGCSD.h:60
void setUseMap(bool val)
Definition: CaloSD.h:100
double eminHit
Definition: CaloSD.h:134
const double MeV
double slopeMin_
Definition: HGCSD.h:58
std::unique_ptr< HGCMouseBite > mouseBite_
Definition: HGCSD.h:55
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
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
std::unique_ptr< HGCNumberingScheme > numberingScheme_
Definition: HGCSD.h:54
double eminHit_
Definition: HGCSD.h:56
bool rejectMB_
Definition: HGCSD.h:60
TTree * tree_
Definition: HGCSD.h:64
ForwardSubdetector myFwdSubdet_
Definition: HGCSD.h:57
HGCSD::~HGCSD ( )
overridedefault

Member Function Documentation

void HGCSD::endEvent ( )
overrideprotectedvirtual

Reimplemented from CaloSD.

Definition at line 264 of file HGCSD.cc.

References tree_.

264  {
265 #ifdef plotDebug
266  if (tree_) tree_->Fill();
267 #endif
268 }
TTree * tree_
Definition: HGCSD.h:64
bool HGCSD::filterHit ( CaloG4Hit aHit,
double  time 
)
overrideprotectedvirtual

Reimplemented from CaloSD.

Definition at line 270 of file HGCSD.cc.

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

270  {
271  return ((time <= tmaxHit) && (aHit->getEnergyDeposit() > eminHit_));
272 }
double tmaxHit
Definition: CaloSD.h:134
double eminHit_
Definition: HGCSD.h:56
double getEnergyDeposit() const
Definition: CaloG4Hit.h:81
double HGCSD::getEnergyDeposit ( const G4Step *  aStep)
overrideprotectedvirtual

Reimplemented from CaloSD.

Definition at line 100 of file HGCSD.cc.

References funct::abs(), angle(), CaloSD::getResponseWt(), levelT_, alignCSCRings::r, slopeMin_, t_Angle_, t_dEStep1_, t_dEStep2_, t_Layer_, t_Parcode_, t_TrackE_, and z.

100  {
101 
102  double r = aStep->GetPreStepPoint()->GetPosition().perp();
103  double z = std::abs(aStep->GetPreStepPoint()->GetPosition().z());
104 
105 #ifdef EDM_ML_DEBUG
106  G4int parCode = aStep->GetTrack()->GetDefinition()->GetPDGEncoding();
107  G4LogicalVolume* lv =
108  aStep->GetPreStepPoint()->GetPhysicalVolume()->GetLogicalVolume();
109  edm::LogVerbatim("HGCSim") << "HGCSD: Hit from standard path from "
110  << lv->GetName() << " for Track "
111  << aStep->GetTrack()->GetTrackID() << " ("
112  << aStep->GetTrack()->GetDefinition()->GetParticleName()
113  << ") R = " << r << " Z = "
114  << z << " slope = " << r/z << ":" << slopeMin_;
115 #endif
116 
117  // Apply fiductial volume
118  if (r < z*slopeMin_) { return 0.0; }
119 
120  double wt1 = getResponseWt(aStep->GetTrack());
121  double wt2 = aStep->GetTrack()->GetWeight();
122  double destep = wt1*aStep->GetTotalEnergyDeposit();
123  if (wt2 > 0) destep *= wt2;
124 
125 #ifdef plotDebug
126  const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
127  G4double tmptrackE = aStep->GetTrack()->GetKineticEnergy();
128  G4int parCode = aStep->GetTrack()->GetDefinition()->GetPDGEncoding();
129  G4double angle = (aStep->GetTrack()->GetMomentumDirection().theta())/CLHEP::deg;
130  G4int layer = ((touch->GetHistoryDepth() == levelT_) ?
131  touch->GetReplicaNumber(0) : touch->GetReplicaNumber(2));
132  G4int ilayer = (layer-1)/3;
133  if (aStep->GetTotalEnergyDeposit() > 0) {
134  t_Layer_.emplace_back(ilayer);
135  t_Parcode_.emplace_back(parCode);
136  t_dEStep1_.emplace_back(aStep->GetTotalEnergyDeposit());
137  t_dEStep2_.emplace_back(destep);
138  t_TrackE_.emplace_back(tmptrackE);
139  t_Angle_.emplace_back(angle);
140  }
141 #endif
142 
143  return destep;
144 }
std::vector< double > t_TrackE_
Definition: HGCSD.h:67
std::vector< double > t_dEStep1_
Definition: HGCSD.h:67
std::vector< double > t_dEStep2_
Definition: HGCSD.h:67
int levelT_
Definition: HGCSD.h:59
std::vector< int > t_Layer_
Definition: HGCSD.h:66
double slopeMin_
Definition: HGCSD.h:58
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::vector< int > t_Parcode_
Definition: HGCSD.h:66
std::vector< double > t_Angle_
Definition: HGCSD.h:68
double getResponseWt(const G4Track *)
Definition: CaloSD.cc:652
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11
void HGCSD::initEvent ( const BeginOfEvent g4Event)
overrideprotectedvirtual

Reimplemented from CaloSD.

Definition at line 251 of file HGCSD.cc.

References t_Angle_, t_dEStep1_, t_dEStep2_, t_EventID_, t_Layer_, t_Parcode_, and t_TrackE_.

251  {
252  const G4Event* evt = (*g4Event)();
253  t_EventID_ = evt->GetEventID();
254 #ifdef plotDebug
255  t_Layer_.clear();
256  t_Parcode_.clear();
257  t_dEStep1_.clear();
258  t_dEStep2_.clear();
259  t_TrackE_.clear();
260  t_Angle_.clear();
261 #endif
262 }
std::vector< double > t_TrackE_
Definition: HGCSD.h:67
std::vector< double > t_dEStep1_
Definition: HGCSD.h:67
std::vector< double > t_dEStep2_
Definition: HGCSD.h:67
std::vector< int > t_Layer_
Definition: HGCSD.h:66
std::vector< int > t_Parcode_
Definition: HGCSD.h:66
std::vector< double > t_Angle_
Definition: HGCSD.h:68
uint32_t t_EventID_
Definition: HGCSD.h:65
void HGCSD::initRun ( )
overrideprotectedvirtual

Reimplemented from CaloSD.

Definition at line 235 of file HGCSD.cc.

References edm::Service< T >::isAvailable(), TFileService::make(), t_Angle_, t_dEStep1_, t_dEStep2_, t_EventID_, t_Layer_, t_Parcode_, t_TrackE_, compare::tfile, and tree_.

235  {
236 #ifdef plotDebug
238  if (tfile.isAvailable()) {
239  tree_ = tfile->make<TTree>("TreeHGCSD", "TreeHGCSD");
240  tree_->Branch("EventID", &t_EventID_);
241  tree_->Branch("Layer", &t_Layer_);
242  tree_->Branch("ParticleCode", &t_Parcode_);
243  tree_->Branch("dEStepOriginal", &t_dEStep1_);
244  tree_->Branch("dEStepWeighted", &t_dEStep2_);
245  tree_->Branch("TrackEnergy", &t_TrackE_);
246  tree_->Branch("ThetaAngle", &t_Angle_);
247  }
248 #endif
249 }
std::vector< double > t_TrackE_
Definition: HGCSD.h:67
std::vector< double > t_dEStep1_
Definition: HGCSD.h:67
std::vector< double > t_dEStep2_
Definition: HGCSD.h:67
std::vector< int > t_Layer_
Definition: HGCSD.h:66
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
bool isAvailable() const
Definition: Service.h:46
std::vector< int > t_Parcode_
Definition: HGCSD.h:66
std::vector< double > t_Angle_
Definition: HGCSD.h:68
TTree * tree_
Definition: HGCSD.h:64
uint32_t t_EventID_
Definition: HGCSD.h:65
bool HGCSD::isItinFidVolume ( const G4ThreeVector &  )
inlineprivate

Definition at line 50 of file HGCSD.h.

50 {return true;}
uint32_t HGCSD::setDetUnitId ( const G4Step *  step)
overridevirtual

Implements CaloSD.

Definition at line 146 of file HGCSD.cc.

References TauDecayModes::dec, triggerObjects_cff::id, levelT_, mouseBite_, myFwdSubdet_, rejectMB_, HGCalTestNumbering::unpackHexagonIndex(), and z.

146  {
147 
148  const G4StepPoint* preStepPoint = aStep->GetPreStepPoint();
149  const G4VTouchable* touch = preStepPoint->GetTouchable();
150 
151  //determine the exact position in global coordinates in the mass geometry
152  G4ThreeVector hitPoint = preStepPoint->GetPosition();
153  float globalZ=touch->GetTranslation(0).z();
154  int iz( globalZ>0 ? 1 : -1);
155 
156  //convert to local coordinates (=local to the current volume):
157  G4ThreeVector localpos = touch->GetHistory()->GetTopTransform().TransformPoint(hitPoint);
158 
159  //get the det unit id with
161 
162  int layer, module, cell;
163  if (touch->GetHistoryDepth() == levelT_) {
164  layer = touch->GetReplicaNumber(0);
165  module = -1;
166  cell = -1;
167 #ifdef EDM_ML_DEBUG
168  edm::LogVerbatim("HGCSim") << "Depths: " << touch->GetHistoryDepth()
169  << " name " << touch->GetVolume(0)->GetName()
170  << " layer:module:cell " << layer << ":"
171  << module << ":" << cell;
172 #endif
173  } else {
174  layer = touch->GetReplicaNumber(2);
175  module = touch->GetReplicaNumber(1);
176  cell = touch->GetReplicaNumber(0);
177  }
178 #ifdef EDM_ML_DEBUG
179  edm::LogVerbatim("HGCSim") << "Depths: " << touch->GetHistoryDepth()
180  << " name " << touch->GetVolume(0)->GetName()
181  << ":" << touch->GetReplicaNumber(0) << " "
182  << touch->GetVolume(1)->GetName()
183  << ":" << touch->GetReplicaNumber(1) << " "
184  << touch->GetVolume(2)->GetName()
185  << ":" << touch->GetReplicaNumber(2) << " "
186  << " layer:module:cell " << layer << ":"
187  << module << ":" << cell <<" Material "
188  << mat->GetName() << ":"
189  << aStep->GetPreStepPoint()->GetMaterial()->GetRadlen();
190 #endif
191  // The following statement should be examined later before elimination
192  // VI: this is likely a check if media is vacuum - not needed
193  if (aStep->GetPreStepPoint()->GetMaterial()->GetRadlen() > 100000.) return 0;
194 
195  uint32_t id = setDetUnitId (subdet, layer, module, cell, iz, localpos);
196  if (rejectMB_ && id != 0) {
197  int det, z, lay, wafer, type, ic;
198  HGCalTestNumbering::unpackHexagonIndex(id, det, z, lay, wafer, type, ic);
199 #ifdef EDM_ML_DEBUG
200  edm::LogVerbatim("HGCSim") << "ID " << std::hex << id << std::dec
201  << " Decode " << det << ":" << z << ":" << lay
202  << ":" << wafer << ":" << type << ":" << ic;
203 #endif
204  if (mouseBite_->exclude(hitPoint, z, wafer, 0)) id = 0;
205  }
206  return id;
207 }
type
Definition: HCALResponse.h:21
int levelT_
Definition: HGCSD.h:59
ForwardSubdetector
std::unique_ptr< HGCMouseBite > mouseBite_
Definition: HGCSD.h:55
bool rejectMB_
Definition: HGCSD.h:60
uint32_t setDetUnitId(const G4Step *step) override
Definition: HGCSD.cc:146
ForwardSubdetector myFwdSubdet_
Definition: HGCSD.h:57
Definition: vlib.h:208
static void unpackHexagonIndex(const uint32_t &idx, int &subdet, int &z, int &lay, int &wafer, int &celltyp, int &cell)
uint32_t HGCSD::setDetUnitId ( ForwardSubdetector subdet,
int  layer,
int  module,
int  cell,
int  iz,
G4ThreeVector &  pos 
)
private

Definition at line 274 of file HGCSD.cc.

References triggerObjects_cff::id, and numberingScheme_.

275  {
276  uint32_t id = numberingScheme_ ?
277  numberingScheme_->getUnitID(subdet, layer, module, cell, iz, pos) : 0;
278  return id;
279 }
std::unique_ptr< HGCNumberingScheme > numberingScheme_
Definition: HGCSD.h:54
Definition: vlib.h:208
void HGCSD::update ( const BeginOfJob )
overrideprotectedvirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfJob * >.

Definition at line 209 of file HGCSD.cc.

References angles_, Exception, geom_mode_, HGCalDDDConstants::geomMode(), edm::EventSetup::get(), levelT_, HGCalDDDConstants::levelTop(), HGCalDDDConstants::minSlope(), mouseBite_, mouseBiteCut_, nameX_, numberingScheme_, rejectMB_, slopeMin_, and waferRot_.

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().

209  {
210 
211  const edm::EventSetup* es = (*job)();
213  es->get<IdealGeometryRecord>().get(nameX_,hdc);
214  if (hdc.isValid()) {
215  const HGCalDDDConstants* hgcons = hdc.product();
216  geom_mode_ = hgcons->geomMode();
217  slopeMin_ = hgcons->minSlope();
218  levelT_ = hgcons->levelTop();
219  numberingScheme_.reset(new HGCNumberingScheme(*hgcons,nameX_));
220  if (rejectMB_) mouseBite_.reset(new HGCMouseBite(*hgcons,angles_,
222  } else {
223  edm::LogError("HGCSim") << "HCalSD : Cannot find HGCalDDDConstants for "
224  << nameX_;
225  throw cms::Exception("Unknown", "HGCSD")
226  << "Cannot find HGCalDDDConstants for " << nameX_ << "\n";
227  }
228 #ifdef EDM_ML_DEBUG
229  edm::LogVerbatim("HGCSim") << "HGCSD::Initialized with mode " << geom_mode_
230  << " Slope cut " << slopeMin_ << " top Level "
231  << levelT_;
232 #endif
233 }
int levelT_
Definition: HGCSD.h:59
double mouseBiteCut_
Definition: HGCSD.h:61
std::string nameX_
Definition: HGCSD.h:52
std::vector< double > angles_
Definition: HGCSD.h:62
bool waferRot_
Definition: HGCSD.h:60
HGCalGeometryMode::GeometryMode geom_mode_
Definition: HGCSD.h:53
double slopeMin_
Definition: HGCSD.h:58
std::unique_ptr< HGCMouseBite > mouseBite_
Definition: HGCSD.h:55
double minSlope() const
HGCalGeometryMode::GeometryMode geomMode() const
std::unique_ptr< HGCNumberingScheme > numberingScheme_
Definition: HGCSD.h:54
bool rejectMB_
Definition: HGCSD.h:60
T get() const
Definition: EventSetup.h:68
int levelTop(int ind=0) const

Member Data Documentation

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

Definition at line 62 of file HGCSD.h.

Referenced by HGCSD(), and update().

double HGCSD::eminHit_
private

Definition at line 56 of file HGCSD.h.

Referenced by filterHit(), and HGCSD().

HGCalGeometryMode::GeometryMode HGCSD::geom_mode_
private

Definition at line 53 of file HGCSD.h.

Referenced by update().

int HGCSD::levelT_
private

Definition at line 59 of file HGCSD.h.

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

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

Definition at line 55 of file HGCSD.h.

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

double HGCSD::mouseBiteCut_
private

Definition at line 61 of file HGCSD.h.

Referenced by HGCSD(), and update().

ForwardSubdetector HGCSD::myFwdSubdet_
private

Definition at line 57 of file HGCSD.h.

Referenced by HGCSD(), and setDetUnitId().

std::string HGCSD::nameX_
private

Definition at line 52 of file HGCSD.h.

Referenced by HGCSD(), and update().

std::unique_ptr<HGCNumberingScheme> HGCSD::numberingScheme_
private

Definition at line 54 of file HGCSD.h.

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

bool HGCSD::rejectMB_
private

Definition at line 60 of file HGCSD.h.

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

double HGCSD::slopeMin_
private

Definition at line 58 of file HGCSD.h.

Referenced by getEnergyDeposit(), and update().

bool HGCSD::storeAllG4Hits_
private

Definition at line 60 of file HGCSD.h.

Referenced by HGCSD().

std::vector<double> HGCSD::t_Angle_
private

Definition at line 68 of file HGCSD.h.

Referenced by getEnergyDeposit(), initEvent(), and initRun().

std::vector<double> HGCSD::t_dEStep1_
private

Definition at line 67 of file HGCSD.h.

Referenced by getEnergyDeposit(), initEvent(), and initRun().

std::vector<double> HGCSD::t_dEStep2_
private

Definition at line 67 of file HGCSD.h.

Referenced by getEnergyDeposit(), initEvent(), and initRun().

uint32_t HGCSD::t_EventID_
private

Definition at line 65 of file HGCSD.h.

Referenced by initEvent(), and initRun().

std::vector<int> HGCSD::t_Layer_
private

Definition at line 66 of file HGCSD.h.

Referenced by getEnergyDeposit(), initEvent(), and initRun().

std::vector<int> HGCSD::t_Parcode_
private

Definition at line 66 of file HGCSD.h.

Referenced by getEnergyDeposit(), initEvent(), and initRun().

std::vector<double> HGCSD::t_TrackE_
private

Definition at line 67 of file HGCSD.h.

Referenced by getEnergyDeposit(), initEvent(), and initRun().

TTree* HGCSD::tree_
private

Definition at line 64 of file HGCSD.h.

Referenced by endEvent(), and initRun().

bool HGCSD::waferRot_
private

Definition at line 60 of file HGCSD.h.

Referenced by HGCSD(), and update().