]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliDecayerExodus.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / EVGEN / AliDecayerExodus.h
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
27 class TH1F;
28 class TClonesArray;
29
30 class 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