44 {
45
47
48
50
51 if ( first )
52 {
53
56 }
57
58 int entry, eventnum, numparticle, istat, partnum, mother;
59 int daugfirst, dauglast;
60
61 int numparticlephotos;
62
63 double px, py, pz, e, m,
x, y, z,
t;
64
77 static EvtIdSet quarks( dq, adq, uq, auq, sq, asq, cq, acq, bq, abq, tq, atq );
78
79 px = 0.0;
80 py = 0.0;
81 pz = 0.0;
85 y = 0.0;
86 z = 0.0;
88
89 entry = 1;
90 eventnum = 1;
91 numparticle = 1;
92 istat = 2;
94 mother = 0;
95 daugfirst = 2;
97
98 begevtgenstorex_( &entry, &eventnum, &numparticle, &istat, &partnum, &mother, &daugfirst,
99 &dauglast, &px, &py, &pz, &e, &m, &
x, &y, &z, &
t );
100
101 int i;
102
103 for ( i = 0; i < p->
getNDaug(); i++ )
104 {
105
106
107 if ( quarks.contains( p->
getDaug( i )->
getId() ) == 1 )
continue;
108
115 y = 0.0;
116 z = 0.0;
118
119
120 entry += 1;
121 eventnum = 1;
122 numparticle += 1;
123 istat = 1;
125 mother = 1;
126 daugfirst = 0;
127 dauglast = 0;
128
129 begevtgenstorex_( &entry, &eventnum, &numparticle, &istat, &partnum, &mother, &daugfirst,
130 &dauglast, &px, &py, &pz, &e, &m, &
x, &y, &z, &
t );
131 }
132
133
134
135
136
137
138
139
140
141 entry = 1;
142
143
145
146 begevtgengetx_( &entry, &eventnum, &numparticlephotos, &istat, &partnum, &mother, &daugfirst,
147 &dauglast, &px, &py, &pz, &e, &m, &
x, &y, &z, &
t );
148
149
150
151 if ( numparticle == numparticlephotos ) return;
152
153 EvtVector4R new4mom;
154
155 int np;
156
157 for ( i = 0; i < p->
getNDaug(); i++ )
158 {
159
160 entry = i + 2;
161
162 begevtgengetx_( &entry, &eventnum, &np, &istat, &partnum, &mother, &daugfirst, &dauglast,
163 &px, &py, &pz, &e, &m, &
x, &y, &z, &
t );
164
165
166
168 e = sqrt(
mp *
mp + px * px + py * py + pz * pz );
169
170 new4mom.
set( e, px, py, pz );
171
173 }
174
175 for ( entry = numparticle + 1; entry <= numparticlephotos; entry++ )
176 {
177
178 begevtgengetx_( &entry, &eventnum, &np, &istat, &partnum, &mother, &daugfirst, &dauglast,
179 &px, &py, &pz, &e, &m, &
x, &y, &z, &
t );
180
181 new4mom.
set( e, px, py, pz );
182
183
184
185 EvtPhotonParticle* gamma;
186 gamma = new EvtPhotonParticle;
187 gamma->
init( GAMM, new4mom );
188
189
190
192
193
194 }
195 return;
196}
void begevtgengetx_(int *, int *, int *, int *, int *, int *, int *, int *, double *, double *, double *, double *, double *, double *, double *, double *, double *)
void begevtgenstorex_(int *, int *, int *, int *, int *, int *, int *, int *, double *, double *, double *, double *, double *, double *, double *, double *, double *)
static int getStdHep(EvtId id)
static EvtId getId(const std::string &name)
const EvtVector4R & getP4() const
void setP4(const EvtVector4R &p4)
EvtParticle * getDaug(int i)
void addDaug(EvtParticle *node)
void init(EvtId part_n, double e, double px, double py, double pz)
void set(int i, double d)