Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 /// \file runAndEvent/RE02/include/RE02Run.hh 27 /// \brief Definition of the RE02Run class 28 // 29 // 30 // 31 32 #ifndef RE02Run_h 33 #define RE02Run_h 1 34 35 #include "G4Event.hh" 36 #include "G4Run.hh" 37 #include "G4THitsMap.hh" 38 39 #include <vector> 40 41 //--------------------------------------------------------------------- 42 /// User run class 43 /// 44 /// (Description) 45 /// An example implementation for the multi-functional-detector and 46 /// primitive scorers. 47 /// This RE02Run class has collections which accumulate event information 48 /// into run information. 49 /// 50 /// - constructor 51 /// gets HitsCollection names, collection IDs and HitsMaps of 52 /// primitive scorers from the muti-functional detector 53 /// 54 /// - void RecordEvent(const G4Event*) 55 /// accumulates HitsMaps over all events into a run HitsMap 56 /// 57 /// - G4int GetNumberOfHitsMap() const 58 /// gets the size of the run HitsMap 59 /// 60 /// - G4THitsMap<G4double>* GetHitsMap(G4int i) 61 /// gets a run HitsMap of the i-th primitive scorer 62 /// 63 /// - G4THitsMap<G4double>* GetHitsMap(const G4String& detName, 64 /// const G4String& colName) 65 /// gets a run HitsMap with the detName and the colName 66 /// 67 /// - G4THitsMap<G4double>* GetHitsMap(const G4String& fullName) 68 /// gets a run HitsMap with the fullName 69 /// 70 /// - void DumpAllScorer() 71 /// shows all HitsMap information of this run. 72 /// This method calls G4THisMap::PrintAll() for individual HitsMap. 73 //--------------------------------------------------------------------- 74 class RE02Run : public G4Run 75 { 76 public: 77 // constructor and destructor. 78 // vector of multifunctionaldetector name has to given to constructor. 79 RE02Run(const std::vector<G4String> mfdName); 80 virtual ~RE02Run(); 81 82 public: 83 // virtual method from G4Run. 84 // The method is overriden in this class for scoring. 85 virtual void RecordEvent(const G4Event*); 86 virtual void Merge(const G4Run*); 87 88 // Access methods for scoring information. 89 // - Number of HitsMap for this RUN. 90 // This is equal to number of collections. 91 G4int GetNumberOfHitsMap() const { return fRunMap.size(); } 92 // - Get HitsMap of this RUN. 93 // by sequential number, by multifucntional name and collection name, 94 // and by collection name with full path. 95 G4THitsMap<G4double>* GetHitsMap(G4int i) { return fRunMap[i]; } 96 G4THitsMap<G4double>* GetHitsMap(const G4String& detName, const G4String& colName); 97 G4THitsMap<G4double>* GetHitsMap(const G4String& fullName); 98 // - Dump All HitsMap of this RUN. 99 // This method calls G4THisMap::PrintAll() for individual HitsMap. 100 void DumpAllScorer(); 101 102 private: 103 std::vector<G4String> fCollName; 104 std::vector<G4int> fCollID; 105 std::vector<G4THitsMap<G4double>*> fRunMap; 106 }; 107 108 // 109 110 #endif 111