|
||||
File indexing completed on 2024-04-06 12:30:26
0001 #ifndef SimG4Core_TrackInformationExtractor_H 0002 #define SimG4Core_TrackInformationExtractor_H 0003 0004 #include "SimG4Core/Notification/interface/TrackInformation.h" 0005 0006 class G4Track; 0007 0008 /** Provides safe access to the TrackInformation part of a G4Track. 0009 * If the G4Track pointer/reference is const, a const reference to 0010 * the TrackInformation is returned, else a non-const reference 0011 * is returned. 0012 * The TrackInformationExtractor checks for the existance of 0013 * TrackInformation and for the validity of the dynamic_cast; 0014 * It will throw an excepton if it is not possible to return 0015 * TrackInformation, but it will do it's best to satisfy the request 0016 * (in some cases it may even create the TrackInformation on-the-fly). 0017 */ 0018 0019 class TrackInformationExtractor { 0020 public: 0021 /** for a const G4Track pointer/reference a const TrackInformation& 0022 * is returned. 0023 */ 0024 const TrackInformation& operator()(const G4Track& gtk) const; 0025 const TrackInformation& operator()(const G4Track* gtk) const { return operator()(*gtk); } 0026 /** for a non-const G4Track pointer/reference the TrackInformation& 0027 * is also non-const. 0028 */ 0029 TrackInformation& operator()(G4Track& gtk) const; 0030 TrackInformation& operator()(G4Track* gtk) const { return operator()(*gtk); } 0031 0032 private: 0033 void missing(const G4Track& gtk) const; 0034 void wrongType() const; 0035 }; 0036 0037 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |