ROOT logo
#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
//
// Ralf Averbeck (R.Averbeck@gsi.de) 
// Irem Erdemir  (irem.erdemir@cern.ch)
//
//---------------------------------------------------------------------------------------------------



#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);
    Double_t Lorentz(Float_t mass, Double_t vmass, Double_t vwidth); 
    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







 AliDecayerExodus.h:1
 AliDecayerExodus.h:2
 AliDecayerExodus.h:3
 AliDecayerExodus.h:4
 AliDecayerExodus.h:5
 AliDecayerExodus.h:6
 AliDecayerExodus.h:7
 AliDecayerExodus.h:8
 AliDecayerExodus.h:9
 AliDecayerExodus.h:10
 AliDecayerExodus.h:11
 AliDecayerExodus.h:12
 AliDecayerExodus.h:13
 AliDecayerExodus.h:14
 AliDecayerExodus.h:15
 AliDecayerExodus.h:16
 AliDecayerExodus.h:17
 AliDecayerExodus.h:18
 AliDecayerExodus.h:19
 AliDecayerExodus.h:20
 AliDecayerExodus.h:21
 AliDecayerExodus.h:22
 AliDecayerExodus.h:23
 AliDecayerExodus.h:24
 AliDecayerExodus.h:25
 AliDecayerExodus.h:26
 AliDecayerExodus.h:27
 AliDecayerExodus.h:28
 AliDecayerExodus.h:29
 AliDecayerExodus.h:30
 AliDecayerExodus.h:31
 AliDecayerExodus.h:32
 AliDecayerExodus.h:33
 AliDecayerExodus.h:34
 AliDecayerExodus.h:35
 AliDecayerExodus.h:36
 AliDecayerExodus.h:37
 AliDecayerExodus.h:38
 AliDecayerExodus.h:39
 AliDecayerExodus.h:40
 AliDecayerExodus.h:41
 AliDecayerExodus.h:42
 AliDecayerExodus.h:43
 AliDecayerExodus.h:44
 AliDecayerExodus.h:45
 AliDecayerExodus.h:46
 AliDecayerExodus.h:47
 AliDecayerExodus.h:48
 AliDecayerExodus.h:49
 AliDecayerExodus.h:50
 AliDecayerExodus.h:51
 AliDecayerExodus.h:52
 AliDecayerExodus.h:53
 AliDecayerExodus.h:54
 AliDecayerExodus.h:55
 AliDecayerExodus.h:56
 AliDecayerExodus.h:57
 AliDecayerExodus.h:58
 AliDecayerExodus.h:59
 AliDecayerExodus.h:60
 AliDecayerExodus.h:61
 AliDecayerExodus.h:62
 AliDecayerExodus.h:63
 AliDecayerExodus.h:64
 AliDecayerExodus.h:65
 AliDecayerExodus.h:66
 AliDecayerExodus.h:67
 AliDecayerExodus.h:68
 AliDecayerExodus.h:69
 AliDecayerExodus.h:70
 AliDecayerExodus.h:71
 AliDecayerExodus.h:72
 AliDecayerExodus.h:73
 AliDecayerExodus.h:74
 AliDecayerExodus.h:75
 AliDecayerExodus.h:76
 AliDecayerExodus.h:77
 AliDecayerExodus.h:78
 AliDecayerExodus.h:79
 AliDecayerExodus.h:80
 AliDecayerExodus.h:81
 AliDecayerExodus.h:82
 AliDecayerExodus.h:83
 AliDecayerExodus.h:84
 AliDecayerExodus.h:85
 AliDecayerExodus.h:86
 AliDecayerExodus.h:87
 AliDecayerExodus.h:88
 AliDecayerExodus.h:89
 AliDecayerExodus.h:90
 AliDecayerExodus.h:91
 AliDecayerExodus.h:92
 AliDecayerExodus.h:93
 AliDecayerExodus.h:94
 AliDecayerExodus.h:95
 AliDecayerExodus.h:96
 AliDecayerExodus.h:97
 AliDecayerExodus.h:98
 AliDecayerExodus.h:99
 AliDecayerExodus.h:100
 AliDecayerExodus.h:101
 AliDecayerExodus.h:102
 AliDecayerExodus.h:103
 AliDecayerExodus.h:104
 AliDecayerExodus.h:105
 AliDecayerExodus.h:106
 AliDecayerExodus.h:107
 AliDecayerExodus.h:108
 AliDecayerExodus.h:109
 AliDecayerExodus.h:110
 AliDecayerExodus.h:111
 AliDecayerExodus.h:112
 AliDecayerExodus.h:113