ERDecay10Heto8He.h

Софья Рымжанова, 05/14/2020 03:28 PM

Download (3.44 KB)

 
1
/********************************************************************************
2
 *              Copyright (C) Joint Institute for Nuclear Research              *
3
 *                                                                              *
4
 *              This software is distributed under the terms of the             *
5
 *         GNU Lesser General Public Licence version 3 (LGPL) version 3,        *
6
 *                  copied verbatim in the file "LICENSE"                       *
7
 ********************************************************************************/
8

    
9
#ifndef ERDecay10Heto8He_H
10
#define ERDecay10Heto8He_H
11

    
12
#include <vector>
13
#include <fstream>
14

    
15
#include "TGraph.h"
16
#include "TF1.h"
17
#include "TRandom3.h"
18
#include "TRandom2.h"
19
#include "TGenPhaseSpace.h"
20
#include "TLorentzVector.h"
21

    
22
#include "FairIon.h"
23

    
24
#include "ERDecay.h"
25

    
26
class ERDecay10Heto8He : public ERDecay {
27

    
28
public:
29
  ERDecay10Heto8He();
30
  ~ERDecay10Heto8He();
31
  
32
  /*Modifiers*/
33
  void SetMinStep(Double_t minStep) {fMinStep = minStep;}
34
  void SetTargetThickness(Double_t targetThickness) {fTargetThickness = targetThickness;}
35
  void SetHe10Mass(Double_t mass) {f10HeMass = mass; fIs10HeUserMassSet = true;}
36
  void SetHe10Exitation(Double_t excMean, Double_t fwhm, Double_t distibWeight);
37
  void SetDecayFile(const TString& filePath, Double_t excitationEnergyInFile /*[GeV]*/){ fDecayFilePath = filePath; }
38
   
39
 /** @brief Sets distribution is contained in file.
40
   ** @param ADfile  file with angular distribution.
41
  **/
42

    
43
void SetAngularDistribution(TString ADfile);   
44

    
45
public:
46
  Bool_t Init();
47
  Bool_t Stepping();
48
  // Bool_t Init() { return true; } 
49
  // Bool_t Stepping() { return true; } 
50

    
51

    
52
 void BeginEvent();
53
 void FinishEvent();
54

    
55
private:
56
  /** @brief Body reaction in phase space approach.
57
     ** @param Ecm     Total energy in CM.
58
    ** @oaram h7Mass  H7 ion mass.
59
  **/
60
   void ReactionPhaseGenerator(Double_t Ecm, Double_t he10Mass); 
61

    
62
   Bool_t DecayPhaseGenerator(Double_t excitation);
63

    
64
  std::vector<TLorentzVector> ReadDecayEvent();
65

    
66
private:
67
  TRandom3       *fRnd;
68
  TRandom3       *fRnd2;
69
  
70
  TParticlePDG   *f8He;
71
  TParticlePDG   *f10He;
72
  TParticlePDG   *f3H;
73
  TParticlePDG   *f1H;
74
  TParticlePDG   *fn;
75

    
76
  
77
  TLorentzVector *fLv10He; //!
78
  TLorentzVector *fLv1H; //!
79
  TLorentzVector *fLv8Hed; //!        8He decay
80
  TLorentzVector *fLvn1; //!
81
  TLorentzVector *fLvn2; //!
82
 
83
//  FairIon        *fIon1H;
84
  FairIon        *fUnstableIon10He;
85

    
86
  TGenPhaseSpace  *fReactionPhaseSpace;
87
  TGenPhaseSpace  *fDecayPhaseSpace;
88
  Double_t         fTargetReactZ;
89
  Double_t         fMinStep;
90
  Double_t         fTargetThickness;
91
  Bool_t           fDecayFinish;
92

    
93
  std::vector<Double_t> f10HeExcitationMean;
94
  std::vector<Double_t> f10HeExcitationSigma; 
95
  std::vector<Double_t> f10HeExcitationWeight;
96

    
97
  Double_t        f10HeMass;
98
  Bool_t          fIs10HeUserMassSet;
99
  Bool_t          fIs10HeExcitationSet;
100

    
101
  TString         fDecayFilePath;
102
  Double_t        fDecayFileExcitation = 1. /*[GeV]*/;
103
  Bool_t          fDecayFileFinished;
104
  Int_t           fDecayFileCurrentEvent;
105
  std::ifstream   fDecayFile;
106

    
107
  TGraph *fADInput = nullptr;    //!   distribution (angular distribution) graph containing AD input
108
  TF1    *fADFunction = nullptr; //!   function describing AD (angular distribution) of binary reaction
109
  Double_t fThetaMin = 0.;
110
  Double_t fThetaMax = 0.;
111

    
112
  //ADEvaluate function is necessary for TF1 constructor
113
  Double_t ADEvaluate(Double_t *x, Double_t *p);
114
  
115
  
116

    
117
  ClassDef(ERDecay10Heto8He,1);
118
};
119

    
120
#endif