
///\file "analysis/AnaEx03/.README.txt"
///\brief Example AnaEx03 README page

/*! \page ExampleAnaEx03 Example AnaEx03

 Examples AnaEx01, AnaEx02 and AnaEx03 show the usage of histogram and tuple 
 manipulations using G4Analysis, ROOT and AIDA compliant systems on the same
 scenario. All analysis manipulations (histo booking, filling, saving histos 
 in a file, etc...) are located in one class : HistoManager, implementation of 
 which is different in each example. All the other classes are same in all 
 three examples.
 
 This example shows the usage of histogram and tuple manipulations using 
 an AIDA compliant system. 
 
 The example is an adaptation of examples/novice/N03. It describes a simple 
 sampling calorimeter setup.

\section AnaEx03_s1 Detector description
 
 The calorimeter is a box made of a given number of layers. A layer
 consists of an absorber plate and of a detection gap. The layer is
 replicated.
 
 Six parameters define the calorimeter :
    - the material of the absorber,
    - the thickness of an absorber plate,
    - the material of the detection gap,
    - the thickness of a  gap,
    - the number of layers,
    - the transverse size of the calorimeter (the input face is a square). 
 
 The default geometry is constructed in DetectorConstruction class,
 but all of the above parameters can be modified interactively via
 the commands defined in the DetectorMessenger class.

<pre>

        |<----layer 0---------->|<----layer 1---------->|<----layer 2---------->|
        |                       |                       |                       |
        ==========================================================================
        ||              |       ||              |       ||              |       ||
        ||              |       ||              |       ||              |       ||
 beam   ||   absorber   |  gap  ||   absorber   |  gap  ||   absorber   |  gap  ||
======> ||              |       ||              |       ||              |       ||
        ||              |       ||              |       ||              |       ||
        ==========================================================================

</pre>	

\section AnaEx03_s2 Physics list

   The particle's type and the physic processes which will be available
   in this example are set in the FTFP_BERT physics list.

\section AnaEx03_s3 Action Initialization

   A newly introduced class, ActionInitialization, 
   instantiates and registers to Geant4 kernel all user action classes 
   which are defined thread-local and a run action class
   which is defined both thread-local and global.
   
   The thread-local action classes are defined in 
     ActionInitialization::Build() 
   and  the global run action class is defined in 
     ActionInitialization::BuildForMaster().
   Note that ActionInitialization::Build() is also used to 
   instatiate user action clasess in sequential mode.

\section AnaEx03_s4 An event : PrimaryGeneratorAction
 
 The primary kinematic consists of a single particle which hits the
 calorimeter perpendicular to the input face. The type of the particle
 and its energy are set in the PrimaryGeneratorAction class, and can
 be changed via the G4 build-in commands of ParticleGun class.


\section AnaEx03_s5 Histograms

 To produce histograms, at least one of the AIDA implementations should be 
 available. See the file InstallAida.txt
    
 AnaEx03 can produce 4 histograms :
  
  - EAbs : total energy deposit in absorber per event
  - EGap : total energy deposit in gap per event	  
  - LAbs : total track length of charged particles in absorber per event 	
  - LGap : total track length of charged particles in gap per event 
 
 And 2 Ntuples :
 - Ntuple1:
   - one row per event : EnergyAbs EnergyGap
 - Ntuple2:
   - one row per event : TrackLAbs TrackLGap
  
 These histos and ntuples are booked in HistoManager and filled from 
 EventAction.
 
 One can control the name of the histograms file and its format:
 - default name     : AnaEx03
 Possible formats : hbook root (default) xml
 
 See HistoManager constructor
    
 Note that, by default, histograms are disabled. To activate them, uncomment
 the flag G4ANALYSIS_USE in GNUmakefile, *before* compilation.
   
\section AnaEx03_s6 AIDA and OpenScientist

 See the pages \link ExampleAnaEx03AIDA README.AIDA \endlink and
  \link ExampleAnaEx03OpenScientist README.OpenScientist \endlink
 for more indications how to use this system to visualize and handle 
 histogram files.
  
\section AnaEx02_s7 How to build

 An additional step is needed when building the example with GNUmake
 due to using the extra shared directory: 
\verbatim      
% cd path_to_AnaEx03/AnaEx03
% gmake setup
% gmake
\endverbatim

 This will copy the files from shared in the example include and src;
 to remove these files:
\verbatim      
% gmake clean_setup
\endverbatim

\section AnaEx03_s8 HOW TO RUN

- Execute AnaEx03 in the 'interactive mode' with visualization
\verbatim
% ./AnaEx03
and type in the commands from run.mac line by line:
Idle> /control/verbose 2
Idle> /tracking/verbose 1
Idle> /run/beamOn 10 
Idle> ...
Idle> exit
\endverbatim                
      or
\verbatim
Idle> /control/execute run.mac
....
Idle> exit
\endverbatim                

- Execute AnaEx03 in the 'batch' mode from macro files 
(without visualization)
\verbatim
% ./AnaEx03 run.mac
% ./AnaEx03 run.mac > run.out
\endverbatim                

The AnaEx03.in macro is used in Geant4 testing.

*/
