Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:55:24

0001 //==========================================================================
0002 //  AIDA Detector description implementation 
0003 //--------------------------------------------------------------------------
0004 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
0005 // All rights reserved.
0006 //
0007 // For the licensing terms see $DD4hepINSTALL/LICENSE.
0008 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
0009 //
0010 // Author     : M.Frank
0011 //
0012 //==========================================================================
0013 #ifndef DDG4_GEANT4READOUTVOLUMEFILTER_H
0014 #define DDG4_GEANT4READOUTVOLUMEFILTER_H
0015 
0016 // Framework include files
0017 #include <DD4hep/Readout.h>
0018 #include <DD4hep/IDDescriptor.h>
0019 #include <DDG4/Geant4SensDetAction.h>
0020 
0021 /// Namespace for the AIDA detector description toolkit
0022 namespace dd4hep {
0023 
0024   /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
0025   namespace sim {
0026 
0027     /// Default base class for all geant 4 tracking actions.
0028     /**
0029      *  \author  M.Frank
0030      *  \version 1.0
0031      *  \ingroup DD4HEP_SIMULATION
0032      */
0033     class Geant4ReadoutVolumeFilter: public Geant4Filter {
0034     protected:
0035       /// Reference to readout descriptor
0036       Readout              m_readout;
0037       /// Collection index
0038       const HitCollection* m_collection;
0039       /// Bit field value from ID descriptor
0040       const BitFieldElement* m_key;
0041 
0042     public:
0043       /// Standard constructor
0044       Geant4ReadoutVolumeFilter(Geant4Context*     context, 
0045                                 const std::string& name, 
0046                                 Readout            ro, 
0047                                 const std::string& coll);
0048       /// Default destructor
0049       virtual ~Geant4ReadoutVolumeFilter();
0050       /// Filter action. Return true if hits should be processed
0051       virtual bool operator()(const G4Step* step) const  override;
0052       /// GFLASH/FastSim interface: Filter action. Return true if hits should be processed.
0053       virtual bool operator()(const Geant4FastSimSpot* step) const  override;
0054     };
0055   }    // End namespace sim
0056 }      // End namespace dd4hep
0057 
0058 #endif // DDG4_GEANT4READOUTVOLUMEFILTER_H