File indexing completed on 2026-06-04 08:03:26
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #include "ExTGRCRegionData.hh"
0030
0031 #include "G4UIcommand.hh"
0032 #include "G4tgrUtils.hh"
0033
0034
0035 ExTGRCRegionData::ExTGRCRegionData(const std::vector<G4String>& wl)
0036 {
0037 if (wl.size() < 2) {
0038 G4Exception("ExTGRCRegionData::ExTGRCRegionData()", "InvalidArgument", FatalErrorInArgument,
0039 G4UIcommand::ConvertToString(G4int(wl.size())));
0040 }
0041 fRegionName = wl[0];
0042 for (size_t ii = 1; ii < wl.size(); ii++) {
0043 fLVNames.push_back(wl[ii]);
0044 }
0045 fbCutsSet = false;
0046 fGammaCut = 1.;
0047 fElectronCut = 1.;
0048 fPositronCut = 1.;
0049 }
0050
0051
0052 ExTGRCRegionData::~ExTGRCRegionData() {}
0053
0054
0055 void ExTGRCRegionData::SetCutsData(const std::vector<G4String>& rc)
0056 {
0057 if ((rc.size() != 3) && (rc.size() != 4)) {
0058 G4cerr << "ERROR - ExTGRCRegionData::SetCutsData()" << G4endl
0059 << " Must have 3 or 4 arguments : "
0060 << "REGION_NAME, gamma_CUT, e-_CUT (e+_CUT)." << G4endl << " It has only "
0061 << rc.size() << " !" << G4endl;
0062 G4Exception("ExTGRCRegionCutsMgr::AddRegionCuts()", "InvalidArgument", FatalErrorInArgument,
0063 G4UIcommand::ConvertToString(G4int(rc.size())));
0064 }
0065
0066 if (fbCutsSet) {
0067 G4Exception("ExTGRCRegionData::SetCutsData()", "InvalidArgument", JustWarning,
0068 G4String("Cuts are already set for region " + fRegionName).c_str());
0069 }
0070
0071 fGammaCut = G4tgrUtils::GetDouble(rc[1]);
0072 fElectronCut = G4tgrUtils::GetDouble(rc[2]);
0073 if (rc.size() == 3) {
0074 fPositronCut = fElectronCut;
0075 }
0076 else {
0077 fPositronCut = G4tgrUtils::GetDouble(rc[3]);
0078 }
0079
0080 fbCutsSet = true;
0081 }