Warning, /geant4/examples/extended/parameterisations/gflash/README is written in an unsupported language. File is not indexed.
0001 $README, v 1.0 26.11.2004 Joanna Weng $
0002 -------------------------------------------------------------------
0003
0004
0005
0006
0007 =========================================================
0008 Geant4 - an Object-Oriented Toolkit for Simulation in HEP
0009 =========================================================
0010
0011 GFLASH Examples
0012 --------------
0013
0014 These examples demonstrate the use of the GFLASH parameterisation library.
0015 They use the GFLASH equations (hep-ex/0001020, Grindhammer & Peters)
0016 to parametrise electromagnetic showers in matter.
0017 In these examples the calorimeter is a simple cube,
0018 which consists of 10 x 10 crystals of PbWO4 (CMS like).
0019
0020 Briefly, whenever a e-/e+ enters the calorimeter, it is parametrised if it
0021 has a minimum energy and the shower is expected to be contained
0022 in the calorimeter (so called " parameterisation envelope").
0023 If this is fullfilled the particle is killed, as well as all secondaries,
0024 and the energy is deposited according to the GFLASH equations.
0025
0026 The examples show how to interface GFLASH to your application.
0027 The simulation time is measured, so the user can see immediately
0028 the speed up by using GFLASH.
0029
0030 Geometry and parametrisation is defined in different ways in the set of three equivalent
0031 (in terms of produced showers) examples: gflash1, gflash2 and gflash3, to demonstrate
0032 how to use the parametrisation, sensitive detectors and parallel geometry.
0033 The classes which are the same in all three examples have the names with ExGflash prefix while
0034 the names of classes specific to each example have the prexix ExGflash[1,2,3].
0035
0036 The gflasha example - allow histogramming of show profiles and fine tuning
0037 of gflash parametrization for homogeneous medium. This examples has a standalone documentation.
0038
0039 Note: Instead of particle gun the gps class is used here for particle generation.
0040
0041 Briefly
0042 -------
0043
0044 Table below presents in which world/geometry (mass or parallel) each of the elements is defined.
0045
0046
0047 +------------------------------+----------+--------------+--------------+
0048 | Example | gflash1 | gflash2 | gflash3 |
0049 +------------------------------+----------+--------------+--------------+
0050 | Block of material | mass geo | mass geo | mass geo |
0051 +------------------------------+----------+--------------+--------------+
0052 | Crystals (readout geometry) | mass geo | mass geo | parallel geo |
0053 +------------------------------+----------+--------------+--------------+
0054 | Sensitive detector | mass geo | mass geo | parallel geo |
0055 +------------------------------+----------+--------------+--------------+
0056 | Envelope for parametrisation | mass geo | parallel geo | mass geo |
0057 +------------------------------+----------+--------------+--------------+
0058
0059
0060 Example gflash1:
0061
0062 Uses only the mass geometry, with each crystal defined as a volume,
0063 with parametrisation attached to the envelope in the mass geometry.
0064 Geometry and sensitive detector are defined in:
0065 ExGflash1DetectorConstruction
0066 ExGflash1SensitiveDetector
0067
0068 Example gflash2:
0069
0070 Uses mass geometry to create volumes and to create a sensitive detector
0071 for storing hits, but parametrisation is attached to the envelope
0072 in the parallel geometry (see also examples/extended/parametrisations/Par01).
0073 Geometry and sensitive detector are defined in:
0074 ExGflash2DetectorConstruction
0075 ExGflash2ParallelWorld
0076 ExGflash2SensitiveDetector
0077
0078 Example gflash3:
0079
0080 Uses mass geometry to create the main volume (homogeneous material) and use it
0081 as an envelope for the parametrisation, but the readout geometry (crystals)
0082 are defined in the parallel geometry, together with the sensitive detector
0083 to store the hits.
0084 Geometry and sensitive detector are defined in:
0085 ExGflash3DetectorConstruction
0086 ExGflash3ParallelWorld
0087 ExGflash3SensitiveDetector
0088
0089 Details of implementation:
0090 -------
0091
0092 Example gflash1:
0093
0094 To use GFLASH the user has to implement the following:
0095
0096 - ExGflash1DetectorConstruction::ConstructSD() :
0097 Here GFLASH has to be initialized and assigend to the envelope,
0098 where it should be active (here our calorimeter = fCalo_log )
0099
0100 // **********************************************
0101 // * Initializing shower modell
0102 // ***********************************************
0103 G4cout << "Creating shower parameterization models" << G4endl;
0104 fFastShowerModel = new GFlashShowerModel("fFastShowerModel", fRegion);
0105 fParameterisation = new GFlashHomoShowerParameterisation(pbWO4);
0106 fFastShowerModel->SetParameterisation(*fParameterisation);
0107 fParticleBounds = new GFlashParticleBounds();
0108 fFastShowerModel->SetParticleBounds(*fParticleBounds);
0109 fHitMaker = new GFlashHitMaker();
0110 fFastShowerModel->SetHitMaker(*fHitMaker);
0111 G4cout<<"end shower parameterization."<<G4endl;
0112
0113 - ExGflash1SensitiveDetector:
0114 It is mandatory to use G4VGFlashSensitiveDetector as (additional)
0115 base class for the sensitive detector.
0116 Here it is necessary to implement a seperate
0117 interface, where the GFlash spots are processed.
0118 (ProcessHits(G4GFlashSpot*aSpot ,G4TouchableHistory* ROhist))
0119 The separate interface is used, because the GFLASH spots contains
0120 (naturally) less information than the full simulation.
0121
0122
0123 Example gflash2:
0124
0125 - ExGflash2.cc:
0126 Parallel world needs to be registered;
0127 Fast simulation is activated for parallel world (where envelope is);
0128
0129 - ExGflash2DetectorConstruction:
0130 Only main geometry and SD are created;
0131
0132 - ExGflash2ParallelWorld:
0133 Construction of identical volume for the main box as in the mass geometry,
0134 but with dummy material (it is not used anyway);
0135 Creation of G4Region associated to G4LogicalVolume;
0136 Initialization of GFlash, attaching it to the envelope (G4Region);
0137
0138 - ExGflash2SensitiveDetector:
0139 Uses pointer to ExGflash2ParallelWorld to get the crystals for the readout;
0140
0141 Example gflash3:
0142
0143 - ExGflash3.cc:
0144 Parallel world needs to be registered;
0145 Physics of the parallel world needs to be registered so sensitive detector can
0146 collect hits;
0147 Fast simulation is activated for mass world (where envelope is);
0148
0149 - ExGflash3DetectorConstruction:
0150 Only main volume (box) with material is created;
0151 Creation of G4Region associated to G4LogicalVolume of that box;
0152 Initialization of GFlash, attaching it to the envelope (G4Region);
0153
0154 - ExGflash3ParallelWorld:
0155 Construction of identical volume for the main box as in the mass geometry,
0156 but with dummy material (it is not used anyway);
0157 Construction of individual crystals for the readout geometry;
0158 Creation of the sensitive detector;
0159
0160 - ExGflash3SensitiveDetector:
0161 Uses pointer to ExGflash3DetectorConstruction to get the crystals for the readout;
0162
0163 Macros
0164 -------
0165 vis.mac - macro for use in interactive mode (default, if no arguments are specified)
0166 test.mac - macro for tests: 50 GeV electrons are shot in the direction of the detector
0167 (along z axis), 10 times. As they enter the parametrisation envelope,
0168 the GFlash parametrisation is invoked and energy is deposited.
0169 The results are printed out:
0170 - energy in the most central crystal
0171 - energy in 3x3 crystals
0172 - energy in 5x5 crystals
0173 - number of created deposits
0174 - simulation time per event
0175