| [807] | 1 | $README, v 1.0 26.11.2004 Joanna Weng $
|
|---|
| 2 | -------------------------------------------------------------------
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 | =========================================================
|
|---|
| 8 | Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
|---|
| 9 | =========================================================
|
|---|
| 10 |
|
|---|
| 11 | GFLASH Example
|
|---|
| 12 | ----------
|
|---|
| 13 |
|
|---|
| 14 | This examples demonstrates the use of the GFLASH parameterisation library.
|
|---|
| 15 | It uses the GFLASH equations(hep-ex/0001020, Grindhammer & Peters)
|
|---|
| 16 | to parametrise electromagnetic showers in matter.
|
|---|
| 17 | In this example the calorimeter is a simple cube,
|
|---|
| 18 | which consists of 10 x 10 crystals of PbWO4 (CMS like:).
|
|---|
| 19 | The Geant4 shower framework is used (see novice example N05)
|
|---|
| 20 | Geometry, sensitive detector, hits, processes are defined respectively in:
|
|---|
| 21 |
|
|---|
| 22 | ExGflashDetectorConstruction
|
|---|
| 23 | ExGflashSensitiveDetector
|
|---|
| 24 | ExGflashHit
|
|---|
| 25 | ExGflashPhysicsList
|
|---|
| 26 |
|
|---|
| 27 | Briefly, whenever a e-/e+ enters the calorimeter, it is parametrised if it
|
|---|
| 28 | has a minimum energy and the shower is expected to be contained
|
|---|
| 29 | in the calorimeter(so called " parameterisation envelope").
|
|---|
| 30 | If this is fullfilled the particle is killed, as well as all secondaries,
|
|---|
| 31 | and the energy is deposited according to the GFLASH equations.
|
|---|
| 32 | The example shows how to interface GFLASH to your application.
|
|---|
| 33 | The simulation time is measured, so the user can see immiadiatly
|
|---|
| 34 | the speed up by using GFLASH.
|
|---|
| 35 |
|
|---|
| 36 |
|
|---|
| 37 | To use GFLASH the user has to implement the following to use GFLASH:
|
|---|
| 38 |
|
|---|
| 39 | o ExGflashPhysicsList::AddParameterisation():
|
|---|
| 40 | the paraameterisation has to be added to the processmanager.
|
|---|
| 41 | Don't forget it, since than gflash is never triggered.
|
|---|
| 42 |
|
|---|
| 43 | o ExGflashDetectorConstruction :
|
|---|
| 44 | Here GFLASH has to be initialized and assigend to the enelope,
|
|---|
| 45 | where it should be active (here our calorimeter = m_calo_log )
|
|---|
| 46 | /**********************************************
|
|---|
| 47 | * Initializing shower modell
|
|---|
| 48 | ***********************************************/
|
|---|
| 49 | cout<<"Shower parameterization"<<endl;
|
|---|
| 50 | m_theFastShowerModel = new GFlashShowerModel("fastShowerModel",m_calo_log);
|
|---|
| 51 | m_theParametrisation = new GFlashHomoShowerParamterisation(matManager->getMaterial(mat));
|
|---|
| 52 | m_theFastShowerModel->SetParametrisation(*m_theParametrisation);
|
|---|
| 53 | m_theFastShowerModel->SetParticleBounds(*m_theParticleBounds) ;
|
|---|
| 54 | m_theFastShowerModel->SetHitMaker(*m_theHMaker);
|
|---|
| 55 | cout<<"end shower parameterization"<<endl;
|
|---|
| 56 | /**********************************************/
|
|---|
| 57 |
|
|---|
| 58 | o ExGflashSensitiveDetector:
|
|---|
| 59 | It is mandatory to use G4VGFlashSensitiveDetector as (additionl)
|
|---|
| 60 | base class for the sensitive detector.
|
|---|
| 61 | Here it is necessary to implement a seperate
|
|---|
| 62 | interface, where the GFlash spots are processed.
|
|---|
| 63 | (ProcessHits(G4GFlashSpot*aSpot ,G4TouchableHistory* ROhist))
|
|---|
| 64 | The separate interface is used, because the GFLASH spots contains
|
|---|
| 65 | (naturally) less information than the full simulation.
|
|---|
| 66 |
|
|---|
| 67 | Note: Intead of particle gun the gps class is used here for
|
|---|
| 68 | particle generation.
|
|---|
| 69 | |
|---|