1 #ifndef SubsystemNeutronWriter_h 2 #define SubsystemNeutronWriter_h 22 class HepRandomEngine;
39 virtual int localDetId(
int globalDetId)
const = 0;
43 virtual int chamberId(
int globalDetId)
const = 0;
virtual int chamberType(int globalDetId) const =0
void initialize(int chamberType)
good practice to do once for each chamber type
~SubsystemNeutronWriter() override
destructor prints statistics on number of events written
virtual bool accept(const edm::PSimHitContainer &cluster) const =0
decides whether this cluster is good enough to be included
const double theTimeWindow
const edm::InputTag theInputTag
const double theNeutronTimeCut
void adjust(PSimHit &h, float timeOffset, float smearing)
helper to add time offsets and local det ID
virtual int localDetId(int globalDetId) const =0
virtual int chamberId(int globalDetId) const =0
doesn't have to be a producer. Can act as an analyzer, too.
virtual void writeHits(int chamberType, edm::PSimHitContainer &chamberHits, CLHEP::HepRandomEngine *)
const edm::EDGetTokenT< edm::PSimHitContainer > hitToken_
std::map< int, int > theCountPerChamberType
SubsystemNeutronWriter(edm::ParameterSet const &pset)
void updateCount(int chamberType)
updates the counter
void writeCluster(int chamberType, const edm::PSimHitContainer &cluster)
NeutronWriter * theHitWriter
void produce(edm::Event &e, edm::EventSetup const &c) override
std::vector< PSimHit > PSimHitContainer
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.