--- /dev/null
+#ifndef ALIDECAYEREXODUS_H
+#define ALIDECAYEREXODUS_H
+
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * * See cxx source for full Copyright notice */
+
+/* $Id$ */
+
+//---------------------------------------------------------------------------------------------------
+////
+//// Generate electron-pair mass distributions for Dalitz decays according
+//// to the Kroll-Wada parametrization: N. Kroll, W. Wada: Phys. Rev 98(1955)1355
+//// and
+//// Generate electron-pair mass distributions for resonances according
+//// to the Gounaris-Sakurai parametrization: G.J. Gounaris, J.J. Sakurai: Phys.Rev.Lett. 21(1968)244
+////
+//// For the electromagnetic form factor the parameterization from
+//// Lepton-G is used: L.G. Landsberg et al.: Phys. Rep. 128(1985)301
+////
+////-------------------------------------------------------------------------------------------------
+
+
+
+#include "AliDecayer.h"
+#include <TLorentzVector.h>
+
+class TH1F;
+class TClonesArray;
+
+class AliDecayerExodus : public AliDecayer
+{
+ public:
+ AliDecayerExodus();
+ virtual void Init();
+ virtual void Decay(Int_t idpart,TLorentzVector* pparent);
+ virtual Int_t ImportParticles(TClonesArray *particles);
+ virtual void SetForceDecay(Int_t) {;}
+ virtual void ForceDecay() {;}
+ virtual Float_t GetPartialBranchingRatio(Int_t /*ipart*/) {return -1;}
+ virtual Float_t GetLifetime(Int_t /*kf*/) {return -1;}
+ virtual void ReadDecayTable() {;}
+
+ virtual TH1F* ElectronPairMassHistoPion() {return fEPMassPion;}
+ virtual TH1F* ElectronPairMassHistoEta() {return fEPMassEta;}
+ virtual TH1F* ElectronPairMassHistoEtaPrime() {return fEPMassEtaPrime;}
+ virtual TH1F* ElectronPairMassHistoRho() {return fEPMassRho;}
+ virtual TH1F* ElectronPairMassHistoOmega() {return fEPMassOmega;}
+ virtual TH1F* ElectronPairMassHistoOmegaDalitz() {return fEPMassOmegaDalitz;}
+ virtual TH1F* ElectronPairMassHistoPhi() {return fEPMassPhi;}
+ virtual TH1F* ElectronPairMassHistoPhiDalitz() {return fEPMassPhiDalitz;}
+ virtual TH1F* ElectronPairMassHistoJPsi() {return fEPMassJPsi;}
+
+ virtual void Decay(TClonesArray* array);
+
+ virtual const TLorentzVector* Products_pion() const {return fProducts_pion;}
+ virtual const TLorentzVector* Products_eta() const {return fProducts_eta;}
+ virtual const TLorentzVector* Products_etaprime() const {return fProducts_etaprime;}
+ virtual const TLorentzVector* Products_rho() const {return fProducts_rho;}
+ virtual const TLorentzVector* Products_omega() const {return fProducts_omega;}
+ virtual const TLorentzVector* Products_omega_dalitz() const {return fProducts_omega_dalitz;}
+ virtual const TLorentzVector* Products_phi() const {return fProducts_phi;}
+ virtual const TLorentzVector* Products_phi_dalitz() const {return fProducts_phi_dalitz;}
+ virtual const TLorentzVector* Products_jpsi() const {return fProducts_jpsi;}
+
+ virtual void Copy(TObject&) const;
+
+ protected:
+ // Histograms for electron pair mass
+ TH1F* fEPMassPion;
+ TH1F* fEPMassEta;
+ TH1F* fEPMassEtaPrime;
+ TH1F* fEPMassRho;
+ TH1F* fEPMassOmega;
+ TH1F* fEPMassOmegaDalitz;
+ TH1F* fEPMassPhi;
+ TH1F* fEPMassPhiDalitz;
+ TH1F* fEPMassJPsi;
+
+ // Decay products
+ TLorentzVector fProducts_pion[3];
+ TLorentzVector fProducts_eta[3];
+ TLorentzVector fProducts_etaprime[3];
+ TLorentzVector fProducts_rho[2];
+ TLorentzVector fProducts_omega[2];
+ TLorentzVector fProducts_omega_dalitz[3];
+ TLorentzVector fProducts_phi[2];
+ TLorentzVector fProducts_phi_dalitz[3];
+ TLorentzVector fProducts_jpsi[2];
+
+ Bool_t fInit;
+
+ private:
+ Double_t GounarisSakurai(Float_t mass, Double_t vmass, Double_t vwidth, Double_t emass);
+ virtual void Rot(Double_t pin[3], Double_t pout[3],
+ Double_t costheta, Double_t sintheta,
+ Double_t cosphi, Double_t sinphi) const;
+ AliDecayerExodus(const AliDecayerExodus &decayer);
+ AliDecayerExodus & operator=(const AliDecayerExodus & rhs);
+
+
+ ClassDef(AliDecayerExodus, 1) // AliDecayer implementation using Exodus
+};
+#endif
+
+
+
+
+
+
+