CMS 3D CMS Logo

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

#include <Bcm1fSD.h>

Inheritance diagram for Bcm1fSD:
TimingSD SensitiveTkDetector Observer< const BeginOfEvent *> SensitiveDetector

Public Member Functions

 Bcm1fSD (const std::string &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
 
uint32_t setDetUnitId (const G4Step *) override
 
 ~Bcm1fSD () override
 
- Public Member Functions inherited from TimingSD
void clearHits () override
 
void EndOfEvent (G4HCofThisEvent *eventHC) override
 
void fillHits (edm::PSimHitContainer &, const std::string &) override
 
void Initialize (G4HCofThisEvent *HCE) override
 
void PrintAll () override
 
bool ProcessHits (G4Step *, G4TouchableHistory *) override
 
 TimingSD (const std::string &, const SensitiveDetectorCatalog &, const SimTrackManager *)
 
 ~TimingSD () override
 
- Public Member Functions inherited from SensitiveTkDetector
 SensitiveTkDetector (const std::string &iname, const SensitiveDetectorCatalog &clg)
 
- 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 SensitiveDetectorCatalog &, bool calo, const std::string &newcollname="")
 
 ~SensitiveDetector () override
 
- Public Member Functions inherited from Observer< const BeginOfEvent *>
 Observer ()
 
void slotForUpdate (const BeginOfEvent * iT)
 
virtual ~Observer ()
 

Protected Member Functions

bool checkHit (const G4Step *, BscG4Hit *) override
 
- Protected Member Functions inherited from TimingSD
const G4ThreeVector & getGlobalEntryPoint () const
 
const G4ThreeVector & getLocalEntryPoint () const
 
virtual int getTrackID (const G4Track *)
 
void setCuts (double eCut, double historyCut)
 
void setTimeFactor (double)
 
void setToLocal (const G4StepPoint *stepPoint, const G4ThreeVector &globalPoint, G4ThreeVector &localPoint)
 
void update (const BeginOfEvent *) override
 This routine will be called when the appropriate signal arrives. More...
 
- 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 > &)
 

Private Attributes

float energyCut
 
float energyHistoryCut
 

Additional Inherited Members

- Protected Types inherited from SensitiveDetector
enum  coordinates { WorldCoordinates, LocalCoordinates }
 

Detailed Description

Definition at line 13 of file Bcm1fSD.h.

Constructor & Destructor Documentation

◆ Bcm1fSD()

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

Definition at line 32 of file Bcm1fSD.cc.

References energyCut, energyHistoryCut, edm::ParameterSet::getParameter(), AlCaHLTBitMon_ParallelJobs::p, and TimingSD::setCuts().

36  : TimingSD(name, clg, manager) {
37  edm::ParameterSet m_TrackerSD = p.getParameter<edm::ParameterSet>("Bcm1fSD");
38  energyCut =
39  m_TrackerSD.getParameter<double>("EnergyThresholdForPersistencyInGeV") * CLHEP::GeV; //default must be 0.5 (?)
41  m_TrackerSD.getParameter<double>("EnergyThresholdForHistoryInGeV") * CLHEP::GeV; //default must be 0.05 (?)
42 
44 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
void setCuts(double eCut, double historyCut)
Definition: TimingSD.cc:89
float energyHistoryCut
Definition: Bcm1fSD.h:25
TimingSD(const std::string &, const SensitiveDetectorCatalog &, const SimTrackManager *)
Definition: TimingSD.cc:37
float energyCut
Definition: Bcm1fSD.h:24

◆ ~Bcm1fSD()

Bcm1fSD::~Bcm1fSD ( )
override

Definition at line 46 of file Bcm1fSD.cc.

46 {}

Member Function Documentation

◆ checkHit()

bool Bcm1fSD::checkHit ( const G4Step *  ,
BscG4Hit hit 
)
overrideprotectedvirtual

Reimplemented from TimingSD.

Definition at line 83 of file Bcm1fSD.cc.

References ALCARECOEcalPhiSym_cff::float, TimingSD::getLocalEntryPoint(), and mag2().

83  {
84  // 50 micron are allowed between the exit
85  // point of the current hit and the entry point of the new hit
86  static const float tolerance2 = (float)(0.0025 * CLHEP::mm * CLHEP::mm);
87  return ((hit->getExitLocalP() - getLocalEntryPoint()).mag2() < tolerance2);
88 }
const G4ThreeVector & getLocalEntryPoint() const
Definition: TimingSD.h:62
T mag2() const
The vector magnitude squared. Equivalent to vec.dot(vec)

◆ setDetUnitId()

uint32_t Bcm1fSD::setDetUnitId ( const G4Step *  aStep)
overridevirtual

Implements SensitiveDetector.

Definition at line 48 of file Bcm1fSD.cc.

References hgcalTBTopologyTester_cfi::detectorName, hcalRecHitTable_cff::detId, ForwardName::getName(), gammaJetAnalysis_CHSJECs_cff::level, and AlCaHLTBitMon_QueryRunRegistry::string.

48  {
49  uint32_t detId = 0;
50 
51  //Find number of levels
52  const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
53  int level = (touch) ? ((touch->GetHistoryDepth()) + 1) : 0;
54 
55  //Get name and copy numbers
56  if (level > 1) {
57  std::string sensorName = ForwardName::getName(touch->GetVolume(0)->GetName());
58  std::string diamondName = ForwardName::getName(touch->GetVolume(1)->GetName());
59  std::string detectorName = ForwardName::getName(touch->GetVolume(2)->GetName());
60  std::string volumeName = ForwardName::getName(touch->GetVolume(3)->GetName());
61 
62  if (sensorName != "BCM1FSensor") {
63  edm::LogWarning("ForwardSim") << "Bcm1fSD::setDetUnitId -w- Sensor name " << sensorName << " not BCM1FSensor ";
64  }
65  if (detectorName != "BCM1F") {
66  edm::LogWarning("ForwardSim") << " Bcm1fSD::setDetUnitId -w- Detector name " << detectorName << " not BCM1F ";
67  }
68  int sensorNo = touch->GetReplicaNumber(0);
69  int diamondNo = touch->GetReplicaNumber(1);
70  int volumeNo = touch->GetReplicaNumber(3);
71 
72  // Detector ID definition
73  // detId = XYYZ
74  // X = volume, 1: +Z, 2: -Z
75  // YY = diamond, 01-12, 12: phi = 90 deg, numbering clockwise when looking from the IP
76  // Z = sensor, 1 or 2, clockwise when looking from the IP
77 
78  detId = 1000 * volumeNo + 10 * diamondNo + sensorNo;
79  }
80  return detId;
81 }
std::string getName(const G4String &)
Definition: ForwardName.cc:3
Log< level::Warning, false > LogWarning

Member Data Documentation

◆ energyCut

float Bcm1fSD::energyCut
private

Definition at line 24 of file Bcm1fSD.h.

Referenced by Bcm1fSD().

◆ energyHistoryCut

float Bcm1fSD::energyHistoryCut
private

Definition at line 25 of file Bcm1fSD.h.

Referenced by Bcm1fSD().