Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-23 09:21:08

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 /// \file eventgenerator/HepMC/HepMCEx02/src/HEPEvtcom.cc
0027 /// \brief Implementation of the HEPEvtcom class
0028 //
0029 // ======================================================================
0030 //      PARAMETER (NMXHEP=4000)
0031 //      COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
0032 //     &        JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
0033 // ======================================================================
0034 ///**********************************************************/
0035 ///*           D E S C R I P T I O N :                      */
0036 ///*--------------------------------------------------------*/
0037 ///* NEVHEP          - event number (or some special meaning*/
0038 ///*                    (see documentation for details)     */
0039 ///* NHEP            - actual number of entries in current  */
0040 ///*                    event.                              */
0041 ///* ISTHEP[IHEP]    - status code for IHEP'th entry - see  */
0042 ///*                    documentation for details           */
0043 ///* IDHEP [IHEP]    - IHEP'th particle identifier according*/
0044 ///*                    to PDG.                             */
0045 ///* JMOHEP[IHEP][0] - pointer to position of 1st mother    */
0046 ///* JMOHEP[IHEP][1] - pointer to position of 2nd mother    */
0047 ///* JDAHEP[IHEP][0] - pointer to position of 1st daughter  */
0048 ///* JDAHEP[IHEP][1] - pointer to position of 2nd daughter  */
0049 ///* PHEP  [IHEP][0] - X momentum [Gev/c]                   */
0050 ///* PHEP  [IHEP][1] - Y momentum [Gev/c]                   */
0051 ///* PHEP  [IHEP][2] - Z momentum [Gev/c]                   */
0052 ///* PHEP  [IHEP][3] - Energy [Gev]                         */
0053 ///* PHEP  [IHEP][4] - Mass[Gev/c^2]                        */
0054 ///* VHEP  [IHEP][0] - X vertex [mm]                        */
0055 ///* VHEP  [IHEP][1] - Y vertex [mm]                        */
0056 ///* VHEP  [IHEP][2] - Z vertex [mm]                        */
0057 ///* VHEP  [IHEP][3] - production time [mm/c]               */
0058 ///*========================================================*/
0059 //
0060 // This interface to HEPEVT common block treats the block as
0061 // an array of bytes --- the precision and number of entries
0062 // is determined "on the fly" by the wrapper and used to decode
0063 // each entry.
0064 //
0065 // HEPEVT_EntriesAllocation is the maximum size of the HEPEVT common block
0066 // that can be interfaced. It is NOT the actual size of the HEPEVT common
0067 // used in each individual application. The actual size can be changed on
0068 // the fly using HepMC::HEPEVT_Wrapper::set_max_number_entries().
0069 // Thus HEPEVT_EntriesAllocation should typically be set
0070 // to the maximum possible number of entries --- 10000 is a good choice
0071 // (and is the number used by ATLAS versions of Pythia).
0072 
0073 #include <ctype.h>
0074 
0075 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0076 
0077 enum
0078 {
0079   HEPEVT_EntriesAllocation = 4000
0080 };
0081 
0082 const unsigned int hepevt_bytes_allocation = sizeof(long int) * (2 + 4 * HEPEVT_EntriesAllocation)
0083                                              + sizeof(double) * (9 * HEPEVT_EntriesAllocation);
0084 
0085 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0086 
0087 extern "C" struct hepevt
0088 {
0089     char data[hepevt_bytes_allocation];
0090 };
0091 
0092 hepevt hepevt_;