AliRoot Core  a565103 (a565103)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMFTGeometry.h
Go to the documentation of this file.
1 #ifndef AliMFTGeometry_H
2 #define AliMFTGeometry_H
3 
4 
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice */
7 
8 // $Id$
9 
16 
17 # include "AliGeometry.h"
18 # include "AliMFTSegmentation.h"
19 
21 
22 //__________________________________________________________________
23 
24 class AliMFTGeometry : public AliGeometry
25 {
26 public:
27 
28  static const Int_t kNDisks = 5;
29  static const Double_t kSensorLength;
30  static const Double_t kSensorHeight;
31  static const Double_t kSensorActiveHeight;
32  static const Double_t kSensorActiveWidth;
33  static const Double_t kSensorThickness;
34  static const Double_t kXPixelPitch;
35  static const Double_t kYPixelPitch;
36  static const Int_t kNPixelX = 1024;
37  static const Int_t kNPixelY = 512;
38  static const Double_t kSensorMargin;
39 
40  static const Double_t kSensorInterspace;
41  static const Double_t kSensorSideOffset;
42  static const Double_t kSensorTopOffset;
43  static const Double_t kLadderOffsetToEnd;
44  static const Double_t fHeightActive;
45  static const Double_t fHeightReadout;
46 
47  static const Double_t kFlexHeight;
48  static const Double_t kLineWidth;
49  static const Double_t kVarnishThickness;
50  static const Double_t kAluThickness;
51  static const Double_t kKaptonThickness;
52  static const Double_t kFlexThickness;
53  static const Double_t kClearance;
54  static const Double_t kRadiusHole1;
55  static const Double_t kRadiusHole2;
56  static const Double_t kHoleShift1;
57  static const Double_t kHoleShift2;
58  static const Double_t kConnectorOffset;
59  static const Double_t kCapacitorDz;
60  static const Double_t kCapacitorDy;
61  static const Double_t kCapacitorDx;
62  static const Double_t kConnectorLength;
63  static const Double_t kConnectorWidth;
64  static const Double_t kConnectorHeight;
65  static const Double_t kConnectorThickness;
66  static const Double_t kEpsilon;
67  static const Double_t kGlueThickness;
68  static const Double_t kGlueEdge;
69  static const Double_t kShiftDDGNDline;
70  static const Double_t kShiftline;
71 
72 
74  static AliMFTGeometry* Instance();
75 
77 
78  virtual ~AliMFTGeometry();
79  virtual void GetGlobal(const AliRecPoint * p, TVector3 & pos, TMatrixF & mat) const {};
80  virtual void GetGlobal(const AliRecPoint * p, TVector3 & pos) const {};
81  virtual Bool_t Impact(const TParticle * particle) const {return kFALSE;};
82  void Build();
83 
85  Int_t GetObjectType(UInt_t uniqueID) const {return ((uniqueID>>14)&0x7);};
87  Int_t GetHalfMFTID(UInt_t uniqueID) const {return ((uniqueID>>13)&0x1);};
89  Int_t GetHalfDiskID(UInt_t uniqueID) const {return ((uniqueID>>10)&0x7);};
91  Int_t GetLadderID(UInt_t uniqueID) const {return ((uniqueID>>4)&0x3F);};
93  Int_t GetSensorID(UInt_t uniqueID) const {return (uniqueID&0xF);};
94 
95  UInt_t GetObjectID(ObjectTypes type, Int_t half=0, Int_t disk=0, Int_t ladder=0, Int_t chip=0) const;
96 
98  Int_t GetSensorVolumeID() const {return fSensorVolumeId;};
100  void SetSensorVolumeID(Int_t val) { fSensorVolumeId= val;};
101 
104 
105  Bool_t Hit2PixelID(Double_t xHit, Double_t yHit, Double_t zHit, Int_t detElemID, Int_t &xPixel, Int_t &yPixel) const;
106  void GetPixelCenter(Int_t xPixel, Int_t yPixel, Int_t detElemID, Double_t &xCenter, Double_t &yCenter, Double_t &zCenter ) const ;
107  Int_t GetDiskNSensors(Int_t diskId) const;
108  Int_t GetDetElemLocalID(Int_t detElem) const;
109 
110  void LoadSegmentation();
111 
112 
113 private:
114 
116  AliMFTGeometry();
117  AliMFTGeometry(const char* name);
118 
122 
124  ClassDef(AliMFTGeometry, 1);
126 
127 };
128 
129 
130 #endif
131 
static const Double_t kHoleShift1
static const Double_t kGlueEdge
Bool_t Hit2PixelID(Double_t xHit, Double_t yHit, Double_t zHit, Int_t detElemID, Int_t &xPixel, Int_t &yPixel) const
Returns the pixel ID corresponding to a hit at (x,y,z) in the ALICE global frame. ...
AliMFTSegmentation * fSegmentation
Segmentation of the detector.
static const Double_t kXPixelPitch
Pixel pitch along X.
AliMFTGeometryBuilder * fBuilder
Geometry Builder.
void LoadSegmentation()
Creates the virtual Segmentation from the XML file /ITSMFT/MFT/data/AliMFTGeometry.xml.
Int_t GetObjectType(UInt_t uniqueID) const
Returns Object type based on Unique ID provided.
virtual Bool_t Impact(const TParticle *particle) const
static const Double_t kConnectorOffset
static const Double_t fHeightActive
height of the active elements
static const Int_t kNPixelY
Number of Pixel along Y.
static const Double_t kSensorActiveWidth
CMOS Sensor Active width.
Int_t GetLadderID(UInt_t uniqueID) const
Returns Ladder ID based on Unique ID provided.
static const Int_t kNDisks
Number of Disk.
static const Double_t kLadderOffsetToEnd
Offset of sensor compare to ladder connector edge.
static const Double_t kRadiusHole2
static const Double_t kKaptonThickness
static const Double_t kShiftDDGNDline
static const Double_t kSensorLength
CMOS Sensor Length.
TMatrixD mat
Definition: AnalyzeLaser.C:9
static const Double_t kAluThickness
static const Double_t kEpsilon
Int_t fSensorVolumeId
ID of the volume describing the CMOS Sensor.
static const Double_t kSensorInterspace
Interspace between 2 sensors on a ladder.
static const Double_t kRadiusHole1
UInt_t GetObjectID(ObjectTypes type, Int_t half=0, Int_t disk=0, Int_t ladder=0, Int_t chip=0) const
Returns the object Unique ID.
AliMFTSegmentation * GetSegmentation() const
Returns pointer to the segmentation.
static const Double_t kLineWidth
void GetPixelCenter(Int_t xPixel, Int_t yPixel, Int_t detElemID, Double_t &xCenter, Double_t &yCenter, Double_t &zCenter) const
Returns the center of the pixel position in the ALICE global frame.
void Build()
Builf both the Virtual segmentation and the real volumes Real part is delegates to AliMFTGeometryBuil...
static const Double_t kSensorSideOffset
Offset of sensor compare to ladder edge (close to the beam pipe)
static const Double_t kSensorActiveHeight
CMOS Sensor Active height.
virtual void GetGlobal(const AliRecPoint *p, TVector3 &pos) const
Int_t GetSensorID(UInt_t uniqueID) const
Returns Sensor ID based on Unique ID provided.
static const Double_t kSensorTopOffset
Offset of sensor compare to ladder top edge.
static AliMFTGeometry * Instance()
Retuns MFT Geometry singleton object.
static const Double_t kConnectorThickness
virtual void GetGlobal(const AliRecPoint *p, TVector3 &pos, TMatrixF &mat) const
static const Double_t kCapacitorDx
static const Double_t kConnectorLength
virtual ~AliMFTGeometry()
static const Double_t kCapacitorDz
Class for the virtual segmentation of the ALICE Muon Forward Tracker.
static const Double_t kSensorMargin
Inactive margin around active area.
static const Double_t kFlexThickness
Flex Thickness.
static const Double_t fHeightReadout
height of the readout elements attached to the active ones
static const Double_t kCapacitorDy
static const Double_t kSensorHeight
CMOS Sensor Height.
static const Double_t kSensorThickness
CMOS Sensor Thickness.
Int_t GetDiskNSensors(Int_t diskId) const
Returns the number of sensors on the entire disk (top+bottom)
AliMFTGeometry()
Constructor.
static const Double_t kYPixelPitch
Pixel pitch along Y.
static const Double_t kConnectorHeight
static const Double_t kGlueThickness
void SetSensorVolumeID(Int_t val)
Set the TGeo ID of the volume describing the sensors.
Int_t GetHalfMFTID(UInt_t uniqueID) const
Returns Half-MFT ID based on Unique ID provided.
static const Int_t kNPixelX
Number of Pixel along X.
Int_t GetHalfDiskID(UInt_t uniqueID) const
Returns Half-Disk ID based on Unique ID provided.
static AliMFTGeometry * fgInstance
Singleton instance.
static const Double_t kFlexHeight
Flex Height.
Class describing MFT Geometry Builder.
static const Double_t kShiftline
static const Double_t kConnectorWidth
static const Double_t kClearance
Int_t GetDetElemLocalID(Int_t detElem) const
Returns the local ID of the sensor on the disk.
static const Double_t kHoleShift2
Class Handling both Virutal Segmentation and Real Volumes.
Int_t GetSensorVolumeID() const
Returns TGeo ID of the volume describing the sensors.
static const Double_t kVarnishThickness