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 /////////////////////////////////////////////////////////////////////////////// 27 // File: CCalSDList.cc 28 // Description: Records names of all SD objects 29 /////////////////////////////////////////////////////////////////////////////// 30 #include "CCalSDList.hh" 31 32 G4ThreadLocal CCalSDList* CCalSDList::theList = nullptr; 33 34 35 CCalSDList::CCalSDList() {} 36 37 38 CCalSDList::~CCalSDList() {} 39 40 41 CCalSDList* CCalSDList::getInstance() { 42 if ( theList == nullptr ) { 43 static G4ThreadLocalSingleton< CCalSDList > inst; 44 theList = inst.Instance(); 45 } 46 return theList; 47 } 48 49 50 void CCalSDList::addCalo( nameType name ) { 51 theList->caloSD.push_back(name); 52 } 53 54 55 void CCalSDList::addTracker( nameType name ) { 56 theList->trackerSD.push_back(name); 57 } 58 59 60 nameType CCalSDList::getCaloSDName( G4int i ) { 61 if (i>=theList->getNumberOfCaloSD() || i<0) { 62 G4cout << "CCalSDList invalid calo SD no: " << i << " max is " 63 << theList->getNumberOfCaloSD() << G4endl; 64 return " "; 65 } else 66 return theList->caloSD[i]; 67 } 68 69 70 nameType CCalSDList::getTrackerSDName( G4int i ) { 71 if (i>=theList->getNumberOfTrackerSD() || i<0) { 72 G4cout << "CCalSDList invalid tracker SD no: " << i << " max is " 73 << theList->getNumberOfTrackerSD() << G4endl; 74 return " "; 75 } else { 76 return theList->trackerSD[i]; 77 } 78 } 79 80 81 G4int CCalSDList::getNumberOfCaloSD() { 82 return theList->caloSD.size(); 83 } 84 85 86 G4int CCalSDList::getNumberOfTrackerSD() { 87 return theList->trackerSD.size(); 88 } 89 90 91 CCalSDList& CCalSDList::operator=( CCalSDList& ) { 92 return *this; 93 } 94