CMS 3D CMS Logo

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

#include <TotemRPSD.h>

Inheritance diagram for TotemRPSD:
SensitiveTkDetector Observer< const BeginOfEvent * > Observer< const EndOfEvent * > SensitiveDetector

Public Member Functions

void clear () override
 
void DrawAll () override
 
void EndOfEvent (G4HCofThisEvent *eventHC) override
 
void fillHits (edm::PSimHitContainer &, const std::string &) override
 
void Initialize (G4HCofThisEvent *HCE) override
 
void PrintAll () override
 
void printHitInfo ()
 
 TotemRPSD (const std::string &, const edm::EventSetup &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
 
 ~TotemRPSD () override
 
- Public Member Functions inherited from SensitiveTkDetector
 SensitiveTkDetector (const std::string &iname, const edm::EventSetup &es, 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 edm::EventSetup &es, const SensitiveDetectorCatalog &, edm::ParameterSet const &p, bool calo)
 
 ~SensitiveDetector () override
 
- Public Member Functions inherited from Observer< const BeginOfEvent * >
 Observer ()
 
void slotForUpdate (const BeginOfEvent * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const EndOfEvent * >
 Observer ()
 
void slotForUpdate (const EndOfEvent * iT)
 
virtual ~Observer ()
 

Static Public Attributes

static constexpr double rp_garage_position_ = 40.0
 

Private Member Functions

void clearHits () override
 
void createNewHit ()
 
G4bool hitExists ()
 
bool isPrimary (const G4Track *track)
 
bool ProcessHits (G4Step *step, G4TouchableHistory *tHistory) override
 
void resetForNewPrimary ()
 
uint32_t setDetUnitId (const G4Step *step) override
 
void setNumberingScheme (TotemRPVDetectorOrganization *scheme)
 
G4ThreeVector setToLocal (const G4ThreeVector &globalPoint)
 
void stepInfo (const G4Step *aStep)
 
void storeHit (TotemRPG4Hit *)
 
void summarize ()
 
void update (const ::EndOfEvent *) override
 
void update (const BeginOfEvent *) override
 This routine will be called when the appropriate signal arrives. More...
 
void updateHit ()
 

Private Attributes

TotemRPG4HitcurrentHit_
 
G4VPhysicalVolume * currentPV_
 
double Eloss_
 
G4ThreeVector entrancePoint_
 
int eventno_
 
G4ThreeVector exitPoint_
 
G4int hcID_
 
G4ThreeVector hitPoint_
 
double incidentEnergy_
 
G4String name_
 
std::unique_ptr< TotemRPVDetectorOrganizationnumberingScheme_
 
double Pabs_
 
int ParentId_
 
short ParticleType_
 
double PhiAtEntry_
 
G4StepPoint * postStepPoint_
 
G4StepPoint * preStepPoint_
 
G4int primaryID_
 
std::unique_ptr< TrackingSlaveSDslave_
 
TotemRPG4HitCollectiontheHC_
 
G4ThreeVector theLocalEntryPoint_
 
G4ThreeVector theLocalExitPoint_
 
double thePx_
 
double thePy_
 
double thePz_
 
double ThetaAtEntry_
 
G4Track * theTrack_
 
double Tof_
 
G4double tSlice_
 
G4int tSliceID_
 
unsigned int unitID_
 
int verbosity_
 
double Vx_
 
double Vy_
 
double Vz_
 

Static Private Attributes

static constexpr unsigned int maxTotemHits_ = 15000
 

Additional Inherited Members

- Protected Types inherited from SensitiveDetector
enum  coordinates { WorldCoordinates, LocalCoordinates }
 
- 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...
 

Detailed Description

Definition at line 27 of file TotemRPSD.h.

Constructor & Destructor Documentation

◆ TotemRPSD()

TotemRPSD::TotemRPSD ( const std::string &  name_,
const edm::EventSetup es,
const SensitiveDetectorCatalog clg,
edm::ParameterSet const &  p,
const SimTrackManager manager 
)

Definition at line 33 of file TotemRPSD.cc.

38  : SensitiveTkDetector(name_, es, clg, p),
39  numberingScheme_(nullptr),
40  hcID_(-1),
41  theHC_(nullptr),
42  currentHit_(nullptr),
43  theTrack_(nullptr),
44  currentPV_(nullptr),
45  unitID_(0),
46  preStepPoint_(nullptr),
47  postStepPoint_(nullptr),
48  eventno_(0) {
49  collectionName.insert(name_);
50 
51  edm::ParameterSet m_Anal = p.getParameter<edm::ParameterSet>("TotemRPSD");
52  verbosity_ = m_Anal.getParameter<int>("Verbosity");
53 
54  slave_ = std::make_unique<TrackingSlaveSD>(name_);
55 
56  if (name_ == "TotemHitsRP") {
57  numberingScheme_ = std::make_unique<PPSStripNumberingScheme>(3);
58  } else {
59  edm::LogWarning("TotemRP") << "TotemRPSD: ReadoutName not supported\n";
60  }
61 
62  edm::LogInfo("TotemRP") << "TotemRPSD: Instantiation completed";
63 }

References bysipixelclustmulteventfilter_cfi::collectionName, edm::ParameterSet::getParameter(), name_, numberingScheme_, AlCaHLTBitMon_ParallelJobs::p, slave_, and verbosity_.

◆ ~TotemRPSD()

TotemRPSD::~TotemRPSD ( )
override

Definition at line 65 of file TotemRPSD.cc.

65 {}

Member Function Documentation

◆ clear()

void TotemRPSD::clear ( void  )
override

Definition at line 260 of file TotemRPSD.cc.

260 {}

◆ clearHits()

void TotemRPSD::clearHits ( )
overrideprivatevirtual

Implements SensitiveDetector.

Definition at line 287 of file TotemRPSD.cc.

287 { slave_->Initialize(); }

References slave_.

Referenced by update().

◆ createNewHit()

void TotemRPSD::createNewHit ( )
private

Definition at line 190 of file TotemRPSD.cc.

190  {
191  // Protect against creating hits in detectors not inserted
192  double outrangeX = hitPoint_.x();
193  double outrangeY = hitPoint_.y();
194  if (fabs(outrangeX) > rp_garage_position_)
195  return;
196  if (fabs(outrangeY) > rp_garage_position_)
197  return;
198  // end protection
199 
205 
212 
217 
222 
226 
228 }

References currentHit_, Eloss_, exitPoint_, hitPoint_, incidentEnergy_, Pabs_, ParentId_, ParticleType_, PhiAtEntry_, primaryID_, rp_garage_position_, TotemRPG4Hit::setEnergyLoss(), TotemRPG4Hit::setEntry(), TotemRPG4Hit::setExit(), TotemRPG4Hit::setIncidentEnergy(), TotemRPG4Hit::setLocalEntry(), TotemRPG4Hit::setLocalExit(), TotemRPG4Hit::setP(), TotemRPG4Hit::setParentId(), TotemRPG4Hit::setParticleType(), TotemRPG4Hit::setPhiAtEntry(), TotemRPG4Hit::setPx(), TotemRPG4Hit::setPy(), TotemRPG4Hit::setPz(), TotemRPG4Hit::setThetaAtEntry(), TotemRPG4Hit::setTimeSlice(), TotemRPG4Hit::setTof(), TotemRPG4Hit::setTrackID(), TotemRPG4Hit::setUnitID(), TotemRPG4Hit::setVx(), TotemRPG4Hit::setVy(), TotemRPG4Hit::setVz(), storeHit(), theLocalEntryPoint_, theLocalExitPoint_, thePx_, thePy_, thePz_, ThetaAtEntry_, Tof_, tSlice_, unitID_, Vx_, Vy_, and Vz_.

Referenced by ProcessHits().

◆ DrawAll()

void TotemRPSD::DrawAll ( )
override

Definition at line 262 of file TotemRPSD.cc.

262 {}

◆ EndOfEvent()

void TotemRPSD::EndOfEvent ( G4HCofThisEvent *  eventHC)
override

Definition at line 237 of file TotemRPSD.cc.

237  {
238  // here we loop over transient hits and make them persistent
239  for (unsigned int j = 0; j < (unsigned int)theHC_->entries() && j < maxTotemHits_; j++) {
240  TotemRPG4Hit* aHit = (*theHC_)[j];
241 
242  Local3DPoint entry(aHit->localEntry().x(), aHit->localEntry().y(), aHit->localEntry().z());
243  Local3DPoint exit(aHit->localExit().x(), aHit->localExit().y(), aHit->localExit().z());
244  slave_->processHits(PSimHit(entry,
245  exit,
246  aHit->p(),
247  aHit->tof(),
248  aHit->energyLoss(),
249  aHit->particleType(),
250  aHit->unitID(),
251  aHit->trackID(),
252  aHit->thetaAtEntry(),
253  aHit->phiAtEntry()));
254  }
255  summarize();
256 }

References TotemRPG4Hit::energyLoss(), mps_splice::entry, beamvalidation::exit(), createfilelist::int, dqmiolumiharvest::j, TotemRPG4Hit::localEntry(), TotemRPG4Hit::localExit(), maxTotemHits_, TotemRPG4Hit::p(), TotemRPG4Hit::particleType(), TotemRPG4Hit::phiAtEntry(), slave_, summarize(), theHC_, TotemRPG4Hit::thetaAtEntry(), TotemRPG4Hit::tof(), TotemRPG4Hit::trackID(), and TotemRPG4Hit::unitID().

◆ fillHits()

void TotemRPSD::fillHits ( edm::PSimHitContainer c,
const std::string &  n 
)
overridevirtual

Implements SensitiveTkDetector.

Definition at line 269 of file TotemRPSD.cc.

269  {
270  if (slave_->name() == n) {
271  c = slave_->hits();
272  }
273 }

References c, dqmiodumpmetadata::n, and slave_.

◆ hitExists()

G4bool TotemRPSD::hitExists ( )
private

◆ Initialize()

void TotemRPSD::Initialize ( G4HCofThisEvent *  HCE)
override

Definition at line 67 of file TotemRPSD.cc.

67  {
68  LogDebug("TotemRP") << "TotemRPSD : Initialize called for " << name_;
69 
70  theHC_ = new TotemRPG4HitCollection(GetName(), collectionName[0]);
71  G4SDManager::GetSDMpointer()->AddNewCollection(name_, collectionName[0]);
72 
73  if (hcID_ < 0)
74  hcID_ = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]);
75  HCE->AddHitsCollection(hcID_, theHC_);
76 }

References bysipixelclustmulteventfilter_cfi::collectionName, hcID_, LogDebug, name_, and theHC_.

◆ isPrimary()

bool TotemRPSD::isPrimary ( const G4Track *  track)
private

Definition at line 289 of file TotemRPSD.cc.

289  {
290  TrackInformation* info = dynamic_cast<TrackInformation*>(track->GetUserInformation());
291  return info && info->isPrimary();
292 }

References info(), and HLT_FULL_cff::track.

Referenced by stepInfo().

◆ PrintAll()

void TotemRPSD::PrintAll ( )
override

Definition at line 264 of file TotemRPSD.cc.

264  {
265  LogDebug("TotemRP") << "TotemRPSD: Collection " << theHC_->GetName() << std::endl;
266  theHC_->PrintAllHits();
267 }

References LogDebug, and theHC_.

◆ printHitInfo()

void TotemRPSD::printHitInfo ( )

Definition at line 78 of file TotemRPSD.cc.

78  {
79  LogDebug("TotemRP") << theTrack_->GetDefinition()->GetParticleName() << " TotemRPSD CreateNewHit for"
80  << " PV " << currentPV_->GetName() << " PVid = " << currentPV_->GetCopyNo() << " Unit "
81  << unitID_;
82  LogDebug("TotemRP") << " primary " << primaryID_ << " time slice " << tSliceID_ << " of energy "
83  << theTrack_->GetTotalEnergy() << " Eloss_ " << Eloss_ << " positions ";
84  printf("(%10f,%10f,%10f)",
85  preStepPoint_->GetPosition().x(),
86  preStepPoint_->GetPosition().y(),
87  preStepPoint_->GetPosition().z());
88  printf("(%10f,%10f,%10f)",
89  postStepPoint_->GetPosition().x(),
90  postStepPoint_->GetPosition().y(),
91  postStepPoint_->GetPosition().z());
92  LogDebug("TotemRP") << " positions "
93  << "(" << postStepPoint_->GetPosition().x() << "," << postStepPoint_->GetPosition().y() << ","
94  << postStepPoint_->GetPosition().z() << ")"
95  << " For Track " << theTrack_->GetTrackID() << " which is a "
96  << theTrack_->GetDefinition()->GetParticleName();
97 
98  if (theTrack_->GetTrackID() == 1) {
99  LogDebug("TotemRP") << " primary particle ";
100  } else {
101  LogDebug("TotemRP") << " daughter of part. " << theTrack_->GetParentID();
102  }
103 
104  LogDebug("TotemRP") << " and created by ";
105 
106  if (theTrack_->GetCreatorProcess() != nullptr)
107  LogDebug("TotemRP") << theTrack_->GetCreatorProcess()->GetProcessName();
108  else
109  LogDebug("TotemRP") << "NO process";
110 
111  LogDebug("TotemRP") << std::endl;
112 }

References currentPV_, Eloss_, LogDebug, postStepPoint_, preStepPoint_, primaryID_, theTrack_, tSliceID_, and unitID_.

◆ ProcessHits()

bool TotemRPSD::ProcessHits ( G4Step *  step,
G4TouchableHistory *  tHistory 
)
overrideprivatevirtual

Implements SensitiveDetector.

Definition at line 114 of file TotemRPSD.cc.

114  {
115  if (aStep == nullptr) {
116  return true;
117  } else {
118  stepInfo(aStep);
119 
120  createNewHit();
121  return true;
122  }
123 }

References createNewHit(), and stepInfo().

◆ resetForNewPrimary()

void TotemRPSD::resetForNewPrimary ( )
private

◆ setDetUnitId()

uint32_t TotemRPSD::setDetUnitId ( const G4Step *  step)
overrideprivatevirtual

Implements SensitiveDetector.

Definition at line 177 of file TotemRPSD.cc.

177  {
178  return (numberingScheme_ == nullptr ? 0 : numberingScheme_->unitID(aStep));
179 }

References numberingScheme_.

Referenced by stepInfo().

◆ setNumberingScheme()

void TotemRPSD::setNumberingScheme ( TotemRPVDetectorOrganization scheme)
private

Definition at line 274 of file TotemRPSD.cc.

274  {
275  if (scheme) {
276  LogDebug("TotemRP") << "TotemRPSD: updates numbering scheme for " << GetName();
277  numberingScheme_.reset(scheme);
278  }
279 }

References LogDebug, numberingScheme_, and generator_cfi::scheme.

◆ setToLocal()

G4ThreeVector TotemRPSD::setToLocal ( const G4ThreeVector &  globalPoint)
private

Definition at line 230 of file TotemRPSD.cc.

230  {
231  G4ThreeVector localPoint;
232  const G4VTouchable* touch = preStepPoint_->GetTouchable();
233  localPoint = touch->GetHistory()->GetTopTransform().TransformPoint(global);
234  return localPoint;
235 }

References preStepPoint_.

Referenced by stepInfo().

◆ stepInfo()

void TotemRPSD::stepInfo ( const G4Step *  aStep)
private

Definition at line 125 of file TotemRPSD.cc.

125  {
126  preStepPoint_ = aStep->GetPreStepPoint();
127  postStepPoint_ = aStep->GetPostStepPoint();
128  theTrack_ = aStep->GetTrack();
129  hitPoint_ = preStepPoint_->GetPosition();
130  exitPoint_ = postStepPoint_->GetPosition();
131  currentPV_ = preStepPoint_->GetPhysicalVolume();
134 
135  G4String name_ = currentPV_->GetName();
136  name_.assign(name_, 0, 4);
137  G4String particleType = theTrack_->GetDefinition()->GetParticleName();
138  tSlice_ = (postStepPoint_->GetGlobalTime()) / nanosecond;
139  tSliceID_ = (int)tSlice_;
140  unitID_ = setDetUnitId(aStep);
141 
142  if (verbosity_)
143  LogDebug("TotemRP") << "UNIT " << unitID_ << std::endl;
144 
145  primaryID_ = theTrack_->GetTrackID();
146 
147  Pabs_ = (aStep->GetPreStepPoint()->GetMomentum().mag()) / GeV;
148  thePx_ = (aStep->GetPreStepPoint()->GetMomentum().x()) / GeV;
149  thePy_ = (aStep->GetPreStepPoint()->GetMomentum().y()) / GeV;
150  thePz_ = (aStep->GetPreStepPoint()->GetMomentum().z()) / GeV;
151 
152  Tof_ = aStep->GetPostStepPoint()->GetGlobalTime() / nanosecond;
153  Eloss_ = aStep->GetTotalEnergyDeposit() / GeV;
154  ParticleType_ = theTrack_->GetDefinition()->GetPDGEncoding();
155 
156  //corrected phi and theta treatment
157  G4ThreeVector gmd = aStep->GetPreStepPoint()->GetMomentumDirection();
158  // convert it to local frame
159  G4ThreeVector lmd = ((G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()))
160  ->GetHistory()
161  ->GetTopTransform()
162  .TransformAxis(gmd);
164  ThetaAtEntry_ = lnmd.theta();
165  PhiAtEntry_ = lnmd.phi();
166 
167  if (isPrimary(theTrack_))
168  ParentId_ = 0;
169  else
170  ParentId_ = theTrack_->GetParentID();
171 
172  Vx_ = theTrack_->GetVertexPosition().x() / mm;
173  Vy_ = theTrack_->GetVertexPosition().y() / mm;
174  Vz_ = theTrack_->GetVertexPosition().z() / mm;
175 }

References SensitiveDetector::ConvertToLocal3DPoint(), currentPV_, Eloss_, exitPoint_, GeV, hitPoint_, createfilelist::int, isPrimary(), LogDebug, name_, Pabs_, ParentId_, PbPb_ZMuSkimMuonDPG_cff::particleType, ParticleType_, PV3DBase< T, PVType, FrameType >::phi(), PhiAtEntry_, postStepPoint_, preStepPoint_, primaryID_, setDetUnitId(), setToLocal(), theLocalEntryPoint_, theLocalExitPoint_, thePx_, thePy_, thePz_, PV3DBase< T, PVType, FrameType >::theta(), ThetaAtEntry_, theTrack_, Tof_, tSlice_, tSliceID_, unitID_, verbosity_, Vx_, Vy_, and Vz_.

Referenced by ProcessHits().

◆ storeHit()

void TotemRPSD::storeHit ( TotemRPG4Hit hit)
private

Definition at line 181 of file TotemRPSD.cc.

181  {
182  if (hit == nullptr) {
183  if (verbosity_)
184  LogDebug("TotemRP") << "TotemRPSD: hit to be stored is NULL !!" << std::endl;
185  return;
186  }
187  theHC_->insert(hit);
188 }

References LogDebug, theHC_, and verbosity_.

Referenced by createNewHit().

◆ summarize()

void TotemRPSD::summarize ( )
private

Definition at line 258 of file TotemRPSD.cc.

258 {}

Referenced by EndOfEvent().

◆ update() [1/2]

void TotemRPSD::update ( const ::EndOfEvent )
overrideprivate

◆ update() [2/2]

void TotemRPSD::update ( const BeginOfEvent )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfEvent * >.

Definition at line 280 of file TotemRPSD.cc.

280  {
281  clearHits();
282  eventno_ = (*i)()->GetEventID();
283 }

References clearHits(), and eventno_.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), progressbar.ProgressBar::finish(), and MatrixUtil.Steps::overwrite().

◆ updateHit()

void TotemRPSD::updateHit ( )
private

Member Data Documentation

◆ currentHit_

TotemRPG4Hit* TotemRPSD::currentHit_
private

Definition at line 86 of file TotemRPSD.h.

Referenced by createNewHit().

◆ currentPV_

G4VPhysicalVolume* TotemRPSD::currentPV_
private

Definition at line 88 of file TotemRPSD.h.

Referenced by printHitInfo(), and stepInfo().

◆ Eloss_

double TotemRPSD::Eloss_
private

Definition at line 103 of file TotemRPSD.h.

Referenced by createNewHit(), printHitInfo(), and stepInfo().

◆ entrancePoint_

G4ThreeVector TotemRPSD::entrancePoint_
private

Definition at line 79 of file TotemRPSD.h.

◆ eventno_

int TotemRPSD::eventno_
private

Definition at line 114 of file TotemRPSD.h.

Referenced by update().

◆ exitPoint_

G4ThreeVector TotemRPSD::exitPoint_
private

Definition at line 96 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ hcID_

G4int TotemRPSD::hcID_
private

Definition at line 83 of file TotemRPSD.h.

Referenced by Initialize().

◆ hitPoint_

G4ThreeVector TotemRPSD::hitPoint_
private

Definition at line 95 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ incidentEnergy_

double TotemRPSD::incidentEnergy_
private

Definition at line 80 of file TotemRPSD.h.

Referenced by createNewHit().

◆ maxTotemHits_

constexpr unsigned int TotemRPSD::maxTotemHits_ = 15000
staticconstexprprivate

Definition at line 48 of file TotemRPSD.h.

Referenced by EndOfEvent().

◆ name_

G4String TotemRPSD::name_
private

Definition at line 82 of file TotemRPSD.h.

Referenced by Initialize(), stepInfo(), and TotemRPSD().

◆ numberingScheme_

std::unique_ptr<TotemRPVDetectorOrganization> TotemRPSD::numberingScheme_
private

Definition at line 58 of file TotemRPSD.h.

Referenced by setDetUnitId(), setNumberingScheme(), and TotemRPSD().

◆ Pabs_

double TotemRPSD::Pabs_
private

Definition at line 100 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ ParentId_

int TotemRPSD::ParentId_
private

Definition at line 109 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ ParticleType_

short TotemRPSD::ParticleType_
private

Definition at line 104 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ PhiAtEntry_

double TotemRPSD::PhiAtEntry_
private

Definition at line 107 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ postStepPoint_

G4StepPoint* TotemRPSD::postStepPoint_
private

Definition at line 94 of file TotemRPSD.h.

Referenced by printHitInfo(), and stepInfo().

◆ preStepPoint_

G4StepPoint* TotemRPSD::preStepPoint_
private

Definition at line 93 of file TotemRPSD.h.

Referenced by printHitInfo(), setToLocal(), and stepInfo().

◆ primaryID_

G4int TotemRPSD::primaryID_
private

Definition at line 90 of file TotemRPSD.h.

Referenced by createNewHit(), printHitInfo(), and stepInfo().

◆ rp_garage_position_

constexpr double TotemRPSD::rp_garage_position_ = 40.0
staticconstexpr

Definition at line 45 of file TotemRPSD.h.

Referenced by createNewHit().

◆ slave_

std::unique_ptr<TrackingSlaveSD> TotemRPSD::slave_
private

Definition at line 57 of file TotemRPSD.h.

Referenced by clearHits(), EndOfEvent(), fillHits(), and TotemRPSD().

◆ theHC_

TotemRPG4HitCollection* TotemRPSD::theHC_
private

Definition at line 84 of file TotemRPSD.h.

Referenced by EndOfEvent(), Initialize(), PrintAll(), and storeHit().

◆ theLocalEntryPoint_

G4ThreeVector TotemRPSD::theLocalEntryPoint_
private

Definition at line 97 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ theLocalExitPoint_

G4ThreeVector TotemRPSD::theLocalExitPoint_
private

Definition at line 98 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ thePx_

double TotemRPSD::thePx_
private

Definition at line 101 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ thePy_

double TotemRPSD::thePy_
private

Definition at line 101 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ thePz_

double TotemRPSD::thePz_
private

Definition at line 101 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ ThetaAtEntry_

double TotemRPSD::ThetaAtEntry_
private

Definition at line 106 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ theTrack_

G4Track* TotemRPSD::theTrack_
private

Definition at line 87 of file TotemRPSD.h.

Referenced by printHitInfo(), and stepInfo().

◆ Tof_

double TotemRPSD::Tof_
private

Definition at line 102 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ tSlice_

G4double TotemRPSD::tSlice_
private

Definition at line 91 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ tSliceID_

G4int TotemRPSD::tSliceID_
private

Definition at line 90 of file TotemRPSD.h.

Referenced by printHitInfo(), and stepInfo().

◆ unitID_

unsigned int TotemRPSD::unitID_
private

Definition at line 89 of file TotemRPSD.h.

Referenced by createNewHit(), printHitInfo(), and stepInfo().

◆ verbosity_

int TotemRPSD::verbosity_
private

Definition at line 61 of file TotemRPSD.h.

Referenced by stepInfo(), storeHit(), and TotemRPSD().

◆ Vx_

double TotemRPSD::Vx_
private

Definition at line 110 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ Vy_

double TotemRPSD::Vy_
private

Definition at line 110 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

◆ Vz_

double TotemRPSD::Vz_
private

Definition at line 110 of file TotemRPSD.h.

Referenced by createNewHit(), and stepInfo().

TotemRPG4Hit::setExit
void setExit(G4ThreeVector xyz)
Definition: TotemRPG4Hit.cc:79
TotemRPSD::theLocalEntryPoint_
G4ThreeVector theLocalEntryPoint_
Definition: TotemRPSD.h:97
TotemRPSD::hcID_
G4int hcID_
Definition: TotemRPSD.h:83
TotemRPG4Hit::setVy
void setVy(double p)
Definition: TotemRPG4Hit.cc:132
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11713
TotemRPG4Hit::setParticleType
void setParticleType(short i)
Definition: TotemRPG4Hit.cc:108
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
TotemRPSD::theTrack_
G4Track * theTrack_
Definition: TotemRPSD.h:87
TotemRPG4Hit::thetaAtEntry
double thetaAtEntry() const
Definition: TotemRPG4Hit.cc:110
TotemRPG4Hit::localExit
G4ThreeVector localExit() const
Definition: TotemRPG4Hit.cc:83
TotemRPSD::thePy_
double thePy_
Definition: TotemRPSD.h:101
TotemRPSD::theHC_
TotemRPG4HitCollection * theHC_
Definition: TotemRPSD.h:84
mps_splice.entry
entry
Definition: mps_splice.py:68
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
TotemRPSD::Vx_
double Vx_
Definition: TotemRPSD.h:110
PV3DBase::theta
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72
TotemRPG4Hit::localEntry
G4ThreeVector localEntry() const
Definition: TotemRPG4Hit.cc:81
TotemRPSD::tSlice_
G4double tSlice_
Definition: TotemRPSD.h:91
TotemRPG4Hit::setTrackID
void setTrackID(int i)
Definition: TotemRPG4Hit.cc:90
TotemRPG4Hit::setThetaAtEntry
void setThetaAtEntry(double t)
Definition: TotemRPG4Hit.cc:113
TotemRPG4Hit::setTof
void setTof(double e)
Definition: TotemRPG4Hit.cc:105
TotemRPSD::PhiAtEntry_
double PhiAtEntry_
Definition: TotemRPSD.h:107
TotemRPSD::storeHit
void storeHit(TotemRPG4Hit *)
Definition: TotemRPSD.cc:181
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:153
TotemRPSD::ThetaAtEntry_
double ThetaAtEntry_
Definition: TotemRPSD.h:106
TotemRPG4Hit::setLocalEntry
void setLocalEntry(const G4ThreeVector &theLocalEntryPoint)
Definition: TotemRPG4Hit.cc:82
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
TotemRPG4Hit::tof
double tof() const
Definition: TotemRPG4Hit.cc:100
TotemRPG4Hit::setVz
void setVz(double p)
Definition: TotemRPG4Hit.cc:135
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
TotemRPSD::ParentId_
int ParentId_
Definition: TotemRPSD.h:109
TotemRPSD::setDetUnitId
uint32_t setDetUnitId(const G4Step *step) override
Definition: TotemRPSD.cc:177
TotemRPSD::ParticleType_
short ParticleType_
Definition: TotemRPSD.h:104
TotemRPG4Hit::setPhiAtEntry
void setPhiAtEntry(double f)
Definition: TotemRPG4Hit.cc:114
TotemRPSD::Pabs_
double Pabs_
Definition: TotemRPSD.h:100
TotemRPG4Hit
Definition: TotemRPG4Hit.h:30
SensitiveTkDetector::SensitiveTkDetector
SensitiveTkDetector(const std::string &iname, const edm::EventSetup &es, const SensitiveDetectorCatalog &clg, edm::ParameterSet const &p)
Definition: SensitiveTkDetector.h:10
TotemRPSD::clearHits
void clearHits() override
Definition: TotemRPSD.cc:287
TotemRPSD::currentHit_
TotemRPG4Hit * currentHit_
Definition: TotemRPSD.h:86
TotemRPG4Hit::setPx
void setPx(double p)
Definition: TotemRPG4Hit.cc:137
TotemRPG4Hit::unitID
int unitID() const
Definition: TotemRPG4Hit.cc:92
Point3DBase< float, LocalTag >
bysipixelclustmulteventfilter_cfi.collectionName
collectionName
Definition: bysipixelclustmulteventfilter_cfi.py:5
TotemRPSD::Vz_
double Vz_
Definition: TotemRPSD.h:110
TotemRPSD::thePx_
double thePx_
Definition: TotemRPSD.h:101
TotemRPG4Hit::setEntry
void setEntry(G4ThreeVector xyz)
Definition: TotemRPG4Hit.cc:76
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
TotemRPG4Hit::setEnergyLoss
void setEnergyLoss(double e)
Definition: TotemRPG4Hit.cc:106
edm::ParameterSet
Definition: ParameterSet.h:47
TotemRPG4Hit::setTimeSlice
void setTimeSlice(double d)
Definition: TotemRPG4Hit.cc:96
TotemRPSD::preStepPoint_
G4StepPoint * preStepPoint_
Definition: TotemRPSD.h:93
GeV
const double GeV
Definition: MathUtil.h:16
TotemRPG4HitCollection
G4THitsCollection< TotemRPG4Hit > TotemRPG4HitCollection
Definition: TotemRPG4HitCollection.h:13
SensitiveDetector::ConvertToLocal3DPoint
Local3DPoint ConvertToLocal3DPoint(const G4ThreeVector &point) const
Definition: SensitiveDetector.h:56
TrackInformation
Definition: TrackInformation.h:12
createfilelist.int
int
Definition: createfilelist.py:10
TotemRPSD::isPrimary
bool isPrimary(const G4Track *track)
Definition: TotemRPSD.cc:289
TotemRPG4Hit::setPz
void setPz(double p)
Definition: TotemRPG4Hit.cc:139
TotemRPSD::stepInfo
void stepInfo(const G4Step *aStep)
Definition: TotemRPSD.cc:125
TotemRPG4Hit::setP
void setP(double e)
Definition: TotemRPG4Hit.cc:104
TotemRPG4Hit::setIncidentEnergy
void setIncidentEnergy(double e)
Definition: TotemRPG4Hit.cc:87
TotemRPSD::Eloss_
double Eloss_
Definition: TotemRPSD.h:103
TotemRPSD::Vy_
double Vy_
Definition: TotemRPSD.h:110
TotemRPSD::postStepPoint_
G4StepPoint * postStepPoint_
Definition: TotemRPSD.h:94
TotemRPSD::unitID_
unsigned int unitID_
Definition: TotemRPSD.h:89
TotemRPSD::createNewHit
void createNewHit()
Definition: TotemRPSD.cc:190
TotemRPG4Hit::particleType
int particleType() const
Definition: TotemRPG4Hit.cc:102
generator_cfi.scheme
scheme
Definition: generator_cfi.py:22
TotemRPSD::primaryID_
G4int primaryID_
Definition: TotemRPSD.h:90
TotemRPSD::tSliceID_
G4int tSliceID_
Definition: TotemRPSD.h:90
TotemRPG4Hit::setVx
void setVx(double p)
Definition: TotemRPG4Hit.cc:129
TotemRPSD::thePz_
double thePz_
Definition: TotemRPSD.h:101
TotemRPSD::maxTotemHits_
static constexpr unsigned int maxTotemHits_
Definition: TotemRPSD.h:48
TotemRPSD::numberingScheme_
std::unique_ptr< TotemRPVDetectorOrganization > numberingScheme_
Definition: TotemRPSD.h:58
TotemRPG4Hit::setLocalExit
void setLocalExit(const G4ThreeVector &theLocalExitPoint)
Definition: TotemRPG4Hit.cc:84
TotemRPSD::verbosity_
int verbosity_
Definition: TotemRPSD.h:61
TotemRPG4Hit::setPy
void setPy(double p)
Definition: TotemRPG4Hit.cc:138
TotemRPSD::incidentEnergy_
double incidentEnergy_
Definition: TotemRPSD.h:80
TotemRPSD::name_
G4String name_
Definition: TotemRPSD.h:82
TotemRPG4Hit::setUnitID
void setUnitID(unsigned int i)
Definition: TotemRPG4Hit.cc:93
TotemRPG4Hit::phiAtEntry
double phiAtEntry() const
Definition: TotemRPG4Hit.cc:111
TotemRPG4Hit::energyLoss
double energyLoss() const
Definition: TotemRPG4Hit.cc:101
TotemRPSD::summarize
void summarize()
Definition: TotemRPSD.cc:258
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
TotemRPSD::theLocalExitPoint_
G4ThreeVector theLocalExitPoint_
Definition: TotemRPSD.h:98
TotemRPG4Hit::trackID
unsigned int trackID() const
Definition: TotemRPG4Hit.cc:89
TotemRPSD::Tof_
double Tof_
Definition: TotemRPSD.h:102
beamvalidation.exit
def exit(msg="")
Definition: beamvalidation.py:53
TotemRPG4Hit::p
double p() const
Definition: TotemRPG4Hit.cc:99
PSimHit
Definition: PSimHit.h:15
PbPb_ZMuSkimMuonDPG_cff.particleType
particleType
Definition: PbPb_ZMuSkimMuonDPG_cff.py:27
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:46
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
TotemRPSD::rp_garage_position_
static constexpr double rp_garage_position_
Definition: TotemRPSD.h:45
TotemRPSD::currentPV_
G4VPhysicalVolume * currentPV_
Definition: TotemRPSD.h:88
TotemRPSD::slave_
std::unique_ptr< TrackingSlaveSD > slave_
Definition: TotemRPSD.h:57
TotemRPSD::hitPoint_
G4ThreeVector hitPoint_
Definition: TotemRPSD.h:95
TotemRPG4Hit::setParentId
void setParentId(int p)
Definition: TotemRPG4Hit.cc:126
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
TotemRPSD::setToLocal
G4ThreeVector setToLocal(const G4ThreeVector &globalPoint)
Definition: TotemRPSD.cc:230
hit
Definition: SiStripHitEffFromCalibTree.cc:88
TotemRPSD::eventno_
int eventno_
Definition: TotemRPSD.h:114
TotemRPSD::exitPoint_
G4ThreeVector exitPoint_
Definition: TotemRPSD.h:96