Skip to content

Commit

Permalink
Now the tracker part
Browse files Browse the repository at this point in the history
  • Loading branch information
Sunanda committed Jul 18, 2021
1 parent a55eda1 commit 66cc52a
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 17 deletions.
4 changes: 3 additions & 1 deletion SimG4CMS/Tracker/interface/TkAccumulatingSensitiveDetector.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "SimG4Core/Notification/interface/BeginOfJob.h"
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
#include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h"

#include "G4Step.hh"
#include "G4Track.hh"
Expand All @@ -33,7 +34,7 @@ class TkAccumulatingSensitiveDetector : public SensitiveTkDetector,
public Observer<const BeginOfJob *> {
public:
TkAccumulatingSensitiveDetector(const std::string &,
const edm::EventSetup &,
const GeometricDet*,
const SensitiveDetectorCatalog &,
edm::ParameterSet const &,
const SimTrackManager *);
Expand All @@ -59,6 +60,7 @@ class TkAccumulatingSensitiveDetector : public SensitiveTkDetector,

private:
// data members initialised before run
const GeometricDet *pDD_;
const SimTrackManager *theManager;
std::unique_ptr<TrackingSlaveSD> slaveLowTof;
std::unique_ptr<TrackingSlaveSD> slaveHighTof;
Expand Down
42 changes: 42 additions & 0 deletions SimG4CMS/Tracker/plugins/TkAccumulatingSensitiveDetectorBuilder.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// system include files

// user include files
#include "SimG4Core/SensitiveDetector/interface/SensitiveDetectorMakerBase.h"
#include "SimG4Core/Notification/interface/SimActivityRegistryEnroller.h"
#include "SimG4Core/SensitiveDetector/interface/SensitiveDetectorPluginFactory.h"

#include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h"
#include "Geometry/Records/interface/IdealGeometryRecord.h"

#include "SimG4CMS/Tracker/interface/TkAccumulatingSensitiveDetector.h"

#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "FWCore/Utilities/interface/ESGetToken.h"
#include "FWCore/PluginManager/interface/ModuleDef.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

class TkAccumulatingSensitiveDetectorBuilder : public SensitiveDetectorMakerBase {
public:
explicit TkAccumulatingSensitiveDetectorBuilder(edm::ParameterSet const& p, edm::ConsumesCollector cc)
: geomdet_{nullptr},
geomdetToken_{cc.esConsumes<edm::Transition::BeginRun>()} {}

void beginRun(const edm::EventSetup& es) final { geomdet_ = &es.getData(geomdetToken_); }

std::unique_ptr<SensitiveDetector> make(const std::string& iname,
const SensitiveDetectorCatalog& clg,
const edm::ParameterSet& p,
const SimTrackManager* man,
SimActivityRegistry& reg) const final {
auto sd = std::make_unique<TkAccumulatingSensitiveDetector>(iname, geomdet_, clg, p, man);
SimActivityRegistryEnroller::enroll(reg, sd.get());
return sd;
}

private:
const GeometricDet* geomdet_;
const edm::ESGetToken<GeometricDet, IdealGeometryRecord> geomdetToken_;
};

DEFINE_SENSITIVEDETECTORBUILDER(TkAccumulatingSensitiveDetectorBuilder, TkAccumulatingSensitiveDetector);
5 changes: 0 additions & 5 deletions SimG4CMS/Tracker/plugins/module.cc
Original file line number Diff line number Diff line change
@@ -1,5 +0,0 @@
#include "SimG4CMS/Tracker/interface/TkAccumulatingSensitiveDetector.h"
#include "SimG4Core/SensitiveDetector/interface/SensitiveDetectorPluginFactory.h"
#include "FWCore/PluginManager/interface/ModuleDef.h"

DEFINE_SENSITIVEDETECTOR(TkAccumulatingSensitiveDetector);
14 changes: 3 additions & 11 deletions SimG4CMS/Tracker/src/TkAccumulatingSensitiveDetector.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,8 @@
#include "SimG4CMS/Tracker/interface/TkSimHitPrinter.h"
#include "SimG4CMS/Tracker/interface/TrackerG4SimHitNumberingScheme.h"

#include "FWCore/Framework/interface/ESTransientHandle.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/EventSetup.h"

#include "Geometry/Records/interface/IdealGeometryRecord.h"
#include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h"

#include "SimG4Core/Notification/interface/TrackInformation.h"
#include "SimG4Core/Notification/interface/G4TrackToParticleID.h"
#include "SimG4Core/Physics/interface/G4ProcessTypeEnumerator.h"
Expand All @@ -44,11 +39,12 @@ static TrackerG4SimHitNumberingScheme& numberingScheme(const GeometricDet& det)
}

TkAccumulatingSensitiveDetector::TkAccumulatingSensitiveDetector(const std::string& name,
const edm::EventSetup& es,
const GeometricDet *pDD,
const SensitiveDetectorCatalog& clg,
edm::ParameterSet const& p,
const SimTrackManager* manager)
: SensitiveTkDetector(name, clg),
pDD_(pDD),
theManager(manager),
rTracker(1200. * CLHEP::mm),
zTracker(3000. * CLHEP::mm),
Expand Down Expand Up @@ -354,11 +350,7 @@ void TkAccumulatingSensitiveDetector::update(const BeginOfEvent* i) {
}

void TkAccumulatingSensitiveDetector::update(const BeginOfJob* i) {
edm::ESHandle<GeometricDet> pDD;
const edm::EventSetup* es = (*i)();
es->get<IdealGeometryRecord>().get(pDD);

theNumberingScheme = &(numberingScheme(*pDD));
theNumberingScheme = &(numberingScheme(*pDD_));
}

void TkAccumulatingSensitiveDetector::clearHits() {
Expand Down

0 comments on commit 66cc52a

Please sign in to comment.