# define gckpar gckpar_
# define gckmat gckmat_
# define geditv geditv_
+# define mzdrop mzdrop_
# define setbomb setbomb_
# define setclip setclip_
# define gckpar GCKPAR
# define gckmat GCKMAT
# define geditv GEDITV
+# define mzdrop MZDROP
# define setbomb SETBOMB
# define setclip SETCLIP
-# define gcomad GCOMAD
+# define gcomad GCOMAD
#endif
const int&, const int&, const int& DEFCHARL
DEFCHARL);
+ void type_of_call mzdrop(Int_t&, Int_t&, DEFCHARD DEFCHARL);
+
void type_of_call setbomb(Float_t &);
void type_of_call setclip(DEFCHARD, Float_t &,Float_t &,Float_t &,Float_t &,
Float_t &, Float_t & DEFCHARL);
//
Int_t *addr;
gcomad(PASSCHARD("QUEST"), (int*&) fQuest PASSCHARL("QUEST"));
+ gcomad(PASSCHARD("GCBANK"),(int*&) fGcbank PASSCHARL("GCBANK"));
gcomad(PASSCHARD("GCLINK"),(int*&) fGclink PASSCHARL("GCLINK"));
gcomad(PASSCHARD("GCCUTS"),(int*&) fGccuts PASSCHARL("GCCUTS"));
gcomad(PASSCHARD("GCFLAG"),(int*&) fGcflag PASSCHARL("GCFLAG"));
fGcflag->nevent = nevents;
}
+//_____________________________________________________________________________
+void TGeant3::SetUserDecay(Int_t ipart)
+{
+ //
+ // Force the decays of particles to be done with Pythia
+ // and not with the Geant routines.
+ // just kill pointers doing mzdrop
+ //
+ Int_t jpart=fGclink->jpart;
+ Int_t jpa=fZlq[jpart-ipart];
+ //
+ if(jpart && jpa) {
+ Int_t jpa1=fZlq[jpa-1];
+ if(jpa1)
+ mzdrop(fGcbank->ixcons,jpa1,PASSCHARD(" ") PASSCHARL(" "));
+ Int_t jpa2=fZlq[jpa-2];
+ if(jpa2)
+ mzdrop(fGcbank->ixcons,jpa2,PASSCHARD(" ") PASSCHARL(" "));
+ }
+}
+
//______________________________________________________________________________
void TGeant3::Vname(const char *name, char *vname)
{
Int_t iquest[100];
} Quest_t;
+//----------GCBANK
+// COMMON/GCBANK/NZEBRA,GVERSN,ZVERSN,IXSTOR,IXDIV,IXCONS,FENDQ(16)
+// + ,LMAIN,LR1,WS(KWBANK)
+typedef struct {
+ Int_t nzebra;
+ Float_t gversn;
+ Float_t zversn;
+ Int_t ixstor;
+ Int_t ixdiv;
+ Int_t ixcons;
+ Float_t fendq[16];
+ Int_t lmain;
+ Int_t lr1;
+} Gcbank_t;
+
//----------GCLINK
// COMMON/GCLINK/JDIGI ,JDRAW ,JHEAD ,JHITS ,JKINE ,JMATE ,JPART
// + ,JROTM ,JRUNG ,JSET ,JSTAK ,JGSTAT,JTMED ,JTRACK,JVERTX
Float_t *fZq;
Quest_t *fQuest;
+ Gcbank_t *fGcbank;
Gclink_t *fGclink;
Gccuts_t *fGccuts;
Gcmate_t *fGcmate;
// access functions to commons
virtual Quest_t* Quest() const {return fQuest;}
+ virtual Gcbank_t* Gcbank() const {return fGcbank;}
virtual Gclink_t* Gclink() const {return fGclink;}
virtual Gccuts_t* Gccuts() const {return fGccuts;}
virtual Gcmate_t* Gcmate() const {return fGcmate;}
virtual void SetRAYL(Int_t par=1);
virtual void SetSWIT(Int_t sw, Int_t val=1);
virtual void SetTRIG(Int_t nevents=1);
+ virtual void SetUserDecay(Int_t ipart);
virtual void Vname(const char *name, char *vname);