ReadDecayTable() and WriteDecayTable() methods added.
[u/mrichter/AliRoot.git] / EVGEN / AliDecayer.h
index d9149dfccc76917b4ec906a7fc31df84a57f5a80..94d2e37b969c0d2c23cd0437ce8cac10434af3e0 100644 (file)
@@ -4,22 +4,36 @@
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
-#include "GenTypeDefs.h"
+
+// Abstract base class for particle decays.
+// Clients are the transport code and the primary particle generators
+// Author: andreas.morsch@cern.ch
+
 #include <TObject.h>
 class TClonesArray;
 class TLorentzVector;
 
+typedef enum
+{ kSemiElectronic, kDiElectron, kSemiMuonic, kDiMuon,
+  kBJpsiDiMuon, kBJpsiDiElectron, 
+  kBPsiPrimeDiMuon, kBPsiPrimeDiElectron, kPiToMu, kKaToMu, kNoDecay, kHadronicD, kOmega, kAll}
+Decay_t;
+
 class AliDecayer :
 public TObject
 {
  public:
 //
+    virtual ~AliDecayer(){;}
     virtual void    Init()                                     =0;
     virtual void    Decay(Int_t idpart, TLorentzVector* p)     =0;
     virtual Int_t   ImportParticles(TClonesArray *particles)   =0;
-    virtual void    ForceDecay(Decay_t type)                   =0;
+    virtual void    SetForceDecay(Decay_t type)                =0;
+    virtual void    ForceDecay()                               =0;
     virtual Float_t GetPartialBranchingRatio(Int_t ipart)      =0;
-    ClassDef(AliDecayer,1) // Alice Decayer Base Class
+    virtual Float_t GetLifetime(Int_t kf)                      =0;
+    virtual void    ReadDecayTable()                           =0;
+    ClassDef(AliDecayer,2) // Alice Decayer Base Class
 };
 #endif