ROOT logo
AliRoot » ITS » UPGRADE » AliITSUv1

class AliITSUv1: public AliITSU


        Geometry for the Upgrade of the Inner Tracking System

 Mario Sitta (sitta@to.infn.it)
 Chinorat Kobdaj (kobdaj@g.sut.ac.th)


Function Members (Methods)

public:
AliITSUv1()
AliITSUv1(const char* title, Int_t nlay)
virtual~AliITSUv1()
voidTObject::AbstractMethod(const char* method) const
virtual voidAddAlignableVolumes() const
voidAddAlignableVolumesChip(int lr, int st, int sst, int md, int ch, TString& parent, Int_t& lastUID) const
voidAddAlignableVolumesHalfStave(int lr, int st, int sst, TString& parent, Int_t& lastUID) const
voidAddAlignableVolumesLayer(int lr, TString& parent, Int_t& lastUID) const
voidAddAlignableVolumesModule(int lr, int st, int sst, int md, TString& parent, Int_t& lastUID) const
voidAddAlignableVolumesStave(int lr, int st, TString& parent, Int_t& lastUID) const
virtual voidAliModule::AddDigit(Int_t*, Int_t*)
virtual voidAliITSU::AddHit(Int_t track, Int_t* vol, Float_t* hits)
virtual voidAliITSU::AddSimDigit(Int_t branch, AliITSdigit* d)
virtual voidAliITSU::AddSimDigit(Int_t branch, Float_t phys, Int_t* digits, Int_t* tracks, Int_t* hits, Float_t* trkcharges, Int_t sigexpanded = -1000)
virtual voidAliITSU::AddSumDigit(AliITSUSDigit& sdig)
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 voidAliITSU::CheckLabels(Int_t* lab) const
virtual voidAliModule::CheckQA()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual voidAliITSU::ClearChips()
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual AliDigitizer*AliITSU::CreateDigitizer(AliDigitizationInput* manager) const
virtual voidCreateGeometry()
virtual voidCreateMaterials()
voidCreateSuppCyl(const Bool_t innerBarrel, TGeoVolume* dest, const TGeoManager* mgr = gGeoManager)
virtual AliTriggerDetector*AliModule::CreateTriggerDetector() const
virtual voidDefineLayer(Int_t nlay, Double_t phi0, Double_t r, Double_t zlen, Int_t nstav, Int_t nunit, Double_t lthick = 0., Double_t dthick = 0., UInt_t detType = 0, Int_t buildFlag = 0)
virtual voidDefineLayerTurbo(Int_t nlay, Double_t phi0, Double_t r, Double_t zlen, Int_t nstav, Int_t nunit, Double_t width, Double_t tilt, Double_t lthick = 0., Double_t dthick = 0., UInt_t detType = 0, Int_t buildFlag = 0)
virtual voidAliModule::DefineOpticalProperties()
virtual voidDefineWrapVolume(Int_t id, Double_t rmin, Double_t rmax, Double_t zspan)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual TClonesArray*AliDetector::Digits() const
virtual voidAliITSU::Digits2Raw()
virtual voidAliModule::Digits2Reco()
TClonesArray*AliITSU::DigitsAddress(Int_t id)
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 voidAliITSU::FillChips(TTree* treeH, Int_t mask = 0)
virtual voidAliITSU::FillChips(Int_t bgrev, Option_t* opt, const char* filename)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual voidAliModule::FinishEvent()
virtual voidAliModule::FinishPrimary()
virtual voidAliDetector::FinishRun()
virtual AliHit*AliDetector::FirstHit(Int_t track)
AliITSUChip*AliITSU::GetChip(Int_t index)
static Float_tAliModule::GetDensityFactor()
AliDigitizationInput*AliModule::GetDigitizationInput() const
TObjArray*AliITSU::GetDigits() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual Bool_tAliITSU::GetEUCLID() const
virtual voidAliITSU::GetGeometryVersion(Int_t& a, Int_t& b) const
virtual const char*TObject::GetIconName() const
virtual TArrayI*AliModule::GetIdtmed() const
virtual Int_tAliDetector::GetIshunt() const
AliITSUGeomTGeo*AliITSU::GetITSGeomTGeo() const
virtual Int_tGetLayerChipTypeID(Int_t lr)
virtual voidGetLayerParameters(Int_t nlay, Double_t& phi0, Double_t& r, Double_t& zlen, Int_t& nstav, Int_t& nmod, Double_t& width, Double_t& tilt, Double_t& lthick, Double_t& mthick, UInt_t& dettype) const
virtual AliLoader*AliDetector::GetLoader() const
virtual Int_tAliITSU::GetMajorVersion() const
virtual Int_tAliITSU::GetMinorVersion() const
virtual const char*TNamed::GetName() const
virtual intAliDetector::GetNdigits() const
virtual intAliDetector::GetNhits() const
Int_tAliITSU::GetNLayers() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual AliITSUParamList*AliITSU::GetResponseParam(Int_t lr)
Int_tAliITSU::GetRunNumber() const
virtual AliITSsegmentation*AliITSU::GetSegmentation(Int_t lr)
virtual AliITSUSimulation*AliITSU::GetSimulationModel(Int_t lr)
AliITSUSimuParam*AliITSU::GetSimuParam() const
virtual AliITSUv1::AliITSUModel_tGetStaveModelIB() const
virtual AliITSUv1::AliITSUModel_tGetStaveModelOB() const
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 Int_tAliITSU::Hits2Clusters(TTree* in, TTree* out)
virtual voidAliITSU::Hits2Digits()
virtual voidAliITSU::Hits2Digits(Int_t evNumber, Int_t bgrev, Option_t* option, const char* filename)
virtual voidAliITSU::Hits2FastRecPoints(Int_t bgrev, Option_t* opr, const char* filename)
virtual voidAliITSU::Hits2SDigits()
virtual voidAliITSU::Hits2SDigits(Int_t evNumber, Int_t bgrev, Option_t* option, const char* filename)
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()
voidAliITSU::InitSimulation()
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_tIsLayerTurbo(Int_t nlay)
virtual Bool_tAliDetector::IsModule() const
Bool_tTObject::IsOnHeap() const
Bool_tAliITSU::IsSimInitDone() const
virtual Bool_tTNamed::IsSortable() const
virtual Int_tIsVersion() const
Bool_tTObject::IsZombie() const
virtual voidAliModule::LoadPoints(Int_t)
virtual Int_t&AliModule::LoMedium()
virtual voidTNamed::ls(Option_t* option = "") const
virtual voidAliITSU::MakeBranch(Option_t* opt = " ")
virtual voidAliITSU::MakeBranchD(const char* file)
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 voidAliITSU::MakeBranchInTreeD(TTree* treeD, const char* file = 0)
virtual voidAliITSU::MakeBranchS(const char* fl)
virtual AliLoader*AliITSU::MakeLoader(const char* topfoldername)
virtual voidAliDetector::MakeTree(Option_t* option)
voidTObject::MayNotUse(const char* method) const
virtual AliHit*AliDetector::NextHit()
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_tAliITSU::Raw2SDigits(AliRawReader*)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidAliDetector::RemapTrackHitIDs(Int_t*)
voidTObject::ResetBit(UInt_t f)
virtual voidAliITSU::ResetDigits()
virtual voidAliITSU::ResetDigits(Int_t branch)
virtual voidAliDetector::ResetHits()
virtual voidAliITSU::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 voidAliITSU::SDigits2Digits()
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidAliDetector::SetBufferSize(Int_t bufsize = 8000)
virtual voidSetDefaults()
static voidAliModule::SetDensityFactor(Float_t density)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidAliITSU::SetEUCLID(Bool_t euclid = kTRUE)
virtual voidAliDetector::SetIshunt(Int_t ishunt)
virtual voidSetLayerChipTypeID(Int_t lr, UInt_t id)
voidAliDetector::SetLoader(AliLoader* loader)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
virtual voidSetNWrapVolumes(Int_t n)
static voidTObject::SetObjectStat(Bool_t stat)
voidAliModule::SetRunLoader(AliRunLoader* runLoader)
voidAliITSU::SetRunNumber(Int_t rn = 0)
virtual voidSetStaveModelIB(AliITSUv1::AliITSUModel_t model)
virtual voidSetStaveModelOB(AliITSUv1::AliITSUModel_t model)
virtual voidAliDetector::SetTimeGate(Float_t gate)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidAliITSU::SetTreeAddress()
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
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
voidAliITSU::WriteFOSignals()
virtual Float_tAliModule::ZMax() const
virtual Float_tAliModule::ZMin() const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
const char*AliITSU::GetChipTypeName(Int_t i)
const char*AliITSU::GetDigitClassName(Int_t i)
voidAliITSU::InitArrays()
voidTObject::MakeZombie()
private:
AliITSUv1(const AliITSUv1& source)
TGeoVolume*CreateWrapperVolume(Int_t nLay)
AliITSUv1&operator=(const AliITSUv1& source)

Data Members

public:
enum AliITSUModel_t { kIBModelDummy
kIBModel0
kIBModel1
kIBModel21
kIBModel22
kIBModel3
kIBModel4
kOBModelDummy
kOBModel0
kOBModel1
kOBModel2
};
enum AliITSU::[unnamed] { kNChipTypes
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Bool_tAliModule::fActiveDetector activity flag
Int_tAliDetector::fBufferSize!buffer size for Tree detector branches
TObjArray*AliITSU::fCalibration! calibration objects
TObjArray*AliITSU::fChipHits! chip's hits container in (pointers on the fDetHits)
Int_tAliDetector::fCurIterHit!Counter for the hit iterator
Int_tAliModule::fCurrentIterTrackRef!for track refernce iterator routines
TObjArray*AliITSU::fDetDigits! AliDetector has TClonesArray fDigits, avoid same name
TClonesArray*AliITSU::fDetHits! array of full detector hits
AliDigitizationInput*AliModule::fDigInput! input for sdigits -> digits
TClonesArray*AliDetector::fDigits!List of digits for this detector
Bool_tAliModule::fEnableStepManager enabling flag
Bool_tAliITSU::fEuclidOutFlag to write geometry in euclid format
AliITSUGeomTGeo*AliITSU::fGeomTGeoaccess to geometry details
Int_tAliModule::fHiMedium!Maximum tracking medium ID for this Module
TClonesArray*AliDetector::fHits!List of hits for one track only
Int_t*AliITSU::fIdSens[fNLayers] layer identifier
TArrayI*AliModule::fIdmate!List of material numbers
TArrayI*AliModule::fIdtmed!List of tracking medium numbers
Int_tAliDetector::fIshunt1 if the hit is attached to the primary
TString*AliITSU::fLayerName[fNLayers] layer identifier
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
TClonesArray**AliITSU::fModA! Used by Raw2SDigits (one TC per chip)
Int_tAliITSU::fNLayersthe number of layers
TStringTNamed::fNameobject identifier
Int_tAliDetector::fNdigits!Number of digits
Int_tAliDetector::fNhits!Number of hits
AliITSUParamList**AliITSU::fResponseLr! response parameters for each layer
AliRunLoader*AliModule::fRunLoader!local pointer to run loader
Int_tAliITSU::fRunNumber! run number
TClonesArray*AliITSU::fSDigits! Branch address to build SD
AliITSsegmentation**AliITSU::fSegModelLr! segmentation objects per layar
AliITSUSensMap*AliITSU::fSensMap! sensor map for digitization
Bool_tAliITSU::fSimInitDone! flag initialized simulation
AliITSUSimulation**AliITSU::fSimModelLr! simulation objects per layer
AliITSUSimuParam*AliITSU::fSimuParam!simulation parameters
Float_tAliDetector::fTimeGateTime gate in seconds
Bool_tAliITSU::fTimingflag to turn on/off timers.
TStringTNamed::fTitleobject title
static Float_tAliModule::fgDensityFactor! factor that is multiplied to all material densities (ONLY for systematic studies)
TClonesArray*AliITSU::fpSDigits! Branch address to build SD from raw data
private:
Int_t*fBuildLevelVector of Material Budget Studies
Double_t*fChipThickVector of chip thicknesses
UInt_t*fChipTypeIDVector of detector type id
Int_t*fLay2WrapVid of wrapper layer to which layer belongs (-1 if not wrapped)
Double_t*fLayPhi0Vector of layer's 1st stave phi in lab
Double_t*fLayRadiiVector of layer radii
Bool_t*fLayTurboTrue for "turbo" layers
Double_t*fLayZLengthVector of layer length along Z
Int_tfNWrapVolnumber of wrapper volumes
Double_t*fSensThickVector of sensor thicknesses
Int_t*fStavPerLayVector of number of staves per layer
AliITSUv1::AliITSUModel_tfStaveModelIBThe stave model for the Inner Barrel
AliITSUv1::AliITSUModel_tfStaveModelOBThe stave model for the Outer Barrel
Double_t*fStaveTiltVector of stave tilt (only used for turbo)
Double_t*fStaveWidthVector of stave width (only used for turbo)
Int_t*fUnitPerStaveVector of number of "units" per stave
AliITSUv1Layer**fUpGeom! Geometry
Double_t*fWrapRMaxmax radius of wrapper volume
Double_t*fWrapRMinmin radius of wrapper volume
Double_t*fWrapZSpanZ span of wrapper volume

Class Charts

Inheritance Chart:
TNamed
AliModule
AliDetector
AliITSU
AliITSUv1

Function documentation

AliITSUv1()
    Standard default constructor
 Inputs:
   none.
 Outputs:
   none.
 Return:
   none.
AliITSUv1(const char* title, Int_t nlay)
    Standard constructor for the Upgrade geometry.
 Inputs:
   const char * name   Ignored, set to "ITS"
   const char * title  Arbitrary title
   const Int_t nlay    Number of layers

~AliITSUv1()
    Standard destructor
 Inputs:
   none.
 Outputs:
   none.
 Return:
   none.
void AddAlignableVolumes() const
 Creates entries for alignable volumes associating the symbolic volume
 name with the corresponding volume path.

 Records in the alignable entries the transformation matrices converting
 TGeo local coordinates (in the RS of alignable volumes) to the tracking
 system
 For this, this function has to run before the misalignment because we
 are using the ideal positions in the AliITSgeom object.
void AddAlignableVolumesLayer(int lr, TString& parent, Int_t& lastUID) const
 add alignable volumes for layer and its daughters

void AddAlignableVolumesStave(int lr, int st, TString& parent, Int_t& lastUID) const
 add alignable volumes for stave and its daughters

void AddAlignableVolumesHalfStave(int lr, int st, int sst, TString& parent, Int_t& lastUID) const
 add alignable volumes for halfstave (if any) and its daughters

void AddAlignableVolumesModule(int lr, int st, int sst, int md, TString& parent, Int_t& lastUID) const
 add alignable volumes for module (if any) and its daughters

void AddAlignableVolumesChip(int lr, int st, int sst, int md, int ch, TString& parent, Int_t& lastUID) const
 add alignable volumes for chip

void SetNWrapVolumes(Int_t n)
 book arrays for wrapper volumes
void DefineWrapVolume(Int_t id, Double_t rmin, Double_t rmax, Double_t zspan)
 set parameters of id-th wrapper volume
void CreateGeometry()
void CreateSuppCyl(const Bool_t innerBarrel, TGeoVolume* dest, const TGeoManager* mgr = gGeoManager)
 Creates the Service Barrel (as a simple cylinder) for IB and OB
 Inputs:
         innerBarrel : if true, build IB service barrel, otherwise for OB
         dest        : the mother volume holding the service barrel
         mgr         : the gGeoManager pointer (used to get the material)

void CreateMaterials()
 Create ITS materials
     This function defines the default materials used in the Geant
 Monte Carlo simulations for the geometries AliITSv1, AliITSv3,
 AliITSv11Hybrid.
 In general it is automatically replaced by
 the CreateMaterials routine defined in AliITSv?. Should the function
 CreateMaterials not exist for the geometry version you are using this
 one is used. See the definition found in AliITSv5 or the other routine
 for a complete definition.
 Inputs:
   none.
 Outputs:
   none.
 Return:
   none.
void DefineLayer(Int_t nlay, Double_t phi0, Double_t r, Double_t zlen, Int_t nstav, Int_t nunit, Double_t lthick = 0., Double_t dthick = 0., UInt_t detType = 0, Int_t buildFlag = 0)
     Sets the layer parameters
 Inputs:
          nlay    layer number
          phi0    layer phi0
          r       layer radius
          zlen    layer length
          nstav   number of staves
          nunit   IB: number of chips per stave
                  OB: number of modules per half stave
          lthick  chip thickness (if omitted, defaults to 0)
          dthick  sensor thickness (if omitted, defaults to 0)
          dettypeID  ??
          buildLevel (if 0, all geometry is build, used for material budget studies)
 Outputs:
   none.
 Return:
   none.
void DefineLayerTurbo(Int_t nlay, Double_t phi0, Double_t r, Double_t zlen, Int_t nstav, Int_t nunit, Double_t width, Double_t tilt, Double_t lthick = 0., Double_t dthick = 0., UInt_t detType = 0, Int_t buildFlag = 0)
     Sets the layer parameters for a "turbo" layer
     (i.e. a layer whose staves overlap in phi)
 Inputs:
          nlay    layer number
          phi0    phi of 1st stave
          r       layer radius
          zlen    layer length
          nstav   number of staves
          nunit   IB: number of chips per stave
                  OB: number of modules per half stave
          width   stave width
          tilt    layer tilt angle (degrees)
          lthick  chip thickness (if omitted, defaults to 0)
          dthick  sensor thickness (if omitted, defaults to 0)
          dettypeID  ??
          buildLevel (if 0, all geometry is build, used for material budget studies)
 Outputs:
   none.
 Return:
   none.
void GetLayerParameters(Int_t nlay, Double_t& phi0, Double_t& r, Double_t& zlen, Int_t& nstav, Int_t& nmod, Double_t& width, Double_t& tilt, Double_t& lthick, Double_t& mthick, UInt_t& dettype) const
     Gets the layer parameters
 Inputs:
          nlay    layer number
 Outputs:
          phi0    phi of 1st stave
          r       layer radius
          zlen    layer length
          nstav   number of staves
          nmod    IB: number of chips per stave
                  OB: number of modules per half stave
          width   stave width
          tilt    stave tilt angle
          lthick  chip thickness
          dthick  sensor thickness
          dettype detector type
 Return:
   none.
TGeoVolume* CreateWrapperVolume(Int_t nLay)
     Creates an air-filled wrapper cylindrical volume
 Inputs:
          volume id
 Outputs:
          the wrapper volume
void Init()
     Initialise the ITS after it has been created.
Bool_t IsLayerTurbo(Int_t nlay)
     Returns true if the layer is a "turbo" layer
void SetDefaults()
 sets the default segmentation, response, digit and raw cluster classes
void StepManager()
    Called for every step in the ITS, then calles the AliITSUHit class
 creator with the information to be recoreded about that hit.
     The value of the macro ALIITSPRINTGEOM if set to 1 will allow the
 printing of information to a file which can be used to create a .det
 file read in by the routine CreateGeometry(). If set to 0 or any other
 value except 1, the default behavior, then no such file is created nor
 it the extra variables and the like used in the printing allocated.
 Inputs:
   none.
 Outputs:
   none.
 Return:
   none.

void SetLayerChipTypeID(Int_t lr, UInt_t id)
 set det type
Int_t GetLayerChipTypeID(Int_t lr)
 set det type
AliITSUv1()
Int_t IsVersion() const
{ return 20;}
void SetStaveModelIB(AliITSUv1::AliITSUModel_t model)
{fStaveModelIB=model;}
void SetStaveModelOB(AliITSUv1::AliITSUModel_t model)
{fStaveModelOB=model;}
AliITSUModel_t GetStaveModelIB() const
{return fStaveModelIB;}
AliITSUModel_t GetStaveModelOB() const
{return fStaveModelOB;}
AliITSUv1& operator=(const AliITSUv1& source)