Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
ExTGRCRegionCutsMgr Class Reference

Region cuts manager. More...

#include <Doxymodules_persistency.h>

Public Member Functions

 ~ExTGRCRegionCutsMgr ()
 
void AddRegionData (const std::vector< G4String > &rd)
 
void AddRegionCuts (const std::vector< G4String > &rc)
 
std::vector< ExTGRCRegionData * > FindRegionData (const G4String &name)
 
void BuildRegions ()
 
void BuildProductionCuts ()
 

Static Public Member Functions

static ExTGRCRegionCutsMgrGetInstance ()
 

Private Member Functions

 ExTGRCRegionCutsMgr ()
 

Private Attributes

std::vector< ExTGRCRegionData * > fRegionDatae
 

Static Private Attributes

static ExTGRCRegionCutsMgrfInstance = 0
 

Detailed Description

Region cuts manager.

Changes: creation May 2007

Author
P. Arce

Definition at line 122 of file Doxymodules_persistency.h.

Constructor & Destructor Documentation

◆ ~ExTGRCRegionCutsMgr()

ExTGRCRegionCutsMgr::~ExTGRCRegionCutsMgr ( )

Definition at line 59 of file ExTGRCRegionCutsMgr.cc.

60{
61 delete fInstance;
62}
static ExTGRCRegionCutsMgr * fInstance

◆ ExTGRCRegionCutsMgr()

ExTGRCRegionCutsMgr::ExTGRCRegionCutsMgr ( )
private

Definition at line 54 of file ExTGRCRegionCutsMgr.cc.

55{
56}

Member Function Documentation

◆ GetInstance()

ExTGRCRegionCutsMgr * ExTGRCRegionCutsMgr::GetInstance ( )
static

Definition at line 44 of file ExTGRCRegionCutsMgr.cc.

45{
46 if( !fInstance )
47 {
49 }
50 return fInstance;
51}

◆ AddRegionData()

void ExTGRCRegionCutsMgr::AddRegionData ( const std::vector< G4String > &  rd)

Definition at line 65 of file ExTGRCRegionCutsMgr.cc.

66{
67
68 if( (rd.size() > 1) && (FindRegionData( rd[0] ).size() != 0) )
69 {
70 G4Exception("ExTGRCRegionCutsMgr::AddRegionData", "InvalidArgument",
71 JustWarning,
72 G4String("Region already exists: " + rd[0]).c_str() );
73 return;
74 }
75 fRegionDatae.push_back( new ExTGRCRegionData( rd ) );
76}
std::vector< ExTGRCRegionData * > FindRegionData(const G4String &name)
std::vector< ExTGRCRegionData * > fRegionDatae
Stores cuts per region data.

◆ AddRegionCuts()

void ExTGRCRegionCutsMgr::AddRegionCuts ( const std::vector< G4String > &  rc)

Definition at line 79 of file ExTGRCRegionCutsMgr.cc.

80{
81 if( rc.size() == 0 )
82 {
83 G4cerr << "ERROR - ExTGRCRegionCutsMgr::AddRegionCuts()" << G4endl
84 << " Must have 3 or 4 arguments : REGION_NAME, gamma_CUT,"
85 << " e-_CUT (e+_CUT)." << G4endl
86 << " It has only " << rc.size() << " !" << G4endl;
87 G4Exception("ExTGRCRegionCutsMgr::AddRegionCuts()", "InvalidArgument",
88 FatalErrorInArgument, G4UIcommand::ConvertToString(G4int(rc.size())) );
89 }
90
91 // Find region
92 // std::vector<ExTGRCRegionData*>::const_iterator iter;
93 std::vector<ExTGRCRegionData*> regs = FindRegionData(rc[0]);
94
95 if( regs.size() == 0 )
96 {
97 G4Exception("ExTGRCRegionCutsMgr::AddRegionCuts()",
98 "InvalidArgument", FatalErrorInArgument,
99 G4String(" region does not exist: " + rc[0]).c_str());
100 }
101
102 for( size_t ii = 0; ii < regs.size(); ii++)
103 {
104 regs[ii]->SetCutsData( rc );
105 }
106}

◆ FindRegionData()

std::vector< ExTGRCRegionData * > ExTGRCRegionCutsMgr::FindRegionData ( const G4String name)

Definition at line 109 of file ExTGRCRegionCutsMgr.cc.

110{
111 std::vector<ExTGRCRegionData*> regs;
112 std::vector<ExTGRCRegionData*>::const_iterator iter;
113 for( iter = fRegionDatae.begin(); iter != fRegionDatae.end(); iter++ )
114 {
115 if( G4tgrUtils::AreWordsEquivalent( name , (*iter)->GetRegionName()) )
116 {
117 regs.push_back(*iter);
118 }
119 }
120 return regs;
121}

◆ BuildRegions()

void ExTGRCRegionCutsMgr::BuildRegions ( )

Definition at line 124 of file ExTGRCRegionCutsMgr.cc.

125{
126 std::vector<ExTGRCRegionData*>::const_iterator iter;
127 std::vector<G4String>::const_iterator ites;
128 // std::vector<G4LogicalVolume*>::const_iterator itelv;
129 for( iter = fRegionDatae.begin(); iter != fRegionDatae.end(); iter++ )
130 {
131 G4Region* reg = new G4Region( (*iter)->GetRegionName() );
132 std::vector<G4String> lvs = (*iter)->GetLVNames();
133 for( ites = lvs.begin(); ites != lvs.end(); ites++ )
134 {
135 G4LogicalVolume* logVol =
136 G4tgbVolumeMgr::GetInstance()->FindG4LogVol(*ites, true );
137 reg->AddRootLogicalVolume( logVol );
138 }
139 }
140}

◆ BuildProductionCuts()

void ExTGRCRegionCutsMgr::BuildProductionCuts ( )

Definition at line 143 of file ExTGRCRegionCutsMgr.cc.

144{
145 std::vector<ExTGRCRegionData*>::const_iterator iter;
146 G4RegionStore* regions = G4RegionStore::GetInstance();
147 //----- loop to region datae
148 for( iter = fRegionDatae.begin(); iter != fRegionDatae.end(); iter++ )
149 {
150 if( (*iter)->CutsAreSet() )
151 {
152 G4Region* reg = regions->GetRegion( (*iter)->GetRegionName() );
153 if( !reg )
154 {
155 G4Exception("ExTGRCRegionCutsMgr::BuildProductionCuts()",
156 "InvalidArgument", FatalErrorInArgument,
157 G4String("Region not found: " + (*iter)->GetRegionName()).c_str() );
158 }
160
161 cuts->SetProductionCut((*iter)->GetGammaCut(),"gamma");
162 cuts->SetProductionCut((*iter)->GetElectronCut(),"e-");
163 cuts->SetProductionCut((*iter)->GetPositronCut(),"e+");
164 reg->SetProductionCuts(cuts);
165 }
166 }
167}

Member Data Documentation

◆ fInstance

ExTGRCRegionCutsMgr * ExTGRCRegionCutsMgr::fInstance = 0
staticprivate

Definition at line 67 of file ExTGRCRegionCutsMgr.hh.

◆ fRegionDatae

std::vector<ExTGRCRegionData*> ExTGRCRegionCutsMgr::fRegionDatae
private

Definition at line 68 of file ExTGRCRegionCutsMgr.hh.


The documentation for this class was generated from the following files:

Applications | User Support | Publications | Collaboration