37 #ifndef artg4tk_Core_DetectorBase_hh 38 #define artg4tk_Core_DetectorBase_hh 51 class G4LogicalVolume;
52 class G4VPhysicalVolume;
56 class ProducesCollector;
78 std::string motherCategory)
79 : _myParams(
fhicl::ParameterSet(p))
82 , _motherCategory(motherCategory)
88 detectorHolder->registerDetector(
this);
102 _myLVs = doBuildLVs();
108 std::vector<G4VPhysicalVolume*>
111 _myPVs = doPlaceToPVs(motherLVs);
120 doCallArtProduces(produces_coll);
128 doFillEventWithArtHits(hc);
134 std::vector<G4VPhysicalVolume*>
141 std::vector<G4LogicalVolume*>
165 return _motherCategory;
179 virtual std::vector<G4LogicalVolume*> doBuildLVs() = 0;
183 virtual std::vector<G4VPhysicalVolume*> doPlaceToPVs(
184 std::vector<G4LogicalVolume*> motherLV) = 0;
virtual void initialize()
fhicl::ParameterSet const & parameters() const
virtual void doFillEventWithArtHits(G4HCofThisEvent *)
std::string _motherCategory
std::vector< G4VPhysicalVolume * > _myPVs
std::string const & myName() const
fhicl::ParameterSet _myParams
std::vector< G4VPhysicalVolume * > placeToPVs(std::vector< G4LogicalVolume * > motherLVs)
std::vector< G4VPhysicalVolume * > pvs() const
virtual void doCallArtProduces(art::ProducesCollector &produces_coll)
std::string const & motherCategory() const
std::string const & category() const
void fillEventWithArtHits(G4HCofThisEvent *hc)
DetectorBase(fhicl::ParameterSet const &p, std::string myName, std::string category, std::string motherCategory)
std::vector< G4LogicalVolume * > _myLVs
void callArtProduces(art::ProducesCollector &produces_coll)
std::vector< G4LogicalVolume * > lvs() const