51 parser.Read(
"Par02FullDetector.gdml" );
52 G4cout <<
"Geometry loaded from file .......Par02FullDetector.gdml " << G4endl;
57 const G4GDMLAuxMapType* aAuxMap = parser.GetAuxMap();
58 for ( G4GDMLAuxMapType::const_iterator iter = aAuxMap->begin();
59 iter != aAuxMap->end(); ++iter ) {
60 for ( G4GDMLAuxListType::const_iterator vit = (*iter).second.begin();
61 vit != (*iter).second.end(); ++vit ) {
62 if ( (*vit).type ==
"FastSimModel" ) {
64 if ( ( myvol->GetName() ).find(
"Tracker" ) != std::string::npos ) {
67 G4cout << G4endl <<
"tracker !!!" << G4endl;
68 }
else if ( ( myvol->GetName() ).find(
"HCal" ) != std::string::npos ) {
70 fHCalList.back()->AddRootLogicalVolume( myvol );
71 G4cout << G4endl <<
"hcal !!!" << G4endl;
72 }
else if ( ( myvol->GetName() ).find(
"ECal" ) != std::string::npos ) {
74 fECalList.back()->AddRootLogicalVolume( myvol );
75 G4cout << G4endl <<
"ecal !!!" << G4endl;
76 }
else if ( ( myvol->GetName() ).find(
"Muon" ) != std::string::npos ) {
78 fMuonList.back()->AddRootLogicalVolume( myvol );
80 G4cout << G4endl <<
"NOT A KNOWN DETECTOR !!!" << G4endl;
85 for ( G4int iterTracker = 0; iterTracker < G4int(
fTrackerList.size() );
88 fTrackerList[ iterTracker ]->GetProductionCuts()->SetProductionCut
89 ( 1.0* ( ( *
fTrackerList[ iterTracker ]->GetRootLogicalVolumeIterator() )->
90 GetMaterial()->GetRadlen() ) );
92 SetProductionCut( 1.0*m, idxG4GammaCut );
94 for ( G4int iterECal = 0; iterECal < G4int(
fECalList.size() ); iterECal++ ) {
96 fECalList[ iterECal ]->GetProductionCuts()->SetProductionCut
97 ( 0.5* ( ( *
fECalList[ iterECal ]->GetRootLogicalVolumeIterator() )->
98 GetMaterial()->GetRadlen() ) );
99 fECalList[ iterECal ]->GetProductionCuts()->
100 SetProductionCut( 0.1*m, idxG4GammaCut );
102 for ( G4int iterHCal = 0; iterHCal < G4int(
fHCalList.size() ); iterHCal++ ) {
104 fHCalList[ iterHCal ]->GetProductionCuts()->SetProductionCut(
105 0.5* ( ( *
fHCalList[iterHCal]->GetRootLogicalVolumeIterator() )->
106 GetMaterial()->GetRadlen() ) );
107 fHCalList[ iterHCal ]->GetProductionCuts()->
108 SetProductionCut( 1.0*m, idxG4GammaCut );
112 return parser.GetWorldVolume();
118 for ( G4int iterTracker = 0; iterTracker < G4int(
fTrackerList.size() );
127 G4AutoDelete::Register(fastSimModelTracker);
129 for ( G4int iterECal = 0; iterECal < G4int(
fECalList.size() ); iterECal++ ) {
137 G4AutoDelete::Register(fastSimModelEMCal);
139 for ( G4int iterHCal = 0; iterHCal < G4int(
fHCalList.size() ); iterHCal++ ) {
147 G4AutoDelete::Register( fastSimModelHCal );
155 G4ThreeVector fieldValue = G4ThreeVector();