Added AliGenHepMCEventHeader class and put it in STEERBase library. Updated AliGenRea...
[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//---------------------------------------------------------------------------------------------------
76e6e4c5 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 generate electron-pair mass distributions for resonances according
14// to the Gounaris-Sakurai parametrization: G.J. Gounaris, J.J. Sakurai: Phys.Rev.Lett. 21(1968)244
15//
16// For the electromagnetic form factor the parameterization from
17// Lepton-G is used: L.G. Landsberg et al.: Phys. Rep. 128(1985)301
18//
19// Ralf Averbeck (R.Averbeck@gsi.de)
20// Irem Erdemir (irem.erdemir@cern.ch)
21//
22//---------------------------------------------------------------------------------------------------
b5c4afc6 23
24
25
26#include "AliDecayer.h"
27#include <TLorentzVector.h>
28
29class TH1F;
30class TClonesArray;
31
32class AliDecayerExodus : public AliDecayer
33{
34 public:
35 AliDecayerExodus();
36 virtual void Init();
37 virtual void Decay(Int_t idpart,TLorentzVector* pparent);
38 virtual Int_t ImportParticles(TClonesArray *particles);
39 virtual void SetForceDecay(Int_t) {;}
40 virtual void ForceDecay() {;}
41 virtual Float_t GetPartialBranchingRatio(Int_t /*ipart*/) {return -1;}
42 virtual Float_t GetLifetime(Int_t /*kf*/) {return -1;}
43 virtual void ReadDecayTable() {;}
44
45 virtual TH1F* ElectronPairMassHistoPion() {return fEPMassPion;}
46 virtual TH1F* ElectronPairMassHistoEta() {return fEPMassEta;}
47 virtual TH1F* ElectronPairMassHistoEtaPrime() {return fEPMassEtaPrime;}
48 virtual TH1F* ElectronPairMassHistoRho() {return fEPMassRho;}
49 virtual TH1F* ElectronPairMassHistoOmega() {return fEPMassOmega;}
50 virtual TH1F* ElectronPairMassHistoOmegaDalitz() {return fEPMassOmegaDalitz;}
51 virtual TH1F* ElectronPairMassHistoPhi() {return fEPMassPhi;}
52 virtual TH1F* ElectronPairMassHistoPhiDalitz() {return fEPMassPhiDalitz;}
53 virtual TH1F* ElectronPairMassHistoJPsi() {return fEPMassJPsi;}
54
55 virtual void Decay(TClonesArray* array);
56
57 virtual const TLorentzVector* Products_pion() const {return fProducts_pion;}
58 virtual const TLorentzVector* Products_eta() const {return fProducts_eta;}
59 virtual const TLorentzVector* Products_etaprime() const {return fProducts_etaprime;}
60 virtual const TLorentzVector* Products_rho() const {return fProducts_rho;}
61 virtual const TLorentzVector* Products_omega() const {return fProducts_omega;}
62 virtual const TLorentzVector* Products_omega_dalitz() const {return fProducts_omega_dalitz;}
63 virtual const TLorentzVector* Products_phi() const {return fProducts_phi;}
64 virtual const TLorentzVector* Products_phi_dalitz() const {return fProducts_phi_dalitz;}
65 virtual const TLorentzVector* Products_jpsi() const {return fProducts_jpsi;}
66
67 virtual void Copy(TObject&) const;
68
69 protected:
70 // Histograms for electron pair mass
71 TH1F* fEPMassPion;
72 TH1F* fEPMassEta;
73 TH1F* fEPMassEtaPrime;
74 TH1F* fEPMassRho;
75 TH1F* fEPMassOmega;
76 TH1F* fEPMassOmegaDalitz;
77 TH1F* fEPMassPhi;
78 TH1F* fEPMassPhiDalitz;
79 TH1F* fEPMassJPsi;
80
81 // Decay products
82 TLorentzVector fProducts_pion[3];
83 TLorentzVector fProducts_eta[3];
84 TLorentzVector fProducts_etaprime[3];
85 TLorentzVector fProducts_rho[2];
86 TLorentzVector fProducts_omega[2];
87 TLorentzVector fProducts_omega_dalitz[3];
88 TLorentzVector fProducts_phi[2];
89 TLorentzVector fProducts_phi_dalitz[3];
90 TLorentzVector fProducts_jpsi[2];
91
92 Bool_t fInit;
93
94 private:
95 Double_t GounarisSakurai(Float_t mass, Double_t vmass, Double_t vwidth, Double_t emass);
76e6e4c5 96 Double_t Lorentz(Float_t mass, Double_t vmass, Double_t vwidth);
b5c4afc6 97 virtual void Rot(Double_t pin[3], Double_t pout[3],
98 Double_t costheta, Double_t sintheta,
99 Double_t cosphi, Double_t sinphi) const;
100 AliDecayerExodus(const AliDecayerExodus &decayer);
101 AliDecayerExodus & operator=(const AliDecayerExodus & rhs);
102
103
104 ClassDef(AliDecayerExodus, 1) // AliDecayer implementation using Exodus
105};
106#endif
107
108
109
110
111
112
113