ROOT logo
AliRoot » ITS » AliITSsimulationSSD

class AliITSsimulationSSD: public AliITSsimulation


Author: Enrico Fragiacomo
enrico.fragiacomo@ts.infn.it
Last revised: june 2008

AliITSsimulationSSD is the simulation of SSD.

Function Members (Methods)

public:
AliITSsimulationSSD()
AliITSsimulationSSD(const AliITSsimulationSSD& source)
AliITSsimulationSSD(AliITSDetTypeSim* dettyp)
virtual~AliITSsimulationSSD()
voidTObject::AbstractMethod(const char* method) const
virtual Bool_tAliITSsimulation::AddSDigitsToModule(TClonesArray* pItemArray, Int_t mask)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual voidAliITSsimulation::ClearMap()
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidAliITSsimulation::CreateFastRecPoints(AliITSmodule*, Int_t, TRandom*, TClonesArray*)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual voidDigitiseModule(AliITSmodule* mod, Int_t dummy0, Int_t dummy1)
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
virtual voidFinishSDigitiseModule()
virtual AliITSCalibration*AliITSsimulation::GetCalibrationModel(Int_t mod = 0)
Bool_tAliITSsimulation::GetDebug(Int_t level = 1) const
Double_tGetDiffConst(Int_t i) const
virtual Option_t*TObject::GetDrawOption() const
Double_tGetDriftVelocity(Int_t i) const
static Long_tTObject::GetDtorOnly()
virtual Int_tAliITSsimulation::GetEventNumber() const
virtual const char*TObject::GetIconName() const
Double_tGetIonizeE() const
virtual AliITSpList*AliITSsimulation::GetMap()
virtual Int_tAliITSsimulation::GetModuleNumber() 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
virtual AliITSsegmentation*GetSegmentationModel(Int_t)
Double_tGetTanLorAngleN() const
Double_tGetTanLorAngleP() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
voidHitsToAnalogDigits(AliITSmodule* mod, AliITSpList* pList)
voidHitToDigit(Int_t module, Double_t x0, Double_t y0, Double_t z0, Double_t x, Double_t y, Double_t z, Double_t de, AliITSTableSSD* tav)
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 voidInit()
virtual voidInitSimulationModule(Int_t module, Int_t events)
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)
AliITSsimulationSSD&operator=(const AliITSsimulationSSD& source)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
voidPrint(ostream* os)
virtual voidPrint(Option_t* option = "") const
voidRead(istream* is)
virtual Int_tRead(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 = "")
virtual voidSDigitiseModule(AliITSmodule* mod, Int_t module, Int_t dummy)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidAliITSsimulation::SetCalibrationModel(Int_t mod, AliITSCalibration* res)
voidAliITSsimulation::SetDebug(Int_t level = 5)
voidAliITSsimulation::SetDetType(AliITSDetTypeSim* dettyp)
voidSetDiffConst(Double_t h = 11.0, Double_t e = 30.0)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
voidSetDriftVelocity(Double_t v0 = 0.86E+06, Double_t v1 = 2.28E+06)
static voidTObject::SetDtorOnly(void* obj)
virtual voidAliITSsimulation::SetEventNumber(Int_t evnt)
voidSetIonizeE(Double_t e = 3.62E-09)
voidSetLorentzDrift(Bool_t b = kFALSE)
virtual voidAliITSsimulation::SetMap(AliITSpList* p)
virtual voidAliITSsimulation::SetModuleNumber(Int_t mod)
voidAliITSsimulation::SetNoDebug()
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidSetSegmentationModel(Int_t, AliITSsegmentation* seg)
Bool_tSetTanLorAngle()
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

private:
Double_tfDifConst[2]Diffusion constants [h,e] in cm**2/sec
Double_tfDriftVel[2]Drift velocities [P,N sides] cm/sec
Double_tfIonEionization energy of Si in GeV
Bool_tfLorentzkTRUE if Lorentz drift has been allowed
AliITSMapA2*fMapA2! Map of ionization, used localy only
Double_tfTanLorAngN! Tangent of the Lorentz Angle for electrons
Double_tfTanLorAngP! Tangent of the Lorentz Angle for holes
TF1*fTimeResponsesignal time response function

Class Charts

Inheritance Chart:
TObject
AliITSsimulation
AliITSsimulationSSD

Function documentation

AliITSsimulationSSD()
fDCS(0),
default Constructor
Inputs:
 none.
 Outputs:
 none.
 Return:
  A default construction AliITSsimulationSSD class
AliITSsimulationSSD(AliITSDetTypeSim* dettyp)
fDCS(0),
 Constructor
 Input:
   AliITSDetTypeSim    Pointer to the SSD dettype to be used
 Outputs:
   none.
 Return
   A standard constructed AliITSsimulationSSD class
void Init()
 Inilizer, Inilizes all of the variable as needed in a standard place.
 Input:
   AliITSsegmentationSSD *seg  Pointer to the SSD segmentation to be used
   AliITSCalibrationSSD   *resp Pointer to the SSD responce class to be used
 Outputs:
   none.
 Return
   none.
Bool_t SetTanLorAngle()
 This function set the Tangent of the Lorentz angles.
 output: Bool_t : kTRUE in case of success

AliITSsimulationSSD& operator=(const AliITSsimulationSSD& source)
 Operator =
AliITSsimulationSSD(const AliITSsimulationSSD& source)
 copy constructor
~AliITSsimulationSSD()
 destructor
void InitSimulationModule(Int_t module, Int_t events)
 Creates maps to build the list of tracks for each sumable digit
 Inputs:
   Int_t module    // Module number to be simulated
   Int_t event     // Event number to be simulated
 Outputs:
   none.
 Return
    none.
void FinishSDigitiseModule()
 Does the Sdigits to Digits work
 Inputs:
   none.
 Outputs:
   none.
 Return:
   none.
void DigitiseModule(AliITSmodule* mod, Int_t dummy0, Int_t dummy1)
 Digitizes hits for one SSD module
void SDigitiseModule(AliITSmodule* mod, Int_t module, Int_t dummy)
 Produces Summable/Analog digits and writes them to the SDigit tree.
void SDigitToDigit(Int_t module, AliITSpList* pList)
 Takes the pList and finishes the digitization.
void HitsToAnalogDigits(AliITSmodule* mod, AliITSpList* pList)
 Loops over all hits to produce Analog/floating point digits. This
 is also the first task in producing standard digits.
void HitToDigit(Int_t module, Double_t x0, Double_t y0, Double_t z0, Double_t x, Double_t y, Double_t z, Double_t de, AliITSTableSSD* tav)
 hit to digit conversion
 Turns hits in SSD module into one or more digits.
Float_t tang[2] = {0.0,0.0};
seg->Angles(tang[0], tang[1]);//stereo<<->tan(stereo)~=stereo
void ApplyNoise(AliITSpList* pList, Int_t mod)
 Apply Noise.
void ApplyCoupling(AliITSpList* pList, Int_t mod)
 Apply the effect of electronic coupling between channels
void ApplyDeadChannels(Int_t mod)
 Kill dead channels setting gain to zero
Float_t F(Float_t av, Float_t x, Float_t s)
 Computes the integral of a gaussian using Error Function
void IntegrateGaussian(Int_t k, Double_t par, Double_t av, Double_t sigma, Double_t inf, Double_t sup, AliITSTableSSD* tav)
 integrate the diffusion gaussian
 remind: inf and sup are w-3sigma and w+3sigma
         we could define them here instead of passing them
         this way we are free to introduce asimmetry
Int_t NumOfSteps(Double_t x, Double_t y, Double_t z, Double_t& dex, Double_t& dey, Double_t& dez)
 number of steps
 it also returns steps for each coord
AliITSsegmentationSSD *seg = new AliITSsegmentationSSD();
step = (Double_t) seg->GetStepSize();  // step size (cm)
void GetList(Int_t trk, Int_t ht, Int_t mod, AliITSpList* pLt, AliITSTableSSD* tav)
 loop over nonzero digits
void ChargeToSignal(Int_t module, const AliITSpList* pList)
 charge to signal
void WriteSDigits(AliITSpList* pList)
 Fills the Summable digits Tree
void FillMapFrompList(AliITSpList* pList)
 Fills fMap2A from the pList of Summable digits
void Print(ostream* os)
Standard output format for this class
void Read(istream* is)
 Standard output streaming function.
AliITSsegmentation* GetSegmentationModel(Int_t )
 Get a pointer to the segmentation object
{return fDetType->GetSegmentationModel(2);}
void SetSegmentationModel(Int_t , AliITSsegmentation* seg)
 set pointer to segmentation objec
{fDetType->SetSegmentationModel(2,seg);}
Double_t GetIonizeE() const
returns a pointer to the SSD segmentation.
AliITSsegmentationSSD *GetSegmentation() {
	return (AliITSsegmentationSSD*) fSegmentation;}

Returns the ionization energy for Si in GeV.
{return fIonE;}
void SetIonizeE(Double_t e = 3.62E-09)
Sets the ionization energy for Si in GeV.
{fIonE = e;}
Double_t GetDiffConst(Int_t i) const
Returns the Diffusion constant h in cm**2/sec
{return fDifConst[i];}
void SetDiffConst(Double_t h = 11.0, Double_t e = 30.0)
Sets the Diffusion constant h in cm**2/sec
{fDifConst[0] = h;fDifConst[1]=e;}
Double_t GetDriftVelocity(Int_t i) const
Returns the Drift velocity for the side i
{return fDriftVel[i];}
void SetDriftVelocity(Double_t v0 = 0.86E+06, Double_t v1 = 2.28E+06)
Sets the Drift velocity for the P and N sides
{fDriftVel[0] = v0;fDriftVel[1] = v1;}
void SetLorentzDrift(Bool_t b = kFALSE)
  Decide whether to use or not the Lorentz drift
Double_t GetTanLorAngleP() const
 Getter for the Lorentz angles
{return fTanLorAngP;}
Double_t GetTanLorAngleN() const
{return fTanLorAngN;}
void Print(ostream* os)
 Standard ascii class print function
void Read(istream* is)
 Standard ascii class read function
Int_t GetNStrips()
 returns, from the segmentation, the number of stips
Float_t GetStripPitch()
 returns, from the segmentation, the strip pitch