KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
cavata_prescription.h
1
3
4#ifndef __KVIMPACTPARAMETER_H
5#define __KVIMPACTPARAMETER_H
6#include "KVBase.h"
7#include "TH1.h"
8#include "TString.h"
9#include "TGraph.h"
10#include "TF1.h"
11#include "KVHistoManipulator.h"
12#include <vector>
13
14namespace KVImpactParameters {
46 class cavata_prescription : public KVBase {
56
57 void make_scale(Int_t npoints);
58#ifndef WITH_CPP11
59 KVImpactParameter(const KVImpactParameter&) : KVBase() {}; // copying is not possible
60#endif
61 public:
62#ifdef WITH_CPP11
63 cavata_prescription(const cavata_prescription&) = delete; // copying is not possible
64#endif
66 {
67 fData = nullptr;
68 fIPScale = nullptr;
69 fXSecScale = nullptr;
70 fObsTransform = nullptr;
71 fObsTransformXSec = nullptr;
72 Bmax = 1.0;
73 }
79 cavata_prescription(TH1* h, Option_t* evol = "D");
80 virtual ~cavata_prescription();
81
82 void MakeScale(Int_t npoints = 100, Double_t bmax = 1.0);
83 void MakeAbsoluteScale(Int_t npoints = 100, Double_t bmax = 1.0);
85 {
89 return fIPScale;
90 }
92 {
96 return fXSecScale;
97 }
101 {
103 return fObsTransform;
104 }
106 {
108 return fObsTransformXSec;
109 }
111 {
114 return fObsTransform->Eval(obs);
115 }
117 {
120 return fObsTransformXSec->Eval(obs);
121 }
123 {
126 return fObsTransform->GetX(b);
127 }
134 TH1* GetIPDistribution(TH1* obs, Int_t nbinx = 100, Option_t* norm = "");
135 TGraph* GetIPEvolution(TH2* obscor, TString moment, TString axis = "Y");
136 TH1* GetXSecDistribution(TH1* obs, Int_t nbinx = 100, Option_t* norm = "");
137 TGraph* GetXSecEvolution(TH2* obscor, TString moment, TString axis = "Y");
138
140 {
144 return 10.*TMath::Pi() * pow(bmax, 2);
145 }
147 {
151 return pow(xsec / 10. / TMath::Pi(), 0.5);
152 }
153 std::vector<Double_t> SliceXSec(Int_t nslices, Double_t totXsec);
154 double GetMeanBForSCA(double bmin, double bmax) const;
155 double GetSigmaBForSCA(double bmin, double bmax) const;
156
157 ClassDef(cavata_prescription, 2) //Impact parameter analysis tools
158 };
159}
160#endif
int Int_t
double Double_t
const char Option_t
#define ClassDef(name, id)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t b
Base class for KaliVeda framework.
Definition KVBase.h:142
Toolkit for various operations on histograms & graphs not provided by ROOT.
Impact parameter estimation neglecting using sharp cut-off approximation.
Double_t BTransform(Double_t *, Double_t *)
double GetMeanBForSCA(double bmin, double bmax) const
static Double_t GetIPFromXSec(Double_t xsec)
TGraph * fXSecScale
derived relation between observable and cross-section
TGraph * GetIPEvolution(TH2 *obscor, TString moment, TString axis="Y")
TGraph * fIPScale
derived relation between observable and impact-parameter
std::vector< Double_t > SliceXSec(Int_t nslices, Double_t totXsec)
cavata_prescription(const cavata_prescription &)=delete
TF1 * fObsTransform
function for transforming observable into impact parameter
TGraph * GetXSecEvolution(TH2 *obscor, TString moment, TString axis="Y")
TF1 * fObsTransformXSec
function for transforming observable into cross-section
Double_t XTransform(Double_t *, Double_t *)
KVHistoManipulator HM
for scaling transormations of histograms, graphs, etc.
void MakeScale(Int_t npoints=100, Double_t bmax=1.0)
TH1 * fData
histogram containing distribution of ip-related observable
static Double_t GetXSecFromIP(Double_t bmax)
TString fEvol
how the observable evolves with b
Double_t Smax
maximum of cross-section scale
double GetSigmaBForSCA(double bmin, double bmax) const
TH1 * GetIPDistribution(TH1 *obs, Int_t nbinx=100, Option_t *norm="")
void MakeAbsoluteScale(Int_t npoints=100, Double_t bmax=1.0)
TH1 * GetXSecDistribution(TH1 *obs, Int_t nbinx=100, Option_t *norm="")
virtual Double_t GetX(Double_t y, Double_t xmin=0, Double_t xmax=0, Double_t epsilon=1.E-10, Int_t maxiter=100, Bool_t logx=false) const
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
RVec< PromoteTypes< T0, T1 > > pow(const RVec< T0 > &v, const T1 &y)
const Double_t sigma
constexpr Double_t Pi()