CMS 3D CMS Logo

MuonSensitiveDetector.h
Go to the documentation of this file.
1 #ifndef SimG4CMS_Muon_MuonSensitiveDetector_h
2 #define SimG4CMS_Muon_MuonSensitiveDetector_h
3 
22 
23 #include <string>
24 
25 class MuonSlaveSD;
27 class MuonFrameRotation;
28 class UpdatablePSimHit;
29 class MuonSubDetector;
30 class MuonG4Numbering;
31 class SimHitPrinter;
32 class G4Step;
34 class SimTrackManager;
35 
36 class MuonSensitiveDetector : public SensitiveTkDetector, public Observer<const BeginOfEvent*> {
37 public:
38  explicit MuonSensitiveDetector(const std::string&,
39  const edm::EventSetup&,
41  edm::ParameterSet const&,
42  const SimTrackManager*);
43  ~MuonSensitiveDetector() override;
44  G4bool ProcessHits(G4Step*, G4TouchableHistory*) override;
45  uint32_t setDetUnitId(const G4Step*) override;
46  void EndOfEvent(G4HCofThisEvent*) override;
47 
48  void fillHits(edm::PSimHitContainer&, const std::string&) override;
49  void clearHits() override;
50 
51  const MuonSlaveSD* GetSlaveMuon() const { return slaveMuon; }
52 
53 protected:
54  void update(const BeginOfEvent*) override;
55 
56 private:
57  inline Local3DPoint cmsUnits(const Local3DPoint& v) { return Local3DPoint(v.x() * 0.1, v.y() * 0.1, v.z() * 0.1); }
58 
64 
65  bool newHit(const G4Step*);
66  void createHit(const G4Step*);
67  void updateHit(const G4Step*);
68  void saveHit();
69 
75  Local3DPoint InitialStepPositionVsParent(const G4Step* currentStep, G4int levelsUp);
76  Local3DPoint FinalStepPositionVsParent(const G4Step* currentStep, G4int levelsUp);
77 
78  const G4VPhysicalVolume* thePV;
80  uint32_t theDetUnitId;
81  uint32_t newDetUnitId;
83 
84  bool printHits;
86 
87  //--- SimTracks cuts
90 
92 
94 };
95 
96 #endif // MuonSensitiveDetector_h
MuonSensitiveDetector::MuonSensitiveDetector
MuonSensitiveDetector(const std::string &, const edm::EventSetup &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
Definition: MuonSensitiveDetector.cc:40
MuonSensitiveDetector::theDetUnitId
uint32_t theDetUnitId
Definition: MuonSensitiveDetector.h:80
MuonSubDetector
Definition: MuonSubDetector.h:19
SimTrackManager
Definition: SimTrackManager.h:35
MuonSensitiveDetector::slaveMuon
MuonSlaveSD * slaveMuon
Definition: MuonSensitiveDetector.h:59
MuonSensitiveDetector::newHit
bool newHit(const G4Step *)
Definition: MuonSensitiveDetector.cc:166
MuonSensitiveDetector::theHit
UpdatablePSimHit * theHit
Definition: MuonSensitiveDetector.h:79
Observer
Definition: Observer.h:23
MuonSensitiveDetector::theTrackID
int theTrackID
Definition: MuonSensitiveDetector.h:82
MuonSlaveSD
Definition: MuonSlaveSD.h:26
MuonSensitiveDetector::InitialStepPositionVsParent
Local3DPoint InitialStepPositionVsParent(const G4Step *currentStep, G4int levelsUp)
Definition: MuonSensitiveDetector.cc:321
MuonSensitiveDetector::newDetUnitId
uint32_t newDetUnitId
Definition: MuonSensitiveDetector.h:81
MuonSensitiveDetector::ePersistentCutGeV
float ePersistentCutGeV
Definition: MuonSensitiveDetector.h:88
SensitiveTkDetector
Definition: SensitiveTkDetector.h:8
MuonSensitiveDetector::clearHits
void clearHits() override
Definition: MuonSensitiveDetector.cc:119
findQualityFiles.v
v
Definition: findQualityFiles.py:179
G4ProcessTypeEnumerator
Definition: G4ProcessTypeEnumerator.h:6
MuonSensitiveDetector::thePV
const G4VPhysicalVolume * thePV
Definition: MuonSensitiveDetector.h:78
MuonG4Numbering
Definition: MuonG4Numbering.h:25
MuonSensitiveDetector::thePrinter
SimHitPrinter * thePrinter
Definition: MuonSensitiveDetector.h:85
Observer.h
SensitiveTkDetector.h
MuonSensitiveDetector
Definition: MuonSensitiveDetector.h:36
MuonSensitiveDetector::FinalStepPositionVsParent
Local3DPoint FinalStepPositionVsParent(const G4Step *currentStep, G4int levelsUp)
Definition: MuonSensitiveDetector.cc:334
MuonSensitiveDetector::numbering
MuonSimHitNumberingScheme * numbering
Definition: MuonSensitiveDetector.h:60
MuonSensitiveDetector::detector
MuonSubDetector * detector
Definition: MuonSensitiveDetector.h:61
MuonSensitiveDetector::EndOfEvent
void EndOfEvent(G4HCofThisEvent *) override
Definition: MuonSensitiveDetector.cc:313
SensitiveDetectorCatalog
Definition: SensitiveDetectorCatalog.h:10
MuonSensitiveDetector::fillHits
void fillHits(edm::PSimHitContainer &, const std::string &) override
Definition: MuonSensitiveDetector.cc:315
Point3DBase< float, LocalTag >
MuonSensitiveDetector::~MuonSensitiveDetector
~MuonSensitiveDetector() override
Definition: MuonSensitiveDetector.cc:102
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MuonSensitiveDetector::update
void update(const BeginOfEvent *) override
This routine will be called when the appropriate signal arrives.
Definition: MuonSensitiveDetector.cc:111
edm::ParameterSet
Definition: ParameterSet.h:36
UpdatablePSimHit
Definition: UpdatablePSimHit.h:12
MuonSensitiveDetector::updateHit
void updateHit(const G4Step *)
Definition: MuonSensitiveDetector.cc:261
BeginOfEvent.h
MuonSensitiveDetector::allMuonsPersistent
bool allMuonsPersistent
Definition: MuonSensitiveDetector.h:89
BeginOfEvent
Definition: BeginOfEvent.h:6
edm::EventSetup
Definition: EventSetup.h:57
MuonSensitiveDetector::theRotation
MuonFrameRotation * theRotation
Definition: MuonSensitiveDetector.h:62
MuonSensitiveDetector::saveHit
void saveHit()
Definition: MuonSensitiveDetector.cc:299
LocalPoint.h
MuonSensitiveDetector::printHits
bool printHits
Definition: MuonSensitiveDetector.h:84
MuonSensitiveDetector::ProcessHits
G4bool ProcessHits(G4Step *, G4TouchableHistory *) override
Definition: MuonSensitiveDetector.cc:126
MuonSimHitNumberingScheme
Definition: MuonSimHitNumberingScheme.h:19
MuonFrameRotation
Definition: MuonFrameRotation.h:17
MuonSensitiveDetector::GetSlaveMuon
const MuonSlaveSD * GetSlaveMuon() const
Definition: MuonSensitiveDetector.h:51
MuonSensitiveDetector::cmsUnits
Local3DPoint cmsUnits(const Local3DPoint &v)
Definition: MuonSensitiveDetector.h:57
SimHitPrinter
Definition: SimHitPrinter.h:23
edm::PSimHitContainer
std::vector< PSimHit > PSimHitContainer
Definition: PSimHitContainer.h:11
MuonSensitiveDetector::theManager
const SimTrackManager * theManager
Definition: MuonSensitiveDetector.h:93
MuonSensitiveDetector::g4numbering
MuonG4Numbering * g4numbering
Definition: MuonSensitiveDetector.h:63
MuonSensitiveDetector::setDetUnitId
uint32_t setDetUnitId(const G4Step *) override
Definition: MuonSensitiveDetector.cc:147
MuonSensitiveDetector::createHit
void createHit(const G4Step *)
Definition: MuonSensitiveDetector.cc:171
Local3DPoint
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9
MuonSensitiveDetector::theG4ProcessTypeEnumerator
G4ProcessTypeEnumerator * theG4ProcessTypeEnumerator
Definition: MuonSensitiveDetector.h:91