AliDecayerExodus based on EXODUS code
[u/mrichter/AliRoot.git] / EVGEN / AliDecayerExodus.h
CommitLineData
b5c4afc6 1#ifndef ALIDECAYEREXODUS_H
2#define ALIDECAYEREXODUS_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9//---------------------------------------------------------------------------------------------------
10////
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
13//// and
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
16////
17//// For the electromagnetic form factor the parameterization from
18//// Lepton-G is used: L.G. Landsberg et al.: Phys. Rep. 128(1985)301
19////
20////-------------------------------------------------------------------------------------------------
21
22
23
24#include "AliDecayer.h"
25#include <TLorentzVector.h>
26
27class TH1F;
28class TClonesArray;
29
30class AliDecayerExodus : public AliDecayer
31{
32 public:
33 AliDecayerExodus();
34 virtual void Init();
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() {;}
42
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;}
52
53 virtual void Decay(TClonesArray* array);
54
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;}
64
65 virtual void Copy(TObject&) const;
66
67 protected:
68 // Histograms for electron pair mass
69 TH1F* fEPMassPion;
70 TH1F* fEPMassEta;
71 TH1F* fEPMassEtaPrime;
72 TH1F* fEPMassRho;
73 TH1F* fEPMassOmega;
74 TH1F* fEPMassOmegaDalitz;
75 TH1F* fEPMassPhi;
76 TH1F* fEPMassPhiDalitz;
77 TH1F* fEPMassJPsi;
78
79 // Decay products
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];
89
90 Bool_t fInit;
91
92 private:
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);
99
100
101 ClassDef(AliDecayerExodus, 1) // AliDecayer implementation using Exodus
102};
103#endif
104
105
106
107
108
109
110