ROOT logo
AliRoot » TPC » SIM » AliTPC

class AliTPC: public AliDetector


Time Projection Chamber
This class contains the basic functions for the Time Projection Chamber
detector. Functions specific to one particular geometry are
contained in the derived classes


/* */



Function Members (Methods)

 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.

public:
virtual~AliTPC()
voidTObject::AbstractMethod(const char* method) const
virtual voidAddAlignableVolumes() const
virtual voidAliModule::AddDigit(Int_t*, Int_t*)
virtual voidAddHit(Int_t a1, Int_t* a2, Float_t* a3)
virtual voidAddHit2(Int_t a1, Int_t* a2, Float_t* a3)
virtual AliTrackReference*AliModule::AddTrackReference(Int_t label, Int_t id = -999)
virtual voidAliModule::AliGetMaterial(Int_t imat, char* name, Float_t& a, Float_t& z, Float_t& dens, Float_t& radl, Float_t& absl) const
virtual voidAliModule::AliMaterial(Int_t imat, const char* name, Float_t a, Float_t z, Float_t dens, Float_t radl, Float_t absl, Float_t* buf = 0, Int_t nwbuf = 0) const
virtual voidAliModule::AliMatrix(Int_t& nmat, Float_t theta1, Float_t phi1, Float_t theta2, Float_t phi2, Float_t theta3, Float_t phi3) const
virtual voidAliModule::AliMedium(Int_t numed, const char* name, Int_t nmat, Int_t isvol, Int_t ifield, Float_t fieldm, Float_t tmaxfd, Float_t stemax, Float_t deemax, Float_t epsil, Float_t stmin, Float_t* ubuf = 0, Int_t nbuf = 0) const
virtual voidAliModule::AliMixture(Int_t imat, const char* name, Float_t* a, Float_t* z, Float_t dens, Int_t nlmat, Float_t* wmat) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidAliDetector::Browse(TBrowser* b)
virtual voidAliModule::BuildGeometry()
virtual voidAliModule::CheckQA()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
voidCreateDebugStremer()
virtual AliDigitizer*CreateDigitizer(AliDigitizationInput* digInput) const
virtual voidCreateGeometry()
virtual voidCreateMaterials()
virtual AliTriggerDetector*AliModule::CreateTriggerDetector() const
virtual voidAliModule::DefineOpticalProperties()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual TClonesArray*AliDetector::Digits() const
virtual voidDigits2Raw()
virtual voidAliModule::Digits2Reco()
virtual voidAliModule::DisableStepManager()
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 voidAliDetector::DrawModule() const
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 voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual voidAliModule::FinishEvent()
virtual voidFinishPrimary()
virtual voidAliDetector::FinishRun()
virtual AliHit*FirstHit(Int_t track)
virtual AliHit*FirstHit2(Int_t track)
voidGenerNoise(Int_t tablasize)
static Float_tAliModule::GetDensityFactor()
AliDigitizationInput*AliModule::GetDigitizationInput() const
AliTPCDigitsArray*GetDigitsArray()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Float_tGetGainFactor() const
Int_tGetHitType() const
virtual const char*TObject::GetIconName() const
virtual TArrayI*AliModule::GetIdtmed() const
virtual Int_tAliDetector::GetIshunt() const
virtual AliLoader*AliDetector::GetLoader() const
virtual const char*TNamed::GetName() const
virtual intAliDetector::GetNdigits() const
virtual intAliDetector::GetNhits() const
Float_tGetNoise()
Int_tGetNsectors() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
AliTPCParam*GetParam()
virtual Float_tAliDetector::GetTimeGate() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual Int_t&AliModule::HiMedium()
virtual TClonesArray*AliDetector::Hits() const
virtual voidHits2Digits()
virtual voidHits2Digits(Int_t eventnumber)
virtual voidHits2DigitsSector(Int_t isec)
virtual voidHits2SDigits()
virtual voidHits2SDigits2(Int_t eventnumber = 0)
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 voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tAliModule::IsActive() const
virtual Bool_tAliDetector::IsDetector() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tAliModule::IsFolder() const
virtual Bool_tAliDetector::IsModule() const
Bool_tTObject::IsOnHeap() const
Bool_tIsSectorActive(Int_t sec) const
virtual Bool_tTNamed::IsSortable() const
virtual Int_tIsVersion() const
Bool_tTObject::IsZombie() const
virtual voidAliModule::LoadPoints(Int_t)
static AliTPCParam*LoadTPCParam(TFile* file)
virtual Int_t&AliModule::LoMedium()
virtual voidTNamed::ls(Option_t* option = "") const
virtual voidMakeBranch(Option_t* opt = " ")
virtual TBranch*AliDetector::MakeBranchInTree(TTree* tree, const char* cname, void* address, Int_t size = 32000, const char* file = 0)
virtual TBranch*AliDetector::MakeBranchInTree(TTree* tree, const char* cname, const char* name, void* address, Int_t size = 32000, Int_t splitlevel = 99, const char* file = 0)
virtual AliLoader*MakeLoader(const char* topfoldername)
virtual voidAliDetector::MakeTree(Option_t* option)
voidTObject::MayNotUse(const char* method) const
virtual AliHit*NextHit()
virtual AliHit*NextHit2()
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)
virtual voidAliModule::Paint(Option_t*)
virtual TObjArray*AliModule::Points() const
virtual voidTObject::Pop()
virtual voidAliModule::PostTrack()
virtual voidAliModule::PreTrack()
virtual voidTNamed::Print(Option_t* option = "") const
virtual voidAliDetector::Publish(const char* dir, void* c, const char* name = 0) const
virtual voidAliModule::QADataMaker(const char*)
virtual voidAliModule::Raw2Digits()
virtual Bool_tRaw2SDigits(AliRawReader* rawReader)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidRemapTrackHitIDs(Int_t* map)
voidTObject::ResetBit(UInt_t f)
virtual voidResetDigits()
virtual voidResetHits()
virtual voidResetHits2()
virtual voidAliModule::ResetSDigits()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
virtual voidSDigits2Digits()
virtual voidSDigits2Digits2(Int_t eventnumber = 0)
voidSetActiveSectors(Int_t flag = 1)
voidSetActiveSectors(Int_t* sectors, Int_t n)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidAliDetector::SetBufferSize(Int_t bufsize = 8000)
voidSetDefSwitch(Int_t def)
static voidAliModule::SetDensityFactor(Float_t density)
voidSetDigitsArray(AliTPCDigitsArray* param)
voidSetDigitsSwitch(Int_t sw)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetGainFactor(Float_t gain)
virtual voidSetGEM(Int_t isGEM)
voidSetHitType(Int_t type)
virtual voidAliDetector::SetIshunt(Int_t ishunt)
voidSetLHCclockPhase(Int_t sw)
voidAliDetector::SetLoader(AliLoader* loader)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetParam(AliTPCParam* param)
voidSetPrimaryIonisation(Bool_t flag = kTRUE)
voidAliModule::SetRunLoader(AliRunLoader* runLoader)
virtual voidSetSens(Int_t sens)
virtual voidSetSide(Float_t side)
virtual voidAliDetector::SetTimeGate(Float_t gate)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidSetTreeAddress()
virtual voidSetTreeAddress2()
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStepManager()
virtual Bool_tAliModule::StepManagerIsEnabled() const
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
Bool_tTrackInVolume(Int_t id, Int_t track)
TTree*AliModule::TreeTR()
virtual voidAliModule::UpdateInternalGeometry()
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
virtual Float_tAliModule::ZMax() const
virtual Float_tAliModule::ZMin() const
protected:
voidDigitizeRow(Int_t irow, Int_t isec, TObjArray** rowTriplet)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidGetList(Float_t label, Int_t np, TMatrixF* m, Int_t* IndexRange, Float_t** pList)
Float_tGetSignal(TObjArray* p1, Int_t ntr, TMatrixF* m1, TMatrixF* m2, Int_t* IndexRange)
voidMakeSector(Int_t isec, Int_t nrows, TTree* TH, Stat_t ntracks, TObjArray** row)
voidTObject::MakeZombie()
AliTPC&operator=(const AliTPC& param)
voidSetDefaults()
voidTransportElectron(Float_t* xyz, Int_t* index)

Data Members

protected:
Bool_tAliModule::fActiveDetector activity flag
Bool_t*fActiveSectors! bool indicating which sectors are active
Int_tAliDetector::fBufferSize!buffer size for Tree detector branches
Int_tAliDetector::fCurIterHit!Counter for the hit iterator
Int_tfCurrentIndex[4]index[0] indicates coordinate system,
Int_tAliModule::fCurrentIterTrackRef!for track refernce iterator routines
Int_tfCurrentNoise! index of the noise in the noise table
TTreeSRedirector*fDebugStreamer!debug streamer
Int_tfDefaultsdefaults switch
AliDigitizationInput*AliModule::fDigInput! input for sdigits -> digits
TClonesArray*AliDetector::fDigits!List of digits for this detector
AliTPCDigitsArray*fDigitsArray! detector digit object
Int_tfDigitsSwitchdigits type, 0->normal, 1->summable
Bool_tAliModule::fEnableStepManager enabling flag
Float_tfGainFactorscaling factor
Int_tAliModule::fHiMedium!Maximum tracking medium ID for this Module
Int_tfHitTypeif fNewHit = 1 old data structure if 2 new hits if 4 old MI stucture
TClonesArray*AliDetector::fHits!List of hits for one track only
TArrayI*AliModule::fIdmate!List of material numbers
TArrayI*AliModule::fIdtmed!List of tracking medium numbers
Int_tfIsGEMflag isGEM readout
Int_tAliDetector::fIshunt1 if the hit is attached to the primary
Int_tfLHCclockPhaseSw! lhc clock phase switch
Int_tAliModule::fLoMedium!Minimum tracking medium ID for this Module
AliLoader*AliDetector::fLoader! pointer to getter for this module skowron
Int_tAliDetector::fMaxIterHit!Limit for the hit iterator
Int_tAliModule::fMaxIterTrackRef!for track refernce iterator routines
TStringTNamed::fNameobject identifier
Int_tAliDetector::fNdigits!Number of digits
Int_tAliDetector::fNhits!Number of hits
Int_tfNoiseDepth! noise table
Float_t*fNoiseTable! table with noise
Int_tfNsectorsNumber of sectors in TPC
Bool_tfPrimaryIonisationswitch between Fluka(true) and geant3(false)
AliRunLoader*AliModule::fRunLoader!local pointer to run loader
Int_tfSensISENS
Float_tfSideselects left(-1), right(+1), or both(0) sides of the TPC
AliTPCParam*fTPCParampointer to TPC parameters
Float_tAliDetector::fTimeGateTime gate in seconds
TStringTNamed::fTitleobject title
AliTPCTrackHitsV2*fTrackHits! hits for given track M.I.
static Float_tAliModule::fgDensityFactor! factor that is multiplied to all material densities (ONLY for systematic studies)

Class Charts

Inheritance Chart:
TNamed
AliModule
AliDetector
AliTPC
AliTPCv0
AliTPCv2
AliTPCLaser
AliTPCv4

Function documentation

void CreateDebugStremer()
 Create Debug streamer to check simulation

~AliTPC()
 TPC destructor

void AddHit(Int_t a1, Int_t* a2, Float_t* a3)
 Add a hit to the list

void CreateMaterials()
 Create Materials for for TPC simulations

void GenerNoise(Int_t tablasize)
Generate table with noise

Float_t GetNoise()
 get noise from table
  if ((fCurrentNoise%10)==0)
  fCurrentNoise= gRandom->Rndm()*fNoiseDepth;
Bool_t IsSectorActive(Int_t sec) const
 check if the sector is active
void SetActiveSectors(Int_t* sectors, Int_t n)
 activate interesting sectors
void SetActiveSectors(Int_t flag = 1)
 activate sectors which were hitted by tracks
loop over tracks
void Digits2Raw()
 convert digits of the current event to raw data
Bool_t Raw2SDigits(AliRawReader* rawReader)
 Converts the TPC raw data into summable digits
 The method is used for merging simulated and
 real data events
AliDigitizer* CreateDigitizer(AliDigitizationInput* digInput) const
void SDigits2Digits2(Int_t eventnumber = 0)
create digits from summable digits
void SetDefaults()
 setting the defaults

void Hits2Digits()
 creates digits from hits

void Hits2Digits(Int_t eventnumber)
 Loop over all sectors for a single event

void Hits2SDigits2(Int_t eventnumber = 0)
void Hits2SDigits()
void Hits2DigitsSector(Int_t isec)
 TPC conversion from hits to digits.

void DigitizeRow(Int_t irow, Int_t isec, TObjArray** rowTriplet)
 Single row digitization, coupling from the neighbouring
 rows taken into account

Float_t GetSignal(TObjArray* p1, Int_t ntr, TMatrixF* m1, TMatrixF* m2, Int_t* IndexRange)
void GetList(Float_t label, Int_t np, TMatrixF* m, Int_t* IndexRange, Float_t** pList)
  Updates the list of tracks contributing to digits for a given row

void MakeSector(Int_t isec, Int_t nrows, TTree* TH, Stat_t ntracks, TObjArray** row)
void Init()
 Initialise TPC detector after definition of geometry

void ResetDigits()
 Reset number of digits and the digits array for this detector

void SetSens(Int_t sens)
void SetSide(Float_t side)
 choice of the TPC side
void TransportElectron(Float_t* xyz, Int_t* index)
 electron transport taking into account:
 1. diffusion,
 2.ExB at the wires
 3. nonisochronity

 xyz and index must be already transformed to system 1

void MakeBranch(Option_t* opt = " ")
 Create a new branch in the current Root Tree
 The branch of fHits is automatically split
 MI change 14.09.2000
void SetTreeAddress()
Sets tree address for hits
void SetTreeAddress2()
 Set branch address for the TrackHits Tree

void FinishPrimary()
void AddHit2(Int_t a1, Int_t* a2, Float_t* a3)
 add hit to the list
void ResetHits()
void ResetHits2()
reset hits
AliHit* FirstHit(Int_t track)
AliHit* NextHit()
 gets next hit

AliHit* FirstHit2(Int_t track)
 Initialise the hit iterator
 Return the address of the first hit for track
 If track>=0 the track is read from disk
 while if track<0 the first hit of the current
 track is returned

AliHit* NextHit2()
Return the next hit for the current track
void RemapTrackHitIDs(Int_t* map)
 remapping

Bool_t TrackInVolume(Int_t id, Int_t track)
return bool information - is track in given volume
load only part of the track information
return true if current track is in volume

  return kTRUE;
  if (fTrackHitsOld && fHitType&2) {
     TBranch * br = fLoader->TreeH()->GetBranch("fTrackHitsInfo");
     br->GetEvent(track);
     AliObjectArray * ar = fTrackHitsOld->fTrackHitsInfo;
     for (UInt_t j=0;j<ar->GetSize();j++){
       if (  ((AliTrackHitsInfo*)ar->At(j))->fVolumeID==id) return kTRUE;
     }
   }
AliLoader* MakeLoader(const char* topfoldername)
Makes TPC loader
AliTPCParam* LoadTPCParam(TFile* file)
 load TPC paarmeters from a given file or create new if the object
 is not found there
 12/05/2003 This method should be moved to the AliTPCLoader
 and one has to decide where to store the TPC parameters
 M.Kowalski
void CreateGeometry()
{}
void AddAlignableVolumes() const
{}
void SDigits2Digits()
{;}
Int_t IsVersion() const
Int_t GetNsectors() const
{return fNsectors;}
void SetGEM(Int_t isGEM)
{fIsGEM=isGEM; }
void StepManager()
AliTPCDigitsArray* GetDigitsArray()
{return fDigitsArray;}
AliTPCParam * GetParam()
{return fTPCParam;}
void SetParam(AliTPCParam* param)
{fTPCParam=param;}
void SetDigitsArray(AliTPCDigitsArray* param)
{fDigitsArray=param;}
void SetHitType(Int_t type)
{fHitType =type;}
void SetDigitsSwitch(Int_t sw)
void SetDefSwitch(Int_t def)
{fDefaults = def;}
Int_t GetHitType() const
{return fHitType;}
void SetPrimaryIonisation(Bool_t flag = kTRUE)
void SetGainFactor(Float_t gain)
{fGainFactor=gain;}
Float_t GetGainFactor() const
 LHC clock phase switch 0 - no phase, 1 - random, 2 - from the OCDB
{return fGainFactor;}
void SetLHCclockPhase(Int_t sw)
 static functions