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:12:07 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 | |
---|