Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 27 // Author: Ivana Hrivnacova, 21/10/2014 (ivan 28 29 #include "G4CsvRFileManager.hh" 30 #include "G4CsvHnRFileManager.hh" 31 #include "G4AnalysisManagerState.hh" 32 #include "G4AnalysisUtilities.hh" 33 34 using namespace G4Analysis; 35 using namespace tools; 36 37 //____________________________________________ 38 G4CsvRFileManager::G4CsvRFileManager(const G4A 39 : G4VRFileManager(state) 40 { 41 // Create helpers defined in the base class 42 fH1RFileManager = std::make_shared<G4CsvHnRF 43 fH2RFileManager = std::make_shared<G4CsvHnRF 44 fH3RFileManager = std::make_shared<G4CsvHnRF 45 fP1RFileManager = std::make_shared<G4CsvHnRF 46 fP2RFileManager = std::make_shared<G4CsvHnRF 47 } 48 49 //____________________________________________ 50 G4CsvRFileManager::~G4CsvRFileManager() 51 { 52 for ( auto& rfile : fRFiles ) { 53 delete rfile.second; 54 } 55 } 56 57 // 58 // public methods 59 // 60 61 //____________________________________________ 62 G4bool G4CsvRFileManager::OpenRFile(const G4St 63 { 64 Message(kVL4, "open", "read analysis file", 65 66 // create new file 67 auto newFile = new std::ifstream(fileName); 68 if ( ! newFile->is_open() ) { 69 Warn("Cannot open file " + fileName, fkCla 70 return false; 71 } 72 73 // add file in a map and delete the previous 74 auto it = fRFiles.find(fileName); 75 if ( it != fRFiles.end() ) { 76 delete it->second; 77 it->second = newFile; 78 } 79 else { 80 fRFiles[fileName] = newFile; 81 } 82 83 Message(kVL1, "open", "read analysis file", 84 85 return true; 86 } 87 88 //____________________________________________ 89 std::ifstream* G4CsvRFileManager::GetRFile(con 90 { 91 auto it = fRFiles.find(fileName); 92 if (it != fRFiles.end()) { 93 return it->second; 94 } 95 return nullptr; 96 } 97