ROOT logo
AliRoot » FASTSIM » AliQuenchingWeights

class AliQuenchingWeights: public TObject

Function Members (Methods)

public:
AliQuenchingWeights()
AliQuenchingWeights(const AliQuenchingWeights& a)
virtual~AliQuenchingWeights()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
Int_tCalcLengthMax(Double_t q) const
Double_tCalcLk(Double_t i0, Double_t i1) const
Int_tCalcMult(Int_t ipart, Double_t rrrr, Double_t xxxx, Double_t& continuous, Double_t& discrete) const
Int_tCalcMult(Int_t ipart, Double_t w, Double_t qtransp, Double_t length, Double_t& continuous, Double_t& discrete) const
Double_tCalcQk(Double_t I0, Double_t I1) const
Double_tCalcQk(Double_t k, Double_t I0, Double_t I1) const
Double_tCalcQuenchedEnergy(Int_t ipart, Double_t length, Double_t e) const
Double_tCalcQuenchedEnergy(Int_t ipart, TH1F* hell, Double_t e) const
Double_tCalcQuenchedEnergyK(Int_t ipart, Double_t I0, Double_t I1, Double_t e)
Double_tCalcQuenchedEnergyKFast(Int_t ipart, Double_t I0, Double_t I1, Double_t e)
Double_tCalcR(Double_t wc, Double_t l) const
Double_tCalcRk(Double_t I0, Double_t I1) const
Double_tCalcRk(Double_t k, Double_t I0, Double_t I1) const
Int_tCalcSingleHard(Int_t ipart, Double_t rrrr, Double_t xxxx, Double_t& continuous, Double_t& discrete) const
Int_tCalcSingleHard(Int_t ipart, Double_t w, Double_t mu, Double_t length, Double_t& continuous, Double_t& discrete) const
Double_tCalcWC(Double_t l) const
Double_tCalcWC(Double_t q, Double_t l) const
Double_tCalcWCbar(Double_t mu, Double_t l) const
Double_tCalcWCk(Double_t I1) const
Double_tCalcWCk(Double_t k, Double_t I1) const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
TH1F*ComputeELossHisto(Int_t ipart, Double_t r) const
TH1F*ComputeELossHisto(Int_t ipart, Double_t medval, Double_t l, Double_t e = 1.e10) const
TH1F*ComputeELossHisto(Int_t ipart, Double_t medval, TH1F* hEll, Double_t e = 1.e10) const
TH1F*ComputeQWHisto(Int_t ipart, Double_t medval, Double_t length) const
TH1F*ComputeQWHistoX(Int_t ipart, Double_t r) const
TH1F*ComputeQWHistoX(Int_t ipart, Double_t medval, Double_t length) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tGetDiscreteWeight(Int_t ipart, Double_t I0, Double_t I1)
Double_tGetDiscreteWeightR(Int_t ipart, Double_t r)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
AliQuenchingWeights::kECMethodGetECMethod() const
Double_tGetELossRandom(Int_t ipart, Double_t length, Double_t e = 1.e10) const
Double_tGetELossRandom(Int_t ipart, TH1F* hell, Double_t e = 1.e10) const
Double_tGetELossRandomK(Int_t ipart, Double_t I0, Double_t I1, Double_t e = 1.e10)
Double_tGetELossRandomKFast(Int_t ipart, Double_t I0, Double_t I1, Double_t e = 1.e10)
Double_tGetELossRandomKFastR(Int_t ipart, Double_t r, Double_t wc, Double_t e = 1.e10)
const TH1F*GetHisto(Int_t ipart, Double_t length) const
virtual const char*TObject::GetIconName() const
Float_tGetK() const
Int_tGetLengthMax() const
Double_tGetMeanELoss(Int_t ipart, Double_t r) const
Double_tGetMeanELoss(Int_t ipart, Double_t medval, Double_t l) const
Double_tGetMeanELoss(Int_t ipart, Double_t medval, TH1F* hEll) const
Float_tGetMu() const
Bool_tGetMultSoft() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Float_tGetQTransport() const
Bool_tGetTablesLoaded() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
voidGetZeroLossProb(Double_t& p, Double_t& prw, Double_t& prwcont, Int_t ipart, Double_t I0, Double_t I1, Double_t e = 1.e10)
voidGetZeroLossProbR(Double_t& p, Double_t& prw, Double_t& prwcont, Int_t ipart, Double_t r, Double_t wc, Double_t e = 1.e10)
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
voidInit()
Int_tInitMult(const Char_t* contall = "$(ALICE_ROOT)/FASTSIM/data/cont_mult.all", const Char_t* discall = "$(ALICE_ROOT)/FASTSIM/data/disc_mult.all")
Int_tInitSingleHard(const Char_t* contall = "$(ALICE_ROOT)/FASTSIM/data/cont_lin.all", const Char_t* discall = "$(ALICE_ROOT)/FASTSIM/data/disc_lin.all")
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliQuenchingWeights&operator=(const AliQuenchingWeights& a)
virtual voidTObject::Paint(Option_t* option = "")
voidPlotAvgELoss(TH1F* hEll, Double_t e = 1.e10) const
voidPlotAvgELoss(Double_t len, Double_t qm = 5, Double_t e = 1.e10) const
voidPlotAvgELossVsL(Double_t e = 1.e10) const
voidPlotAvgELossVsPt(Double_t medval, Double_t len) const
voidPlotAvgELossVsPt(Double_t medval, TH1F* hEll) const
voidPlotContWeights(Int_t itype, Double_t len) const
voidPlotContWeightsVsL(Int_t itype, Double_t medval) const
voidPlotDiscreteWeights(Double_t len = 4, Double_t qm = 5) const
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidReset()
voidTObject::ResetBit(UInt_t f)
Int_tSampleEnergyLoss()
Int_tSampleEnergyLoss(Int_t ipart, Double_t r)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetECMethod(AliQuenchingWeights::kECMethod type = kDefault)
voidSetK(Double_t k = 4.e5)
voidSetLengthMax(Int_t l = 20)
voidSetMu(Double_t m = 1.)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetQTransport(Double_t q = 1.)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Int_tGetIndex(Double_t len) const
voidTObject::MakeZombie()

Data Members

public:
enum kECMethod { kDefault
kReweight
kReweightCont
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
AliQuenchingWeights::kECMethodfECMethodenergy constraint method
TH1F*fHisto!
TH1F***fHistos!
Int_tfInstanceNumberinstance number of class
Double_tfKproportional constant [fm]
Int_tfLengthMaxmaximum length
Int_tfLengthMaxOldmaximum length used for histos
Double_tfMuDebye screening mass
Bool_tfMultSoftapproximation type
Double_tfQTransporttransport coefficient [GeV^2/fm]]
Bool_tfTablesLoadedtables loaded
Double_tfcag[34][261]continuous weights gluons
Double_tfcaq[34][261]continuous weights quarks
Double_tfdag[34]discrete weight gluon
Double_tfdaq[34]discrete weight quark
static Int_tfgCounterstatic instance counter
static const Int_tfgkBinsnumber of bins for hists
static const Double_tfgkConvFmToInvGeVconversion factor
static const Double_tfgkMaxBinmax. value of wc
static const Double_tfgkRMaxmax. tabled value of R
Double_tfrrr[34]r value quark
Double_tfrrrg[34]r value gluon
Double_tfxx[400]sampled energy quark
Double_tfxxg[400]sampled energy gluon

Class Charts

Inheritance Chart:
TObject
AliQuenchingWeights

Function documentation

AliQuenchingWeights()
default constructor
AliQuenchingWeights(const AliQuenchingWeights& a)
 copy constructor
~AliQuenchingWeights()
void Init()
    Initialization
void Reset()
reset tables if there were used
void SetECMethod(AliQuenchingWeights::kECMethod type = kDefault)
set energy constraint method
Int_t InitMult(const Char_t* contall = "$(ALICE_ROOT)/FASTSIM/data/cont_mult.all", const Char_t* discall = "$(ALICE_ROOT)/FASTSIM/data/disc_mult.all")
 read in tables for multiple scattering approximation
 path to continuum and to discrete part
Int_t CalcMult(Int_t ipart, Double_t rrrr, Double_t xxxx, Double_t& continuous, Double_t& discrete) const
 Calculate Multiple Scattering approx.
 weights for given parton type,
 rrrr=0.5*q*L^3 and xxxx=w/wc, wc=0.5*q*L^2
Int_t InitSingleHard(const Char_t* contall = "$(ALICE_ROOT)/FASTSIM/data/cont_lin.all", const Char_t* discall = "$(ALICE_ROOT)/FASTSIM/data/disc_lin.all")
 read in tables for Single Hard Approx.
 path to continuum and to discrete part
Int_t CalcSingleHard(Int_t ipart, Double_t rrrr, Double_t xxxx, Double_t& continuous, Double_t& discrete) const
 calculate Single Hard approx.
 weights for given parton type,
 rrrr=0.5*mu^2*L^2 and xxxx=w/wc, wc=0.5*mu^2*L
Int_t CalcMult(Int_t ipart, Double_t w, Double_t qtransp, Double_t length, Double_t& continuous, Double_t& discrete) const
 Calculate Multiple Scattering approx.
 weights for given parton type,
 rrrr=0.5*q*L^3 and xxxx=w/wc, wc=0.5*q*L^2
Int_t CalcSingleHard(Int_t ipart, Double_t w, Double_t mu, Double_t length, Double_t& continuous, Double_t& discrete) const
 calculate Single Hard approx.
 weights for given parton type,
 rrrr=0.5*mu^2*L^2 and xxxx=w/wc, wc=0.5*mu^2*L
Double_t CalcR(Double_t wc, Double_t l) const
calculate r value and
check if it is less then maximum
Double_t CalcRk(Double_t k, Double_t I0, Double_t I1) const
calculate R value and
check if it is less then maximum
Double_t GetELossRandom(Int_t ipart, Double_t length, Double_t e = 1.e10) const
 return DeltaE for MS or SH scattering
 for given parton type, length and energy
 Dependant on ECM (energy constraint method)
 e is used to determine where to set bins to zero.
Double_t CalcQuenchedEnergy(Int_t ipart, Double_t length, Double_t e) const
return quenched parton energy
for given parton type, length and energy
Double_t GetELossRandom(Int_t ipart, TH1F* hell, Double_t e = 1.e10) const
 return DeltaE for MS or SH scattering
 for given parton type, length distribution and energy
 Dependant on ECM (energy constraint method)
 e is used to determine where to set bins to zero.
Double_t CalcQuenchedEnergy(Int_t ipart, TH1F* hell, Double_t e) const
return quenched parton energy
for given parton type, length distribution and energy
Double_t GetELossRandomK(Int_t ipart, Double_t I0, Double_t I1, Double_t e = 1.e10)
 return DeltaE for new dynamic version
 for given parton type, I0 and I1 value and energy
 Dependant on ECM (energy constraint method)
 e is used to determine where to set bins to zero.
Double_t CalcQuenchedEnergyK(Int_t ipart, Double_t I0, Double_t I1, Double_t e)
return quenched parton energy
for given parton type, I0 and I1 value and energy
Double_t GetELossRandomKFast(Int_t ipart, Double_t I0, Double_t I1, Double_t e = 1.e10)
 return DeltaE for new dynamic version
 for given parton type, I0 and I1 value and energy
 Dependant on ECM (energy constraint method)
 e is used to determine where to set bins to zero.
 method is optimized and should only be used if
 all parameters are well within the bounds.
 read-in data tables before first call
Double_t GetELossRandomKFastR(Int_t ipart, Double_t r, Double_t wc, Double_t e = 1.e10)
 return DeltaE for new dynamic version
 for given parton type, R and wc value and energy
 Dependant on ECM (energy constraint method)
 e is used to determine where to set bins to zero.
 method is optimized and should only be used if
 all parameters are well within the bounds.
 read-in data tables before first call
Double_t CalcQuenchedEnergyKFast(Int_t ipart, Double_t I0, Double_t I1, Double_t e)
return quenched parton energy (fast method)
for given parton type, I0 and I1 value and energy
Double_t GetDiscreteWeight(Int_t ipart, Double_t I0, Double_t I1)
 return discrete weight
Double_t GetDiscreteWeightR(Int_t ipart, Double_t r)
 return discrete weight
void GetZeroLossProb(Double_t& p, Double_t& prw, Double_t& prwcont, Int_t ipart, Double_t I0, Double_t I1, Double_t e = 1.e10)
calculate the probabilty that there is no energy
loss for different ways of energy constraint
void GetZeroLossProbR(Double_t& p, Double_t& prw, Double_t& prwcont, Int_t ipart, Double_t r, Double_t wc, Double_t e = 1.e10)
calculate the probabilty that there is no energy
loss for different ways of energy constraint
Int_t SampleEnergyLoss()
 Has to be called to fill the histograms

 For stored values fQTransport loop over
 particle type and length = 1 to fMaxLength (fm)
 to fill energy loss histos

    Take histogram of continuous weights
    Take discrete_weight
    If discrete_weight > 1, put all channels to 0, except channel 1
    Fill channel 1 with discrete_weight/(1-discrete_weight)*integral
Int_t SampleEnergyLoss(Int_t ipart, Double_t r)
 Sample energy loss directly for one particle type
 choses R (safe it and keep it until next call of function)
const TH1F* GetHisto(Int_t ipart, Double_t length) const
return quenching histograms
for ipart and length
TH1F* ComputeQWHisto(Int_t ipart, Double_t medval, Double_t length) const
 ipart = 1 for quark, 2 for gluon
 medval a) qtransp = transport coefficient (GeV^2/fm)
        b) mu      = Debye mass (GeV)
 length = path length in medium (fm)
 Get from SW tables:
 - continuous weight, as a function of dE/wc
TH1F* ComputeQWHistoX(Int_t ipart, Double_t medval, Double_t length) const
 ipart = 1 for quark, 2 for gluon
 medval a) qtransp = transport coefficient (GeV^2/fm)
        b) mu      = Debye mass (GeV)
 length = path length in medium (fm)
 Get from SW tables:
 - continuous weight, as a function of dE/wc
TH1F* ComputeQWHistoX(Int_t ipart, Double_t r) const
 compute P(E) distribution for
 given ipart = 1 for quark, 2 for gluon
 and R
TH1F* ComputeELossHisto(Int_t ipart, Double_t medval, Double_t l, Double_t e = 1.e10) const
 compute energy loss histogram for
 parton type, medium value, length and energy
TH1F* ComputeELossHisto(Int_t ipart, Double_t medval, TH1F* hEll, Double_t e = 1.e10) const
 compute energy loss histogram for
 parton type, medium value,
 length distribution and energy
TH1F* ComputeELossHisto(Int_t ipart, Double_t r) const
 compute energy loss histogram for
 parton type and given R
Double_t GetMeanELoss(Int_t ipart, Double_t medval, Double_t l) const
 compute average energy loss for
 parton type, medium value, length and energy
Double_t GetMeanELoss(Int_t ipart, Double_t medval, TH1F* hEll) const
 compute average energy loss for
 parton type, medium value,
 length distribution and energy
Double_t GetMeanELoss(Int_t ipart, Double_t r) const
 compute average energy loss over wc
 for parton type and given R
void PlotDiscreteWeights(Double_t len = 4, Double_t qm = 5) const
 plot discrete weights for given length
void PlotContWeights(Int_t itype, Double_t len) const
 plot continous weights for
 given parton type and length
void PlotContWeightsVsL(Int_t itype, Double_t medval) const
 plot continous weights for
 given parton type and medium value
void PlotAvgELoss(Double_t len, Double_t qm = 5, Double_t e = 1.e10) const
 plot average energy loss for given length
 and parton energy
void PlotAvgELoss(TH1F* hEll, Double_t e = 1.e10) const
 plot average energy loss for given
 length distribution and parton energy
void PlotAvgELossVsL(Double_t e = 1.e10) const
 plot average energy loss versus ell
void PlotAvgELossVsPt(Double_t medval, Double_t len) const
 plot relative energy loss for given
 length and parton energy versus pt
void PlotAvgELossVsPt(Double_t medval, TH1F* hEll) const
 plot relative energy loss for given
 length distribution and parton energy versus pt
Int_t GetIndex(Double_t len) const
get the index according to length
AliQuenchingWeights& operator=(const AliQuenchingWeights& a)
{a.Copy(*this); return(*this);}
Double_t CalcWC(Double_t q, Double_t l) const
{return 0.5*q*l*l*fgkConvFmToInvGeV;}
Double_t CalcWCbar(Double_t mu, Double_t l) const
{return 0.5*mu*mu*l*fgkConvFmToInvGeV;}
Double_t CalcWC(Double_t l) const
Double_t CalcWCk(Double_t I1) const
Double_t CalcWCk(Double_t k, Double_t I1) const
Double_t CalcRk(Double_t I0, Double_t I1) const
{return CalcRk(fK,I0,I1);}
Double_t CalcQk(Double_t I0, Double_t I1) const
{return CalcQk(fK,I0,I1);}
Double_t CalcQk(Double_t k, Double_t I0, Double_t I1) const
{return I0*I0/2./I1/fgkConvFmToInvGeV/fgkConvFmToInvGeV*k;}
Double_t CalcLk(Double_t i0, Double_t i1) const
{return 2.*i1/i0;}
Int_t CalcLengthMax(Double_t q) const
void SetMu(Double_t m = 1.)
{fMu=m;}
void SetQTransport(Double_t q = 1.)
void SetK(Double_t k = 4.e5)
{fK=k;}
void SetLengthMax(Int_t l = 20)
Float_t GetMu() const
{return fMu;}
Float_t GetQTransport() const
{return fQTransport;}
Float_t GetK() const
{return fK;}
kECMethod GetECMethod() const
{return fECMethod;}
Bool_t GetTablesLoaded() const
{return fTablesLoaded;}
Bool_t GetMultSoft() const
{return fMultSoft;}
Int_t GetLengthMax() const
{return fLengthMax;}