CbmRoot
Loading...
Searching...
No Matches
CbmLitPolarizedGenerator.h
Go to the documentation of this file.
1/* Copyright (C) 2011-2015 GSI/JINR-LIT, Darmstadt/Dubna
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Evgeny Kryshen, Andrey Lebedev [committer] */
4
5// -------------------------------------------------------------------------
6// ----- CbmLitPolarizedGenerator header file -----
7// ----- Created 11/09/09 by E. Kryshen -----
8// -------------------------------------------------------------------------
9
28#ifndef CBMLITPOLARIZEDGENERATOR_H
29#define CBMLITPOLARIZEDGENERATOR_H
30
31#include "FairGenerator.h"
32#include "TF1.h"
33#include "TVector3.h"
34
35class FairPrimaryGenerator;
36
37class CbmLitPolarizedGenerator : public FairGenerator {
38 public:
39 typedef enum
40 {
41 kNoPol = 0,
43 kHelicity = 2
45 typedef enum
46 {
48 kDiMuon = 2
50
53
58 CbmLitPolarizedGenerator(Int_t pdgid, Int_t mult = 1);
59
62
63 Bool_t GenerateDaughters(const TVector3 p, FairPrimaryGenerator* primGen);
64
66 inline void SetPDGType(Int_t pdg) { fPDGType = pdg; };
67 inline void SetMultiplicity(Int_t mult) { fMult = mult; };
68
69 // Set temperature for transverse momentum distribution in GeV
70 inline void SetDistributionPt(Double_t T = 0.154319, Double_t mass = -1.)
71 {
72 fT = T;
73 fPtDistMass = mass;
74 };
75
76 // Set rapidity distribution parameters (y0 - mid rapidity, sigma - Gaussian width)
77 inline void SetDistributionY(Double_t y0 = 1.98604, Double_t sigma = 0.617173)
78 {
79 fY0 = y0;
80 fSigma = sigma;
81 };
82
83 // Set range
84 inline void SetRangePt(Double_t ptMin = 0, Double_t ptMax = 3)
85 {
86 fPtMin = ptMin;
87 fPtMax = ptMax;
88 };
89 inline void SetRangeY(Double_t yMin = 0, Double_t yMax = 4)
90 {
91 fYMin = yMin;
92 fYMax = yMax;
93 };
94
95 // Set polarization parameter
96 inline void SetAlpha(Double_t alpha = 0) { fAlpha = alpha; }
97
101 inline void SetRefFrame(Frame_t frame = kColSop) { fFrame = frame; }
102
104 inline void SetDecayMode(DecayMode_t decayMode = kDiMuon) { fDecayMode = decayMode; }
105
109 inline void SetBeamMomentum(Double_t mom) { fBeamMomentum = mom; }
110
114 inline void SetBox(Bool_t box) { fBox = box; }
115
117 Bool_t Init();
118
122 virtual Bool_t ReadEvent(FairPrimaryGenerator* primGen);
123
124 private:
125 Int_t fPDGType;
126 Int_t fMult;
127 Double_t fT;
128 Double_t fPtDistMass;
129 Double_t fY0;
130 Double_t fSigma;
131 Double_t fPtMin;
132 Double_t fPtMax;
133 Double_t fYMin;
134 Double_t fYMax;
135 Double_t fPDGMass;
136 TF1* fDistPt;
137 Double_t fAlpha; //< Polarization parameter in the helicity frame
138 Frame_t fFrame; //< Choice of decay products
139 DecayMode_t fDecayMode; //< Reference system for polarization
140 Double_t fBeamMomentum; //< Beam momentum in lab frame
141 TF1* fPol;
142 Bool_t fBox; // fBox = 1 Box generator, fBox = 0 - termal pt and gaussian y
143
146
148};
149
150#endif
Double_t fPtMin
Max value of Pt.
Bool_t GenerateDaughters(const TVector3 p, FairPrimaryGenerator *primGen)
Int_t fPDGType
Particle type (PDG encoding)
Double_t fYMax
Min value of Pt.
Bool_t fBox
Polarization function.
ClassDef(CbmLitPolarizedGenerator, 1)
virtual Bool_t ReadEvent(FairPrimaryGenerator *primGen)
void SetRangeY(Double_t yMin=0, Double_t yMax=4)
Double_t fAlpha
Pointer to the Pt function.
void SetRefFrame(Frame_t frame=kColSop)
void SetDistributionPt(Double_t T=0.154319, Double_t mass=-1.)
Double_t fPtMax
Min value of Pt.
CbmLitPolarizedGenerator & operator=(const CbmLitPolarizedGenerator &)
void SetRangePt(Double_t ptMin=0, Double_t ptMax=3)
Double_t fPDGMass
Particle mass [GeV].
void SetDecayMode(DecayMode_t decayMode=kDiMuon)
Double_t fPtDistMass
Mass in Pt distribution.
Double_t fT
Temperature in the Pt distribution.
Double_t fYMin
Max value of Pt.
void SetAlpha(Double_t alpha=0)
Double_t fSigma
Simga in the rapidity distribution.
CbmLitPolarizedGenerator(const CbmLitPolarizedGenerator &)
void SetDistributionY(Double_t y0=1.98604, Double_t sigma=0.617173)