ROOT logo
AliRoot » ITS » UPGRADE » AliITSUSimuParam

class AliITSUSimuParam: public TObject


Implementation of the class to store the parameters used in
the simulation of ITS upgrade detectors

On the fRespFunParam array content: it holds the
AliITSUParamList type objects with data for response
simulation of type of
detector (e.g. Class/Segmentation) used in the Config.C
The convention is:
1) AliITSUParamList::GetUniqueID() defines detectorID
(see header of the AliITSUGeomTGeo.h) for which these
response data is defined

2) AliITSUParamList::GetID() defines the charge spread
function served by these data, for instance in case of
Pixels these are the functions aliased to enums
kSpreadFunGauss2D... in AliITSUSimulationPix.h

3) Each detector class is free to interpred the content of
AliITSUParamList. AliITSUSimulationPix, for instance requests
that first AliITSUSimulationPix::kParamStart are reserved for
 some standard properties (like number of neighbours around the
pixel with the charge is injected to consider for the charge
spread (the values may be different for different finctions)










Function Members (Methods)

public:
AliITSUSimuParam()
AliITSUSimuParam(const AliITSUSimuParam& simpar)
AliITSUSimuParam(UInt_t nLayers, UInt_t nPix)
virtual~AliITSUSimuParam()
voidTObject::AbstractMethod(const char* method) const
voidAddRespFunParam(AliITSUParamList* pr)
virtual voidTObject::AppendPad(Option_t* option = "")
Double_tApplyPixBaselineAndNoise(UInt_t mod) const
virtual voidTObject::Browse(TBrowser* b)
Double_tCalcProbNoiseOverThreshold(UInt_t mod) const
static Double_tCalcProbNoiseOverThreshold(double base, double noise, double thresh)
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
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
const AliITSUParamList*FindRespFunParams(Int_t detId) const
static Double_tGenerateNoiseQFunction(double prob, double mean, double sigma)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Double_tGetGeVToCharge() const
virtual const char*TObject::GetIconName() const
Double_tGetLrROCycleShift(Int_t lr) const
virtual const char*TObject::GetName() const
Int_tGetNRespFunParams() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Bool_tGetPixAddNoisyFlag() const
Double_tGetPixBiasVoltage(UInt_t mod) const
UInt_tGetPixCouplingOption() const
voidGetPixCouplingParam(Double_t& col, Double_t& row) const
Double_tGetPixFakeRate() const
Bool_tGetPixLorentzDrift() const
Double_tGetPixLorentzHoleWeight() const
Double_tGetPixMinElToAdd() const
voidGetPixNoise(UInt_t mod, Double_t& noise, Double_t& baseline) const
Bool_tGetPixNoiseInAllMod() const
Bool_tGetPixRemoveDeadFlag() const
Double_tGetPixThreshold(UInt_t mod) const
voidGetPixThreshold(UInt_t mod, Double_t& thresh, Double_t& sigma) const
const AliITSUParamList*GetRespFunParams(Int_t i) const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Double_tGeVToCharge(Double_t gev) const
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
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
Double_tLorentzAngleElectron(Double_t bz) const
Double_tLorentzAngleHole(Double_t bz) 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)
AliITSUSimuParam&operator=(const AliITSUSimuParam& source)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
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)
voidSetGeVToCharge(Double_t gc = fgkNcompsDefault)
voidSetLrROCycleShift(Double_t v = 0, Int_t lr = -1)
voidSetNLayers(Int_t nl)
voidSetNPix(Int_t np)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPixAddNoisyFlag(Bool_t value)
voidSetPixBiasVoltage(Double_t bias = 18.182, Int_t mod = -1)
voidSetPixCouplingOption(UInt_t opt)
voidSetPixCouplingParam(Double_t col, Double_t row)
voidSetPixFakeRate(Double_t frate)
voidSetPixLorentzDrift(Bool_t ison)
voidSetPixLorentzHoleWeight(Double_t weight)
voidSetPixMinElToAdd(Double_t nel)
voidSetPixNoise(Double_t noise, Double_t baseline, Int_t mod = -1)
voidSetPixNoiseInAllMod(Bool_t ison)
voidSetPixRemoveDeadFlag(Bool_t value)
voidSetPixThreshold(Double_t thresh, Double_t sigma, int mod = -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
voidTObject::MakeZombie()

Data Members

public:
enum { kNoCouplingPix
kOldCouplingPix
kNewCouplingPix
kMaxCouplingOptPix
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
static const Float_tfgkDOverVDefaultdefault distance over voltage
static const Float_tfgkGeVtoChargeDefaultdefault energy to ionize (free an electron) in GeV
static const Int_tfgkNcompsDefaultdefault for fNcomps
static const Float_tfgkNsigmasDefaultdefault for fNsigmas
static const Float_tfgkPixBiasVoltageDefaultdefault for fPixBiasVoltage
static const Float_tfgkPixCouplColDefaultdefault for fPixCouplCol
static const Float_tfgkPixCouplRowDefaultdefault for fPixCouplRow
static const UInt_tfgkPixCouplingOptDefaulttype of pixel Coupling (old or new)
static const Float_tfgkPixEccDiffDefaultdefault for fPixEccDiff
static const Float_tfgkPixFakeRateDefaultdefault monopix fake rate
static const Float_tfgkPixLorentzHoleWeightDefaultdefault for fPixLorentzHoleWeight
static const Float_tfgkPixMinElToAddDefaultdefault min number of electrons to add to sdigit
static const Bool_tfgkPixNoiseInAllModdefault switch to add digital noise to every chip
static const Float_tfgkPixThrSigmaDefaultdefault for fSigma
static const Float_tfgkPixThreshDefaultdefault for fThresh
static const Float_tfgkTDefaultdefault temperature
private:
Float_tfDOverVThe parameter d/v where d is the disance over which the the potential v is applied d/v [cm/volts]
Float_tfGeVchargeEnergy to ionize (free an electron) in GeV
Float_t*fLrROCycleShift[fNLayers] optional RO cycle shift for each layer (in fraction of RO cycle length if abs<1)
UInt_tfNLayersnumber of layers
UInt_tfNPixnumber of Pix type detectors
Bool_tfPixAddNoisyFlagFlag saying whether noisy pixels should be added to digits
Float_t*fPixBaseline[fNPix] Pix electronic noise: baseline
Float_tfPixBaselineDefPix electronic noise: baseline
Float_t*fPixBiasVoltage[fNPix] Bias Voltage for the Pix
Float_tfPixBiasVoltageDefBias Voltage for the Pix
Float_tfPixCouplColPix Coupling parameter along the cols
UInt_tfPixCouplOptPix Coupling Option
Float_tfPixCouplRowPix Coupling parameter along the rows
Float_tfPixFakeRateDefFake rate for the monopix
Bool_tfPixLorentzDriftFlag to decide whether to simulate the Lorentz Drift or not in Pix
Float_tfPixLorentzHoleWeightLorentz Angle is computed for Pix as average of Hole and Electron
Float_tfPixMinElToAddDefmin number of electrons to add
Float_t*fPixNoise[fNPix] Pix electronic noise: sigma
Float_tfPixNoiseDefPix electronic noise: sigma
Bool_tfPixNoiseInAllModAdd digital noise to every chip
Bool_tfPixRemoveDeadFlagFlag saying whether dead pixels should be removed from digits
Float_t*fPixSigma[fNPix] Pix threshold fluctuations spread
Float_t*fPixThrSigma[fNPix] Pix Threshold fluctuation
Float_tfPixThrSigmaDefPix Threshold fluctuation
Float_t*fPixThresh[fNPix] Pix Threshold value
Float_tfPixThreshDefPix Threshold value
TObjArrayfRespFunParamset of parameterizations for response function (AliITSUParamList)
Float_tfTThe temperature of the Si in Degree K.

Class Charts

Inheritance Chart:
TObject
AliITSUSimuParam

Function documentation

AliITSUSimuParam()



 default constructor
AliITSUSimuParam(UInt_t nLayers, UInt_t nPix)



 regular constructor
AliITSUSimuParam(const AliITSUSimuParam& simpar)



 copy constructor

void SetNPix(Int_t np)
void SetNLayers(Int_t nl)
AliITSUSimuParam& operator=(const AliITSUSimuParam& source)
 Assignment operator.
~AliITSUSimuParam()
 destructor
void Print(Option_t* opt = "") const
 Dump all parameters
Double_t ApplyPixBaselineAndNoise(UInt_t mod) const
 generate random noise
Double_t CalcProbNoiseOverThreshold(UInt_t mod) const
 calculate probability of noise exceeding the threshold
void SetLrROCycleShift(Double_t v = 0, Int_t lr = -1)
 set fractional offset of layer RO cycle
void SetPixThreshold(Double_t thresh, Double_t sigma, int mod = -1)
 set threshold params
Double_t GetPixThreshold(UInt_t mod) const
 obtain threshold
void GetPixThreshold(UInt_t mod, Double_t& thresh, Double_t& sigma) const
 obtain thresholds
void SetPixBiasVoltage(Double_t bias = 18.182, Int_t mod = -1)
 set threshold params
Double_t GetPixBiasVoltage(UInt_t mod) const
 obtain threshold
void SetPixNoise(Double_t noise, Double_t baseline, Int_t mod = -1)
 set noise params
void GetPixNoise(UInt_t mod, Double_t& noise, Double_t& baseline) const
 obtain noise
void SetPixCouplingOption(UInt_t opt)
 set coupling option
Double_t LorentzAngleHole(Double_t bz) const
 Computes the Lorentz angle for electrons in Si
 Input: magnetic Field in KGauss
 Output: Lorentz angle in radians (positive if Bz is positive)
 Main Reference: NIM A 497 (2003) 389–396.
 "An algorithm for calculating the Lorentz angle in silicon detectors", V. Bartsch et al.

Double_t LorentzAngleElectron(Double_t bz) const
 Computes the Lorentz angle for electrons in Si
 Input: magnetic Field in KGauss
 Output: Lorentz angle in radians (positive if Bz is positive)
 Main Reference: NIM A 497 (2003) 389–396.
 "An algorithm for calculating the Lorentz angle in silicon detectors", V. Bartsch et al.

const AliITSUParamList* FindRespFunParams(Int_t detId) const
 find parameters list for detID
void AddRespFunParam(AliITSUParamList* pr)
 add spread parameterization data
Double_t CalcProbNoiseOverThreshold(double base, double noise, double thresh)
 calculate probability of noise exceeding the threshold
if (mean+6*sigma<thresh) return 0;
if (mean-6*sigma>thresh) return 1.;
const double ksqrt2 = 1.41421356237309515e+00;
return 0.5*AliMathBase::ErfcFast( (thresh-mean)/(sigma*ksqrt2));
Double_t GenerateNoiseQFunction(double prob, double mean, double sigma)
 generate random noise exceeding threshold probability prob, i.e. find a random point in the right
 tail of the gaussian(base,noise), provided that the tail integral = prob
const double ksqrt2 = 1.41421356237309515e+00;
return mean+sigma*ksqrt2*TMath::ErfcInverse(2*prob*(1.-gRandom->Rndm()));
Double_t GetLrROCycleShift(Int_t lr) const
void SetPixMinElToAdd(Double_t nel)
Double_t GetPixMinElToAdd() const
void SetPixFakeRate(Double_t frate)
{ fPixFakeRateDef = frate;}
Double_t GetPixFakeRate() const
{return fPixFakeRateDef;}
void SetPixNoiseInAllMod(Bool_t ison)
Bool_t GetPixNoiseInAllMod() const
void SetGeVToCharge(Double_t gc = fgkNcompsDefault)
{fGeVcharge = gc;}
Double_t GetGeVToCharge() const
{return fGeVcharge;}
Double_t GeVToCharge(Double_t gev) const
{return gev/fGeVcharge;}
UInt_t GetPixCouplingOption() const
{return fPixCouplOpt;}
void SetPixCouplingParam(Double_t col, Double_t row)
{fPixCouplCol = col; fPixCouplRow = row;}
void GetPixCouplingParam(Double_t& col, Double_t& row) const
{col = fPixCouplCol; row = fPixCouplRow;}
void SetPixLorentzDrift(Bool_t ison)
Bool_t GetPixLorentzDrift() const
void SetPixLorentzHoleWeight(Double_t weight)
Double_t GetPixLorentzHoleWeight() const
void SetPixAddNoisyFlag(Bool_t value)
{fPixAddNoisyFlag = value;}
Bool_t GetPixAddNoisyFlag() const
void SetPixRemoveDeadFlag(Bool_t value)
Bool_t GetPixRemoveDeadFlag() const
Int_t GetNRespFunParams() const
{return fRespFunParam.GetEntriesFast();}
const AliITSUParamList* GetRespFunParams(Int_t i) const
{return (const AliITSUParamList*)fRespFunParam[i];}