Line data Source code
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 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 : //---------------------------------------------------------------------------------------------------
23 :
24 :
25 :
26 : #include "AliDecayer.h"
27 : #include <TLorentzVector.h>
28 : #include <TF1.h>
29 :
30 : class TH1F;
31 : class TClonesArray;
32 :
33 0 : class AliDecayerExodus : public AliDecayer
34 : {
35 : public:
36 : AliDecayerExodus();
37 : virtual void Init();
38 : virtual void Decay(Int_t idpart,TLorentzVector* pparent);
39 : virtual Int_t ImportParticles(TClonesArray *particles);
40 0 : virtual void SetForceDecay(Int_t) {;}
41 0 : virtual void ForceDecay() {;}
42 0 : virtual Float_t GetPartialBranchingRatio(Int_t /*ipart*/) {return -1;}
43 0 : virtual Float_t GetLifetime(Int_t /*kf*/) {return -1;}
44 0 : virtual void ReadDecayTable() {;}
45 :
46 0 : virtual TH1F* ElectronPairMassHistoPion() {return fEPMassPion;}
47 0 : virtual TH1F* ElectronPairMassHistoEta() {return fEPMassEta;}
48 0 : virtual TH1F* ElectronPairMassHistoEtaPrime() {return fEPMassEtaPrime;}
49 0 : virtual TH1F* ElectronPairMassHistoRho() {return fEPMassRho;}
50 0 : virtual TH1F* ElectronPairMassHistoOmega() {return fEPMassOmega;}
51 0 : virtual TH1F* ElectronPairMassHistoOmegaDalitz() {return fEPMassOmegaDalitz;}
52 0 : virtual TH1F* ElectronPairMassHistoPhi() {return fEPMassPhi;}
53 0 : virtual TH1F* ElectronPairMassHistoPhiDalitz() {return fEPMassPhiDalitz;}
54 0 : virtual TH1F* ElectronPairMassHistoJPsi() {return fEPMassJPsi;}
55 :
56 : virtual void Decay(TClonesArray* array);
57 :
58 0 : virtual const TLorentzVector* Products_pion() const {return fProducts_pion;}
59 0 : virtual const TLorentzVector* Products_eta() const {return fProducts_eta;}
60 0 : virtual const TLorentzVector* Products_etaprime() const {return fProducts_etaprime;}
61 0 : virtual const TLorentzVector* Products_rho() const {return fProducts_rho;}
62 0 : virtual const TLorentzVector* Products_omega() const {return fProducts_omega;}
63 0 : virtual const TLorentzVector* Products_omega_dalitz() const {return fProducts_omega_dalitz;}
64 0 : virtual const TLorentzVector* Products_phi() const {return fProducts_phi;}
65 0 : virtual const TLorentzVector* Products_phi_dalitz() const {return fProducts_phi_dalitz;}
66 0 : virtual const TLorentzVector* Products_jpsi() const {return fProducts_jpsi;}
67 :
68 : virtual void Copy(TObject&) const;
69 :
70 : protected:
71 : // Histograms for electron pair mass
72 : TH1F* fEPMassPion;
73 : TH1F* fEPMassEta;
74 : TH1F* fEPMassEtaPrime;
75 : TH1F* fEPMassRho;
76 : TH1F* fEPMassOmega;
77 : TH1F* fEPMassOmegaDalitz;
78 : TH1F* fEPMassPhi;
79 : TH1F* fEPMassPhiDalitz;
80 : TH1F* fEPMassJPsi;
81 :
82 : TF1* fPol;
83 :
84 : // Decay products
85 : TLorentzVector fProducts_pion[3];
86 : TLorentzVector fProducts_eta[3];
87 : TLorentzVector fProducts_etaprime[3];
88 : TLorentzVector fProducts_rho[2];
89 : TLorentzVector fProducts_omega[2];
90 : TLorentzVector fProducts_omega_dalitz[3];
91 : TLorentzVector fProducts_phi[2];
92 : TLorentzVector fProducts_phi_dalitz[3];
93 : TLorentzVector fProducts_jpsi[2];
94 :
95 : Bool_t fInit;
96 :
97 : private:
98 : Double_t GounarisSakurai(Float_t mass, Double_t vmass, Double_t vwidth, Double_t emass);
99 : Double_t Lorentz(Float_t mass, Double_t vmass, Double_t vwidth);
100 : virtual void Rot(Double_t pin[3], Double_t pout[3],
101 : Double_t costheta, Double_t sintheta,
102 : Double_t cosphi, Double_t sinphi) const;
103 : AliDecayerExodus(const AliDecayerExodus &decayer);
104 : AliDecayerExodus & operator=(const AliDecayerExodus & rhs);
105 :
106 :
107 6 : ClassDef(AliDecayerExodus, 1) // AliDecayer implementation using Exodus
108 : };
109 : #endif
110 :
111 :
112 :
113 :
114 :
115 :
116 :
|