1 #ifndef ALIDECAYERPOLARIZED_H
2 #define ALIDECAYERPOLARIZED_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
6 // Class to generate decay products for polarized heavy quarkonia
8 #include <TLorentzVector.h>
9 #include <TClonesArray.h>
12 #include "AliDecayer.h"
16 class AliDecayerPolarized : public AliDecayer
19 typedef enum { kNoPol = 0, kColSop = 1, kHelicity = 2} Polar_t;
20 typedef enum { kElectron = 1, kMuon = 2} FinState_t;
21 AliDecayerPolarized();
22 AliDecayerPolarized(Double_t alpha, Polar_t systref, FinState_t decprod);
23 AliDecayerPolarized(const AliDecayerPolarized &decayer);
24 virtual ~AliDecayerPolarized();
25 void SetPolDec(Double_t alpha=0) {fAlpha=alpha;}
26 void SetPolRefSys(Polar_t systref=kColSop) {fSystRef=systref;}
27 void SetDecProd(FinState_t decprod=kMuon) {fDecProd=decprod;}
28 virtual void Init(){;}
29 virtual void Decay(Int_t ipart, TLorentzVector *p);
30 virtual Int_t ImportParticles(TClonesArray *part);
31 // The following methods are dummy
32 virtual void SetForceDecay(Int_t type);
33 virtual void ForceDecay();
34 virtual Float_t GetPartialBranchingRatio(Int_t ipart);
35 virtual Float_t GetLifetime(Int_t kf);
36 virtual void ReadDecayTable();
39 Double_t fAlpha; // Polarization parameter
40 Polar_t fSystRef; // Reference system for polarization
41 FinState_t fDecProd; // Choice of decay products
42 TF1 *fPol; // ! Angular distribution for decay products
43 TParticle *fMother; // ! Particle that has to be decayed
44 TParticle *fDaughter1; // ! Decay product no. 1
45 TParticle *fDaughter2; // ! Decay product no. 2
48 void Copy(TObject &decayer) const;
49 AliDecayerPolarized &operator=(const AliDecayerPolarized &decayer)
50 {decayer.Copy(*this);return(*this);}
52 ClassDef(AliDecayerPolarized,1) // Polarized 2-body quarkonium decay