[807] | 1 | // |
---|
| 2 | // ******************************************************************** |
---|
| 3 | // * License and Disclaimer * |
---|
| 4 | // * * |
---|
| 5 | // * The Geant4 software is copyright of the Copyright Holders of * |
---|
| 6 | // * the Geant4 Collaboration. It is provided under the terms and * |
---|
| 7 | // * conditions of the Geant4 Software License, included in the file * |
---|
| 8 | // * LICENSE and available at http://cern.ch/geant4/license . These * |
---|
| 9 | // * include a list of copyright holders. * |
---|
| 10 | // * * |
---|
| 11 | // * Neither the authors of this software system, nor their employing * |
---|
| 12 | // * institutes,nor the agencies providing financial support for this * |
---|
| 13 | // * work make any representation or warranty, express or implied, * |
---|
| 14 | // * regarding this software system or assume any liability for its * |
---|
| 15 | // * use. Please see the license in the file LICENSE and URL above * |
---|
| 16 | // * for the full disclaimer and the limitation of liability. * |
---|
| 17 | // * * |
---|
| 18 | // * This code implementation is the result of the scientific and * |
---|
| 19 | // * technical work of the GEANT4 collaboration. * |
---|
| 20 | // * By using, copying, modifying or distributing the software (or * |
---|
| 21 | // * any work based on the software) you agree to acknowledge its * |
---|
| 22 | // * use in resulting scientific publications, and indicate your * |
---|
| 23 | // * acceptance of all terms of the Geant4 Software license. * |
---|
| 24 | // ******************************************************************** |
---|
| 25 | // |
---|
| 26 | //$Id: HEPEvtcom.cc,v 1.3 2006/06/29 17:06:35 gunter Exp $ |
---|
| 27 | // ====================================================================== |
---|
| 28 | // PARAMETER (NMXHEP=4000) |
---|
| 29 | // COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), |
---|
| 30 | // & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) |
---|
| 31 | // ====================================================================== |
---|
| 32 | ///**********************************************************/ |
---|
| 33 | ///* D E S C R I P T I O N : */ |
---|
| 34 | ///*--------------------------------------------------------*/ |
---|
| 35 | ///* NEVHEP - event number (or some special meaning*/ |
---|
| 36 | ///* (see documentation for details) */ |
---|
| 37 | ///* NHEP - actual number of entries in current */ |
---|
| 38 | ///* event. */ |
---|
| 39 | ///* ISTHEP[IHEP] - status code for IHEP'th entry - see */ |
---|
| 40 | ///* documentation for details */ |
---|
| 41 | ///* IDHEP [IHEP] - IHEP'th particle identifier according*/ |
---|
| 42 | ///* to PDG. */ |
---|
| 43 | ///* JMOHEP[IHEP][0] - pointer to position of 1st mother */ |
---|
| 44 | ///* JMOHEP[IHEP][1] - pointer to position of 2nd mother */ |
---|
| 45 | ///* JDAHEP[IHEP][0] - pointer to position of 1st daughter */ |
---|
| 46 | ///* JDAHEP[IHEP][1] - pointer to position of 2nd daughter */ |
---|
| 47 | ///* PHEP [IHEP][0] - X momentum [Gev/c] */ |
---|
| 48 | ///* PHEP [IHEP][1] - Y momentum [Gev/c] */ |
---|
| 49 | ///* PHEP [IHEP][2] - Z momentum [Gev/c] */ |
---|
| 50 | ///* PHEP [IHEP][3] - Energy [Gev] */ |
---|
| 51 | ///* PHEP [IHEP][4] - Mass[Gev/c^2] */ |
---|
| 52 | ///* VHEP [IHEP][0] - X vertex [mm] */ |
---|
| 53 | ///* VHEP [IHEP][1] - Y vertex [mm] */ |
---|
| 54 | ///* VHEP [IHEP][2] - Z vertex [mm] */ |
---|
| 55 | ///* VHEP [IHEP][3] - production time [mm/c] */ |
---|
| 56 | ///*========================================================*/ |
---|
| 57 | // |
---|
| 58 | // This interface to HEPEVT common block treats the block as |
---|
| 59 | // an array of bytes --- the precision and number of entries |
---|
| 60 | // is determined "on the fly" by the wrapper and used to decode |
---|
| 61 | // each entry. |
---|
| 62 | // |
---|
| 63 | // HEPEVT_EntriesAllocation is the maximum size of the HEPEVT common block |
---|
| 64 | // that can be interfaced. It is NOT the actual size of the HEPEVT common |
---|
| 65 | // used in each individual application. The actual size can be changed on |
---|
| 66 | // the fly using HepMC::HEPEVT_Wrapper::set_max_number_entries(). |
---|
| 67 | // Thus HEPEVT_EntriesAllocation should typically be set |
---|
| 68 | // to the maximum possible number of entries --- 10000 is a good choice |
---|
| 69 | // (and is the number used by ATLAS versions of Pythia). |
---|
| 70 | |
---|
| 71 | #include <ctype.h> |
---|
| 72 | |
---|
| 73 | enum {HEPEVT_EntriesAllocation=4000}; |
---|
| 74 | |
---|
| 75 | const unsigned int hepevt_bytes_allocation = |
---|
| 76 | sizeof(long int) * ( 2 + 4 * HEPEVT_EntriesAllocation ) |
---|
| 77 | + sizeof(double) * ( 9 * HEPEVT_EntriesAllocation ); |
---|
| 78 | |
---|
| 79 | extern "C" struct hepevt{ |
---|
| 80 | char data[hepevt_bytes_allocation]; |
---|
| 81 | }; |
---|
| 82 | |
---|
| 83 | hepevt hepevt_; |
---|
| 84 | |
---|