Presentation is loading. Please wait.

Presentation is loading. Please wait.

Makoto Asai.  Parallel layered mass geometry  Other minor improvement  G4Exception.

Similar presentations


Presentation on theme: "Makoto Asai.  Parallel layered mass geometry  Other minor improvement  G4Exception."— Presentation transcript:

1 Makoto Asai

2  Parallel layered mass geometry  Other minor improvement  G4Exception

3  In the past, material is considered only if it appears in the mass (tracking) world. The user might define parallel world(s) for artificial purposes, i.e. shower parameterization envelopes, readout/scoring geometry, dedicated stepping action.  Now, the user may define a material in parallel world(s) which is also seen by physics processes.

4 Mass worldParallel world - 1 Parallel world - 2Tracking time

5  A step is limited on the boundary of any volume of any world.  The step (and all physics processes) sees the material defined in the top-most later. If the top-most layer has null pointer to material, material in next layer is used.

6 int main(int argc,char** argv) { G4String paraWorldName = "ParallelWorld"; Tst1DetectorConstruction* realWorld = new Tst1DetectorConstruction; Tst1ParallelWorldConstruction* parallelWorld = new Tst1ParallelWorldConstruction(paraWorldName); realWorld->RegisterParallelWorld(parallelWorld); runManager->SetUserInitialization(realWorld); // G4VUserPhysicsList* physics = newTst1PhysicsList(paraWorldName); runManager->SetUserInitialization(physics);

7 void Tst1ParallelWorldConstruction::Construct() { // World G4VPhysicalVolume* ghostWorld = GetWorld (); G4LogicalVolume* worldLogical = ghostWorld->GetLogicalVolume(); G4Material* water = G4Material::GetMaterial("Water"); // parallel world placement box G4VSolid* paraBox = new G4Box("paraBox",5.0*cm,30.0*cm,5.0*cm); G4LogicalVolume* paraBoxLogical = new G4LogicalVolume(paraBox, water,"paraBox"); new G4PVPlacement(0,G4ThreeVector(-25.0*cm,0.,0.),paraBoxLogical, "paraBox",worldLogical,false,0);

8 #include "G4ParallelWorldProcess.hh" void Tst1PhysicsList::AddParallelWorldProcess() { G4ParallelWorldProcess* theParallelWorldProcess = new G4ParallelWorldProcess("paraWorldProc"); theParallelWorldProcess->SetParallelWorld(pWorldName); theParallelWorldProcess-> SetLayeredMaterialFlag(); theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); if(particle!=G4ChargedGeantino::Definition()) { G4ProcessManager* pmanager = particle->GetProcessManager(); pmanager->AddProcess(theParallelWorldProcess); if(theParallelWorldProcess->IsAtRestRequired(particle) { pmanager->SetProcessOrderingToLast(theParallelWorldProcess, idxAtRest); } pmanager->SetProcessOrdering(theParallelWorldProcess, idxAlongStep, 1); pmanager->SetProcessOrderingToLast(theParallelWorldProcess, idxPostStep); }

9  Replacement of G4ParallelWorldScoringProcess  If SetLayeredMaterialFlag() is not set, it behaves as G4ParallelWorldScoringProcess.  For each parallel world, dedicated object of G4ParallelWorldProcess is required.  It is a process. Thus it may be assigned to some selected types of particles.

10  Material-cuts-couple (MCC) is examined for all worlds.  At the tracking time, material pointer and MCC pointer in G4StepPoint are changed to those for top-most layer before invoking GPIL() of each physics process.

11  Brachytherapy treatment for prostate cancer. Manually implemented DICOM

12  Firstly seeds were placed in the empty parallel world DICOM

13  Seeds in the parallel world were pencapsulated in empty boxes for faster navigation DICOM

14  Two major use-cases  Concept of “many” in Geant3  Different level of complexity for different particle types  In HENP  Rapid prototyping for complicated detector  Sampling calorimeter  Detector partially dipped in liquid  In space  Satellite structure and loaded aparatus  In medicine  Treatment head overlapping to DICOM data

15  Computing performance of cylindrical scoring mesh has been improved significantly (~30%) by fixing the use of G4Division for G4Tubs.

16  Based on the requests from LHC experiments, and on the agreed collaboration work plan for 2011, we will unify the format of error / warning messages made by G4Exception.  Obsolete: G4Exception(const char* message)

17 G4Exception(const char* originOfException, const char* exceptionCode, G4ExceptionSeverity severity, const char* comments) G4Exception(const char* originOfException, const char* exceptionCode, G4ExceptionSeverity severity, G4ExceptionDescription& description) G4Exception(const char* originOfException, const char* exceptionCode, G4ExceptionSeverity severity, G4ExceptionDescription& description, const char* comments)

18  originOfException: class::method name where this exception is issued. e.g. G4RunManager::BeamOn()  exceptionCode: Error code which is unique to this error. Error code should be a combination of string and ID number. String can be a (sub-)category name or (physics) model name. e.g. Run0001, Bertini0001 -- It must not be like "FileNotFound".  severity enum G4ExceptionSeverity { FatalException, FatalErrorInArgument, RunMustBeAborted, EventMustBeAborted, JustWarning };  G4ExceptionDescription: Current G4cout or G4cerr should be replaced by a local object of G4ExceptionDescription, which supports ostream operator (<<), setw(), G4endl and even G4BestUnit().

19  quick check for geant4-09-04-ref-08 (maybe not exactly)  comment out old G4Exception in globals.hh  The below table shows “ # of errors in the own category (# of errors)” analysis0 digits_hits0 (14) error_propagation0 (5) event2 (15) externals0 g3tog40 (5) geometry32 global4 graphics_reps1 intercoms1 interfaces2 materials5 parameterisations0 (5) particles4 persistency12 (19) physics_lists0 (15) processes107 (379) readout0 (22) run0 (2) track0 (5) tracking0 (5) visualization17 (87)


Download ppt "Makoto Asai.  Parallel layered mass geometry  Other minor improvement  G4Exception."

Similar presentations


Ads by Google