Skip to content

Commit 5d2abe0

Browse files
committed
create hddm derived source files
1 parent 15991ad commit 5d2abe0

File tree

5 files changed

+472
-2
lines changed

5 files changed

+472
-2
lines changed

CMakeLists.txt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,25 @@ project(hd_interface)
77
set(CMAKE_CXX_STANDARD 11)
88
set(CMAKE_CXX_STANDARD_REQUIRED True)
99

10+
add_subdirectory(xml)
1011
file(GLOB SOURCES src/*/*.cc)
11-
add_library(HD_INTERFACE STATIC ${SOURCES})
12-
include_directories(${CMAKE_SOURCE_DIR}/include $ENV{LIBHDDM_HOME}/include $ENV{ROOTSYS}/include $ENV{JANA_HOME}/include $ENV{HDDM_HOME}/include $ENV{DDAQ_HOME}/include $ENV{DMAGNETICFIELDMAP_HOME}/include $ENV{XERCES_INCLUDE} $ENV{HDDS_HOME}/$ENV{BMS_OSNAME}/src $ENV{CCDB_HOME}/include)
12+
set(DERIVED_SOURCES
13+
${CMAKE_SOURCE_DIR}/src/HDDM/hddm_s++.cpp
14+
${CMAKE_SOURCE_DIR}/src/HDDM/hddm_r++.cpp
15+
${CMAKE_SOURCE_DIR}/src/HDDM/hddm_mc_s++.cpp
16+
${CMAKE_SOURCE_DIR}/src/HDDM/hddm_s.c
17+
${CMAKE_SOURCE_DIR}/src/HDDM/hddm_r.c
18+
${CMAKE_SOURCE_DIR}/src/HDDM/hddm_mc_s.c
19+
)
20+
set_source_files_properties(${DERIVED_SOURCES}
21+
PROPERTIES GENERATED TRUE)
22+
add_library(HD_INTERFACE STATIC ${SOURCES} ${DERIVED_SOURCES})
23+
include_directories(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/include/HDDM $ENV{ROOTSYS}/include $ENV{JANA_HOME}/include $ENV{HDDM_HOME}/include $ENV{XERCES_INCLUDE} $ENV{HDDS_HOME}/$ENV{BMS_OSNAME}/src $ENV{CCDB_HOME}/include /usr/include/tirpc)
1324
target_compile_options(
1425
HD_INTERFACE
1526
PUBLIC -fPIC -pthread -m64
1627
)
28+
add_dependencies(HD_INTERFACE hddm_derived_sources)
1729
install(
1830
TARGETS HD_INTERFACE
1931
DESTINATION lib

xml/CMakeLists.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
set(MODELS event rest mc)
2+
set(CLASSES s r mc_s)
3+
list(LENGTH MODELS count)
4+
math(EXPR count "${count}-1")
5+
foreach(i RANGE ${count})
6+
list(GET MODELS ${i} model)
7+
list(GET CLASSES ${i} class)
8+
add_custom_command(
9+
OUTPUT ${CMAKE_SOURCE_DIR}/include/hddm_${class}.hpp ${CMAKE_SOURCE_DIR}/src/hddm_${class}++.cpp
10+
COMMAND hddm-cpp ${CMAKE_CURRENT_SOURCE_DIR}/${model}.xml
11+
COMMAND cmake -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/hddm_${class}.hpp ${CMAKE_SOURCE_DIR}/include/HDDM/hddm_${class}.hpp
12+
COMMAND cmake -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/hddm_${class}++.cpp ${CMAKE_SOURCE_DIR}/src/HDDM/hddm_${class}++.cpp
13+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${model}.xml
14+
)
15+
add_custom_command(
16+
OUTPUT ${CMAKE_SOURCE_DIR}/include/hddm_${class}.h ${CMAKE_SOURCE_DIR}/src/hddm_${class}.c
17+
COMMAND hddm-c ${CMAKE_CURRENT_SOURCE_DIR}/${model}.xml
18+
COMMAND cmake -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/hddm_${class}.h ${CMAKE_SOURCE_DIR}/include/HDDM/hddm_${class}.h
19+
COMMAND cmake -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/hddm_${class}.c ${CMAKE_SOURCE_DIR}/src/HDDM/hddm_${class}.c
20+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${model}.xml
21+
)
22+
endforeach()
23+
add_custom_target(
24+
hddm_derived_sources
25+
DEPENDS
26+
${CMAKE_SOURCE_DIR}/include/hddm_s.hpp ${CMAKE_SOURCE_DIR}/include/hddm_r.hpp ${CMAKE_SOURCE_DIR}/include/hddm_mc_s.hpp
27+
${CMAKE_SOURCE_DIR}/include/hddm_s.h ${CMAKE_SOURCE_DIR}/include/hddm_r.h ${CMAKE_SOURCE_DIR}/include/hddm_mc_s.h
28+
)

xml/event.xml

Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
2+
<HDDM xmlns="http://www.gluex.org/hddm" class="s" version="1.0">
3+
4+
<geometry minOccurs="0" maxOccurs="1" md5simulation="string" md5smear="string" md5reconstruction="string"/>
5+
6+
<physicsEvent eventNo="int" maxOccurs="unbounded" runNo="int">
7+
<dataVersionString minOccurs="0" maxOccurs="unbounded" text="string"/>
8+
<ccdbContext minOccurs="0" maxOccurs="unbounded" text="string"/>
9+
<reaction maxOccurs="unbounded" minOccurs="0" type="int" weight="float">
10+
<beam minOccurs="0" type="Particle_t">
11+
<momentum E="float" px="float" py="float" pz="float"/>
12+
<polarization minOccurs="0" Px="float" Py="float" Pz="float"/>
13+
<properties charge="int" mass="float"/>
14+
</beam>
15+
<target minOccurs="0" type="Particle_t">
16+
<momentum E="float" px="float" py="float" pz="float"/>
17+
<polarization minOccurs="0" Px="float" Py="float" Pz="float"/>
18+
<properties charge="int" mass="float"/>
19+
</target>
20+
<vertex maxOccurs="unbounded">
21+
<product decayVertex="int" id="int" maxOccurs="unbounded" mech="int" parentid="int" pdgtype="int" type="Particle_t">
22+
<momentum E="float" px="float" py="float" pz="float"/>
23+
<polarization minOccurs="0" Px="float" Py="float" Pz="float"/>
24+
<properties minOccurs="0" charge="int" mass="float"/>
25+
</product>
26+
<origin t="float" vx="float" vy="float" vz="float"/>
27+
</vertex>
28+
<random minOccurs="0" maxOccurs="1" seed1="int" seed2="int" seed3="int" seed4="int"/>
29+
<userData minOccurs="0" maxOccurs="unbounded" description="string">
30+
<userDataFloat data="float" meaning="string" minOccurs="0" maxOccurs="unbounded"/>
31+
<userDataInt data="int" meaning="string" minOccurs="0" maxOccurs="unbounded"/>
32+
</userData>
33+
</reaction>
34+
<hitView minOccurs="0" version="2.0">
35+
<centralDC minOccurs="0">
36+
<cdcStraw maxOccurs="unbounded" minOccurs="0" ring="int" straw="int">
37+
<cdcStrawHit q="float" maxOccurs="unbounded" t="float">
38+
<cdcDigihit minOccurs="0" peakAmp="float"/>
39+
<cdcHitQF minOccurs="0" QF="float"/>
40+
</cdcStrawHit>
41+
<cdcStrawTruthHit q="float" maxOccurs="unbounded" t="float" d="float" itrack="int" ptype="int"/>
42+
</cdcStraw>
43+
<cdcTruthPoint dEdx="float" dradius="float" maxOccurs="unbounded" minOccurs="0" phi="float" primary="boolean" ptype="int" px="float" py="float" pz="float" r="float" t="float" track="int" z="float">
44+
<trackID minOccurs="0" itrack="int"/>
45+
</cdcTruthPoint>
46+
</centralDC>
47+
<forwardDC minOccurs="0">
48+
<fdcChamber layer="int" maxOccurs="unbounded" module="int">
49+
<fdcAnodeWire maxOccurs="unbounded" minOccurs="0" wire="int">
50+
<fdcAnodeHit dE="float" maxOccurs="unbounded" t="float"/>
51+
<fdcAnodeTruthHit dE="float" maxOccurs="unbounded" t="float" t_unsmeared="float" d="float" itrack="int" ptype="int"/>
52+
</fdcAnodeWire>
53+
<fdcCathodeStrip maxOccurs="unbounded" minOccurs="0" plane="int" strip="int">
54+
<fdcCathodeHit maxOccurs="unbounded" q="float" t="float">
55+
<fdcDigihit minOccurs="0" peakAmp="float"/>
56+
</fdcCathodeHit>
57+
<fdcCathodeTruthHit maxOccurs="unbounded" q="float" t="float" itrack="int" ptype="int"/>
58+
</fdcCathodeStrip>
59+
<fdcTruthPoint E="float" dEdx="float" dradius="float" maxOccurs="unbounded" minOccurs="0" primary="boolean" ptype="int" px="float" py="float" pz="float" t="float" track="int" x="float" y="float" z="float">
60+
<trackID minOccurs="0" itrack="int"/>
61+
</fdcTruthPoint>
62+
</fdcChamber>
63+
</forwardDC>
64+
<startCntr minOccurs="0">
65+
<stcPaddle maxOccurs="unbounded" minOccurs="0" sector="int">
66+
<stcHit dE="float" maxOccurs="unbounded" t="float">
67+
<stcDigihit minOccurs="0" peakAmp="float"/>
68+
</stcHit>
69+
<stcTruthHit dE="float" maxOccurs="unbounded" t="float" itrack="int" ptype="int"/>
70+
</stcPaddle>
71+
<stcTruthPoint E="float" dEdx="float" maxOccurs="unbounded" minOccurs="0" phi="float" primary="boolean" ptype="int" px="float" py="float" pz="float" r="float" sector="int" t="float" track="int" z="float">
72+
<trackID minOccurs="0" itrack="int"/>
73+
</stcTruthPoint>
74+
</startCntr>
75+
<barrelEMcal minOccurs="0">
76+
<bcalCell layer="int" maxOccurs="unbounded" minOccurs="0" module="int" sector="int">
77+
<bcalSiPMUpHit E="float" maxOccurs="unbounded" minOccurs="0" t="float"/>
78+
<bcalSiPMDownHit E="float" maxOccurs="unbounded" minOccurs="0" t="float"/>
79+
<!-- bcal hits are either upstream (end=0) or downstream (end=1)-->
80+
<bcalSiPMSpectrum end="int" maxOccurs="unbounded" minOccurs="0" tstart="float" bin_width="float" vals="string">
81+
<bcalSiPMTruth minOccurs="0" incident_id="int" E="float"/>
82+
</bcalSiPMSpectrum>
83+
<bcalfADCHit end="int" E="float" maxOccurs="unbounded" minOccurs="0" t="float"/>
84+
<bcalfADCDigiHit end="int" pulse_integral="int" maxOccurs="unbounded" minOccurs="0" pulse_time="int">
85+
<bcalfADCPeak minOccurs="0" peakAmp="float"/>
86+
</bcalfADCDigiHit>
87+
<bcalTDCHit end="int" maxOccurs="unbounded" minOccurs="0" t="float"/>
88+
<bcalTDCDigiHit end="int" maxOccurs="unbounded" minOccurs="0" time="float"/>
89+
<bcalTruthHit E="float" maxOccurs="unbounded" minOccurs="0" t="float" zLocal="float" incident_id="int"/>
90+
</bcalCell>
91+
<bcalTruthIncidentParticle maxOccurs="unbounded" minOccurs="0" ptype="int" x="float" y="float" z="float" px="float" py="float" pz="float" id="int"/>
92+
<bcalTruthShower E="float" maxOccurs="unbounded" minOccurs="0" phi="float" primary="boolean" ptype="int" px="float" py="float" pz="float" r="float" t="float" track="int" z="float">
93+
<trackID minOccurs="0" itrack="int"/>
94+
</bcalTruthShower>
95+
</barrelEMcal>
96+
<gapEMcal minOccurs="0">
97+
<gcalCell maxOccurs="48" minOccurs="0" module="int">
98+
<gcalHit E="float" maxOccurs="unbounded" minOccurs="0" t="float" zLocal="float"/>
99+
<gcalTruthHit E="float" maxOccurs="unbounded" minOccurs="0" t="float" zLocal="float"/>
100+
</gcalCell>
101+
<gcalTruthShower E="float" maxOccurs="unbounded" minOccurs="0" phi="float" primary="boolean" ptype="int" px="float" py="float" pz="float" r="float" t="float" track="int" z="float">
102+
<trackID minOccurs="0" itrack="int"/>
103+
</gcalTruthShower>
104+
</gapEMcal>
105+
<Cerenkov minOccurs="0">
106+
<cereSection maxOccurs="unbounded" minOccurs="0" sector="int">
107+
<cereHit maxOccurs="unbounded" pe="float" t="float"/>
108+
<cereTruthHit maxOccurs="unbounded" pe="float" t="float"/>
109+
</cereSection>
110+
<cereTruthPoint E="float" maxOccurs="unbounded" minOccurs="0" primary="boolean" ptype="int" px="float" py="float" pz="float" t="float" track="int" x="float" y="float" z="float">
111+
<trackID minOccurs="0" itrack="int"/>
112+
</cereTruthPoint>
113+
</Cerenkov>
114+
<RICH minOccurs="0">
115+
<richTruthHit maxOccurs="unbounded" minOccurs="0" t="float" x="float" y="float" z="float"/>
116+
<richTruthPoint E="float" maxOccurs="unbounded" minOccurs="0" primary="boolean" ptype="int" px="float" py="float" pz="float" t="float" track="int" x="float" y="float" z="float">
117+
<trackID minOccurs="0" itrack="int"/>
118+
</richTruthPoint>
119+
</RICH>
120+
<DIRC minOccurs="0">
121+
<dircTruthBarHit maxOccurs="unbounded" minOccurs="0" t="float" x="float" y="float" z="float" px="float" py="float" pz="float" E="float" pdg="int" bar="int" track="int"/>
122+
<dircTruthPmtHit maxOccurs="unbounded" minOccurs="0" t="float" x="float" y="float" z="float" E="float" ch="int" key_bar="int">
123+
<dircTruthPmtHitExtra maxOccurs="unbounded" minOccurs="0" t_fixed="float" path="long" refl="int" bbrefl="boolean"/>
124+
</dircTruthPmtHit>
125+
<dircPmtHit maxOccurs="unbounded" minOccurs="0" t="float" ch="int"/>
126+
</DIRC>
127+
<forwardTOF minOccurs="0">
128+
<ftofCounter bar="int" maxOccurs="unbounded" minOccurs="0" plane="int">
129+
<!-- ftof hits are either north / beam-left (end=0) or south / beam-right (end=1)-->
130+
<ftofHit end="int" maxOccurs="unbounded" minOccurs="0" dE="float" t="float">
131+
<ftofDigihit minOccurs="0" peakAmp="float"/>
132+
</ftofHit>
133+
<ftofTruthHit end="int" maxOccurs="unbounded" minOccurs="0" dE="float" t="float">
134+
<ftofTruthExtra maxOccurs="unbounded" minOccurs="0" ptype="int" itrack="int" px="float" py="float" pz="float" x="float" y="float" z="float" E="float" dist="float"/>
135+
</ftofTruthHit>
136+
</ftofCounter>
137+
<ftofTruthPoint E="float" maxOccurs="unbounded" minOccurs="0" primary="boolean" ptype="int" px="float" py="float" pz="float" t="float" track="int" x="float" y="float" z="float">
138+
<trackID minOccurs="0" itrack="int"/>
139+
</ftofTruthPoint>
140+
</forwardTOF>
141+
<forwardEMcal minOccurs="0">
142+
<fcalBlock column="int" maxOccurs="unbounded" minOccurs="0" row="int">
143+
<fcalHit E="float" maxOccurs="unbounded" t="float">
144+
<fcalDigihit minOccurs="0" integralOverPeak="float"/>
145+
</fcalHit>
146+
<fcalTruthHit E="float" maxOccurs="unbounded" t="float">
147+
<fcalTruthLightGuide dE="float" maxOccurs="unbounded" t="float"/>
148+
</fcalTruthHit>
149+
</fcalBlock>
150+
<fcalTruthShower E="float" maxOccurs="unbounded" minOccurs="0" primary="boolean" ptype="int" px="float" py="float" pz="float" t="float" track="int" x="float" y="float" z="float">
151+
<trackID minOccurs="0" itrack="int"/>
152+
</fcalTruthShower>
153+
</forwardEMcal>
154+
<ComptonEMcal minOccurs="0">
155+
<ccalBlock column="int" maxOccurs="unbounded" minOccurs="0" row="int">
156+
<ccalHit E="float" maxOccurs="unbounded" t="float"/>
157+
<ccalTruthHit E="float" maxOccurs="unbounded" t="float"/>
158+
</ccalBlock>
159+
<ccalTruthShower E="float" maxOccurs="unbounded" minOccurs="0" primary="boolean" ptype="int" px="float" py="float" pz="float" t="float" track="int" x="float" y="float" z="float">
160+
<trackID minOccurs="0" itrack="int"/>
161+
</ccalTruthShower>
162+
</ComptonEMcal>
163+
<upstreamEMveto minOccurs="0">
164+
<upvPaddle layer="int" maxOccurs="unbounded" minOccurs="0" row="int">
165+
<!-- upv hits are either north / beam-left (end=0) or south / beam-right (end=1)-->
166+
<upvHit end="int" E="float" maxOccurs="unbounded" minOccurs="0" t="float"/>
167+
<upvTruthHit end="int" E="float" maxOccurs="unbounded" minOccurs="0" t="float" xlocal="float"/>
168+
</upvPaddle>
169+
<upvTruthShower E="float" maxOccurs="unbounded" minOccurs="0" primary="boolean" ptype="int" px="float" py="float" pz="float" t="float" track="int" x="float" y="float" z="float">
170+
<trackID minOccurs="0" itrack="int"/>
171+
</upvTruthShower>
172+
</upstreamEMveto>
173+
<tagger minOccurs="0">
174+
<microChannel E="float" column="int" maxOccurs="unbounded" minOccurs="0" row="int">
175+
<taggerHit maxOccurs="unbounded" minOccurs="0" npe="int" t="float" tADC="float"/>
176+
<taggerTruthHit maxOccurs="unbounded" minOccurs="0" bg="int" dE="float" E="float" t="float"/>
177+
</microChannel>
178+
<hodoChannel E="float" counterId="int" maxOccurs="unbounded" minOccurs="0">
179+
<taggerHit maxOccurs="unbounded" minOccurs="0" npe="int" t="float" tADC="float"/>
180+
<taggerTruthHit maxOccurs="unbounded" minOccurs="0" bg="int" dE="float" E="float" t="float"/>
181+
</hodoChannel>
182+
</tagger>
183+
<pairSpectrometerFine minOccurs="0">
184+
<psTile maxOccurs="unbounded" minOccurs="0" column="int" arm="int">
185+
<psHit dE="float" t="float" maxOccurs="unbounded"/>
186+
<psTruthHit dE="float" t="float" maxOccurs="unbounded" itrack="int" ptype="int"/>
187+
</psTile>
188+
<psTruthPoint E="float" dEdx="float" maxOccurs="unbounded" minOccurs="0" primary="boolean" ptype="int" px="float" py="float" pz="float" column="int" arm="int" t="float" track="int" x="float" y="float" z="float">
189+
<trackID minOccurs="0" itrack="int"/>
190+
</psTruthPoint>
191+
</pairSpectrometerFine>
192+
<pairSpectrometerCoarse minOccurs="0">
193+
<pscPaddle maxOccurs="unbounded" minOccurs="0" module="int" arm="int">
194+
<pscHit dE="float" t="float" maxOccurs="unbounded"/>
195+
<pscTruthHit dE="float" t="float" maxOccurs="unbounded" itrack="int" ptype="int"/>
196+
</pscPaddle>
197+
<pscTruthPoint E="float" dEdx="float" maxOccurs="unbounded" minOccurs="0" primary="boolean" ptype="int" px="float" py="float" pz="float" module="int" t="float" arm="int" track="int" x="float" y="float" z="float">
198+
<trackID minOccurs="0" itrack="int"/>
199+
</pscTruthPoint>
200+
</pairSpectrometerCoarse>
201+
<tripletPolarimeter minOccurs="0">
202+
<tpolSector maxOccurs="unbounded" minOccurs="0" ring="int" sector="int">
203+
<tpolHit dE="float" t="float" maxOccurs="unbounded"/>
204+
<tpolTruthHit dE="float" t="float" maxOccurs="unbounded" itrack="int" ptype="int"/>
205+
</tpolSector>
206+
<tpolTruthPoint E="float" dEdx="float" maxOccurs="unbounded" minOccurs="0" phi="float" primary="boolean" ptype="int" px="float" py="float" pz="float" r="float" t="float" track="int">
207+
<trackID minOccurs="0" itrack="int"/>
208+
</tpolTruthPoint>
209+
</tripletPolarimeter>
210+
<mcTrajectory minOccurs="0">
211+
<mcTrajectoryPoint E="float" dE="float" maxOccurs="unbounded" mech="int" minOccurs="0" part="int" primary_track="int" px="float" py="float" pz="float" radlen="float" step="float" t="float" track="int" x="float" y="float" z="float"/>
212+
</mcTrajectory>
213+
<RFtime minOccurs="0" jtag="string" tsync="float" tunit="ns">
214+
<RFsubsystem maxOccurs="unbounded" minOccurs="0" jtag="string" tsync="float" tunit="ns"/>
215+
</RFtime>
216+
<forwardMWPC minOccurs="0">
217+
<fmwpcChamber layer="int" maxOccurs="unbounded" minOccurs="0" wire="int">
218+
<fmwpcTruthHit dE="float" dx="float" maxOccurs="unbounded" t="float"/>
219+
<fmwpcHit dE="float" maxOccurs="unbounded" t="float"/>
220+
</fmwpcChamber>
221+
<fmwpcTruthPoint E="float" maxOccurs="unbounded" minOccurs="0" primary="boolean" ptype="int" px="float" py="float" pz="float" t="float" track="int" x="float" y="float" z="float">
222+
<trackID minOccurs="0" itrack="int"/>
223+
</fmwpcTruthPoint>
224+
</forwardMWPC>
225+
226+
</hitView>
227+
<reconView minOccurs="0" version="1.0">
228+
<tracktimebased maxOccurs="unbounded" minOccurs="0" FOM="float" Ndof="int" chisq="float" candidateid="int" trackid="int" id="int">
229+
<momentum E="float" px="float" py="float" pz="float"/>
230+
<properties charge="int" mass="float"/>
231+
<origin t="float" vx="float" vy="float" vz="float"/>
232+
<errorMatrix Nrows="int" Ncols="int" type="string" vals="string"/>
233+
<TrackingErrorMatrix Nrows="int" Ncols="int" type="string" vals="string"/>
234+
</tracktimebased>
235+
</reconView>
236+
</physicsEvent>
237+
</HDDM>

xml/mc.xml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE HDDM>
3+
4+
<HDDM class="mc_s" version="1.0" xmlns="http://www.gluex.org/hddm">
5+
<physicsEvent eventNo="int" maxOccurs="unbounded" runNo="int">
6+
<reaction maxOccurs="unbounded" minOccurs="0" type="int" weight="float">
7+
<beam minOccurs="0" type="Particle_t">
8+
<momentum E="float" px="float" py="float" pz="float"/>
9+
<properties charge="int" mass="float"/>
10+
</beam>
11+
<target minOccurs="0" type="Particle_t">
12+
<momentum E="float" px="float" py="float" pz="float"/>
13+
<properties charge="int" mass="float"/>
14+
</target>
15+
<vertex maxOccurs="unbounded">
16+
<product decayVertex="int" id="int" maxOccurs="unbounded" mech="int" parentid="int" pdgtype="int" type="Particle_t">
17+
<momentum E="float" px="float" py="float" pz="float"/>
18+
<properties minOccurs="0" charge="int" mass="float"/>
19+
</product>
20+
<origin t="float" vx="float" vy="float" vz="float"/>
21+
</vertex>
22+
<random minOccurs="0" maxOccurs="1" seed1="int" seed2="int" seed3="int" seed4="int"/>
23+
</reaction>
24+
</physicsEvent>
25+
</HDDM>

0 commit comments

Comments
 (0)