1 #ifndef ALIDECAYEREXODUS_H
2 #define ALIDECAYEREXODUS_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * * See cxx source for full Copyright notice */
9 //---------------------------------------------------------------------------------------------------
11 //// Generate electron-pair mass distributions for Dalitz decays according
12 //// to the Kroll-Wada parametrization: N. Kroll, W. Wada: Phys. Rev 98(1955)1355
14 //// Generate electron-pair mass distributions for resonances according
15 //// to the Gounaris-Sakurai parametrization: G.J. Gounaris, J.J. Sakurai: Phys.Rev.Lett. 21(1968)244
17 //// For the electromagnetic form factor the parameterization from
18 //// Lepton-G is used: L.G. Landsberg et al.: Phys. Rep. 128(1985)301
20 ////-------------------------------------------------------------------------------------------------
24 #include "AliDecayer.h"
25 #include <TLorentzVector.h>
30 class AliDecayerExodus : public AliDecayer
35 virtual void Decay(Int_t idpart,TLorentzVector* pparent);
36 virtual Int_t ImportParticles(TClonesArray *particles);
37 virtual void SetForceDecay(Int_t) {;}
38 virtual void ForceDecay() {;}
39 virtual Float_t GetPartialBranchingRatio(Int_t /*ipart*/) {return -1;}
40 virtual Float_t GetLifetime(Int_t /*kf*/) {return -1;}
41 virtual void ReadDecayTable() {;}
43 virtual TH1F* ElectronPairMassHistoPion() {return fEPMassPion;}
44 virtual TH1F* ElectronPairMassHistoEta() {return fEPMassEta;}
45 virtual TH1F* ElectronPairMassHistoEtaPrime() {return fEPMassEtaPrime;}
46 virtual TH1F* ElectronPairMassHistoRho() {return fEPMassRho;}
47 virtual TH1F* ElectronPairMassHistoOmega() {return fEPMassOmega;}
48 virtual TH1F* ElectronPairMassHistoOmegaDalitz() {return fEPMassOmegaDalitz;}
49 virtual TH1F* ElectronPairMassHistoPhi() {return fEPMassPhi;}
50 virtual TH1F* ElectronPairMassHistoPhiDalitz() {return fEPMassPhiDalitz;}
51 virtual TH1F* ElectronPairMassHistoJPsi() {return fEPMassJPsi;}
53 virtual void Decay(TClonesArray* array);
55 virtual const TLorentzVector* Products_pion() const {return fProducts_pion;}
56 virtual const TLorentzVector* Products_eta() const {return fProducts_eta;}
57 virtual const TLorentzVector* Products_etaprime() const {return fProducts_etaprime;}
58 virtual const TLorentzVector* Products_rho() const {return fProducts_rho;}
59 virtual const TLorentzVector* Products_omega() const {return fProducts_omega;}
60 virtual const TLorentzVector* Products_omega_dalitz() const {return fProducts_omega_dalitz;}
61 virtual const TLorentzVector* Products_phi() const {return fProducts_phi;}
62 virtual const TLorentzVector* Products_phi_dalitz() const {return fProducts_phi_dalitz;}
63 virtual const TLorentzVector* Products_jpsi() const {return fProducts_jpsi;}
65 virtual void Copy(TObject&) const;
68 // Histograms for electron pair mass
71 TH1F* fEPMassEtaPrime;
74 TH1F* fEPMassOmegaDalitz;
76 TH1F* fEPMassPhiDalitz;
80 TLorentzVector fProducts_pion[3];
81 TLorentzVector fProducts_eta[3];
82 TLorentzVector fProducts_etaprime[3];
83 TLorentzVector fProducts_rho[2];
84 TLorentzVector fProducts_omega[2];
85 TLorentzVector fProducts_omega_dalitz[3];
86 TLorentzVector fProducts_phi[2];
87 TLorentzVector fProducts_phi_dalitz[3];
88 TLorentzVector fProducts_jpsi[2];
93 Double_t GounarisSakurai(Float_t mass, Double_t vmass, Double_t vwidth, Double_t emass);
94 virtual void Rot(Double_t pin[3], Double_t pout[3],
95 Double_t costheta, Double_t sintheta,
96 Double_t cosphi, Double_t sinphi) const;
97 AliDecayerExodus(const AliDecayerExodus &decayer);
98 AliDecayerExodus & operator=(const AliDecayerExodus & rhs);
101 ClassDef(AliDecayerExodus, 1) // AliDecayer implementation using Exodus