ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtELossManager.h
Go to the documentation of this file.
1 
7 #ifndef AtELOSSMANAGER_H
8 #define AtELOSSMANAGER_H
9 
10 #include <Rtypes.h>
11 #include <TObject.h>
12 
13 #include <memory>
14 #include <string>
15 #include <vector>
16 
17 class TBuffer;
18 class TClass;
19 class TGraph;
20 class TMemberInspector;
21 
22 namespace AtTools {
23 
24 class AtELossManager : public TObject {
25 
26 public:
28  AtELossManager(std::string Eloss_file, Double_t Mass);
30 
31  Double_t GetEnergyLossLinear(Double_t energy, Double_t distance);
32  Double_t GetEnergyLoss(Double_t energy, Double_t distance);
33  Double_t GetInitialEnergy(Double_t FinalEnergy, Double_t PathLength, Double_t StepSize);
34  Double_t GetFinalEnergy(Double_t InitialEnergy, Double_t PathLength, Double_t StepSize);
35  Double_t GetDistance(Double_t InitialE, Double_t FinalE, Double_t StepSize);
36  Double_t GetPathLength(Float_t InitialEnergy, Float_t FinalEnergy, Float_t DeltaT);
37  Double_t LoadRange(Float_t energy1);
38  Double_t GetTimeOfFlight(Double_t InitialEnergy, Double_t PathLength, Double_t StepSize);
39  void SetIonMass(Double_t IonMass);
40  void InitializeLookupTables(Double_t MaximumEnergy, Double_t MaximumDistance, Double_t DeltaE, Double_t DeltaD);
41  void PrintLookupTables();
42  Double_t GetLookupEnergy(Double_t InitialEnergy, Double_t distance);
43 
44 private:
45  std::shared_ptr<TGraph> EvD;
46 
47  Double_t c{29.9792458};
48  Double_t IonMass{0};
49 
50  std::vector<Double_t> IonEnergy;
51  std::vector<Double_t> dEdx_e;
52  std::vector<Double_t> dEdx_n;
53  std::vector<Double_t> Range;
54 
55  Double_t fMaximumEnergy{};
56  Double_t fMaximumDistance{};
57  Double_t fDeltaD{};
58  Double_t fDeltaE{};
59 
60  std::vector<Double_t> EtoDtab;
61  std::vector<Double_t> DtoEtab;
62 
63  Int_t points{0};
64  Int_t last_point{0};
65  Int_t points1{0};
66  Int_t last_point1{0};
67  Bool_t Energy_in_range{true};
68  Bool_t GoodELossFile{false};
69 
70  ClassDef(AtELossManager, 1)
71 };
72 } // namespace AtTools
73 
74 #endif
AtTools::AtELossManager::LoadRange
Double_t LoadRange(Float_t energy1)
Definition: AtELossManager.cxx:345
AtTools::AtELossManager::PrintLookupTables
void PrintLookupTables()
Definition: AtELossManager.cxx:485
AtTools::AtELossManager::GetLookupEnergy
Double_t GetLookupEnergy(Double_t InitialEnergy, Double_t distance)
Definition: AtELossManager.cxx:501
AtTools::AtELossManager::GetEnergyLossLinear
Double_t GetEnergyLossLinear(Double_t energy, Double_t distance)
Definition: AtELossManager.cxx:68
AtTools::AtELossManager::InitializeLookupTables
void InitializeLookupTables(Double_t MaximumEnergy, Double_t MaximumDistance, Double_t DeltaE, Double_t DeltaD)
Definition: AtELossManager.cxx:416
AtTools::AtELossManager::GetInitialEnergy
Double_t GetInitialEnergy(Double_t FinalEnergy, Double_t PathLength, Double_t StepSize)
Definition: AtELossManager.cxx:217
AtTools::AtELossManager::GetTimeOfFlight
Double_t GetTimeOfFlight(Double_t InitialEnergy, Double_t PathLength, Double_t StepSize)
Definition: AtELossManager.cxx:386
AtTools::AtELossManager
Definition: AtELossManager.h:24
AtTools::AtELossManager::SetIonMass
void SetIonMass(Double_t IonMass)
Definition: AtELossManager.cxx:410
AtTools
Definition: AtSimpleSimulation.h:19
AtTools::AtELossManager::~AtELossManager
~AtELossManager()
AtTools::AtELossManager::GetFinalEnergy
Double_t GetFinalEnergy(Double_t InitialEnergy, Double_t PathLength, Double_t StepSize)
Definition: AtELossManager.cxx:246
AtTools::AtELossManager::GetEnergyLoss
Double_t GetEnergyLoss(Double_t energy, Double_t distance)
Definition: AtELossManager.cxx:122
AtTools::AtELossManager::GetDistance
Double_t GetDistance(Double_t InitialE, Double_t FinalE, Double_t StepSize)
Definition: AtELossManager.cxx:280
AtTools::AtELossManager::GetPathLength
Double_t GetPathLength(Float_t InitialEnergy, Float_t FinalEnergy, Float_t DeltaT)
Definition: AtELossManager.cxx:301
AtTools::AtELossManager::AtELossManager
AtELossManager()
Definition: AtELossManager.cxx:13