102 Double_t tp,td,tS,zp,xp,yp,zd,xd,yd,zS,xS,yS,pz,px,py,e,w;
103 Double_t tm,zm,xm,ym,pmz,pmx,pmy,em;
110 std::vector<int> dec_chain;
111 std::vector<int> hnls;
119 if (
fn==
fNevents) {LOG(WARNING) <<
"End of input file. Rewind.";}
122 if (
int(fabs(
hid[0]) ) != 431){ x =
false; }
124 Double_t rnr = gRandom->Uniform(0,1);
125 if( rnr<
fFDs ) { x =
false; };
130 fPythia->event.append( (Int_t)
hid[0], 1, 0, 0,
hpx[0],
hpy[0],
hpz[0],
hE[0],
hM[0], 0., 9. );
133 for(
int i=0; i<
fPythia->event.size(); i++){
145 int r = int( gRandom->Uniform(0,iHNL) );
159 Int_t ida =
fPythia->event[i].daughter1();
160 zd =
fPythia->event[ida].zProd();
161 xd =
fPythia->event[ida].xProd();
162 yd =
fPythia->event[ida].yProd();
163 td =
fPythia->event[ida].tProd();
166 Double_t p = TMath::Sqrt(px*px+py*py+pz*pz);
171 Double_t gam = e/TMath::Sqrt(e*e-p*p);
176 im = (Int_t)
fPythia->event[i].mother1();
177 zm =
fPythia->event[im].zProd();
178 xm =
fPythia->event[im].xProd();
179 ym =
fPythia->event[im].yProd();
184 tm =
fPythia->event[im].tProd();
190 Double_t Rsq = test+1.;
199 cpg->AddTrack((Int_t)
mid[0],
mpx[0],
mpy[0],
mpz[0],xm/
cm+dx,ym/
cm+dy,zm/
cm,-1,
false,
mE[0],0.,1.);
200 cpg->AddTrack((Int_t)
fPythia->event[im].id(),pmx,pmy,pmz,xm/
cm+dx,ym/
cm+dy,zm/
cm,0,
false,em,tm/
cm/
c_light,w);
201 cpg->AddTrack(
fHNL, px, py, pz, xp/
cm+dx,yp/
cm+dy,zp/
cm, 1,
false,e,tp/
cm/
c_light,w);
203 cpg->AddTrack((Int_t)
fPythia->event[im].id(),pmx,pmy,pmz,xm/
cm+dx,ym/
cm+dy,zm/
cm,-1,
false,em,tm/
cm/
c_light,w);
204 cpg->AddTrack(
fHNL, px, py, pz, xp/
cm+dx,yp/
cm+dy,zp/
cm, 0,
false,e,tp/
cm/
c_light,w);
207 dec_chain.push_back( im );
208 dec_chain.push_back( i );
213 }
while ( iHNL == 0 );
216 LOGF(info,
"ship event %i / pythia event-nr %i",
fShipEventNr,
fn);
220 for(
int k=0; k<
fPythia->event.size(); k++){
222 im =
fPythia->event[k].mother1();
224 if ( im == iHNL ){
break;}
226 else {im =
fPythia->event[im].mother1();}
228 if (im < 1) {
continue;}
229 dec_chain.push_back( k );
233 for(std::vector<int>::iterator it = dec_chain.begin() + 2; it != dec_chain.end(); ++it){
237 int impy =
fPythia->event[k].mother1();
238 std::vector<int>::iterator itm = std::find( dec_chain.begin(), dec_chain.end(), impy);
240 if ( itm != dec_chain.end() )
241 im = itm - dec_chain.begin();
243 Bool_t wanttracking=
false;
244 if(
fPythia->event[k].isFinal()){ wanttracking=
true;}
250 cpg->AddTrack((Int_t)
fPythia->event[k].id(),px,py,pz,xS/
cm,yS/
cm,zS/
cm,im,wanttracking,e,tS/
cm/
c_light,w);