*
* See cxx source for full Copyright notice
*/
+// Builder of FMD geometry.
+// This class takes care of actually building the geometry using the
+// TGeo classes. Various parameters are fecthed from the
+// AliFMDGeometry manager.
+/** @file AliFMDGeometryBuilder.h
+ @author Christian Holm Christensen <cholm@nbi.dk>
+ @date Mon Mar 27 12:41:17 2006
+ @brief Class to build the FMD geometry
+*/
#ifndef ROOT_TTask
# include <TTask.h>
#endif
class AliFMD3;
//____________________________________________________________________
+/** @class AliFMDGeometryBuilder
+ @brief Builder of FMD geometry.
+ This class takes care of actually building the geometry using the
+ @b TGeo classes. Various parameters are fecthed from the
+ AliFMDGeometry manager.
+ @ingroup FMD_sim
+ */
class AliFMDGeometryBuilder : public TTask
{
public:
- AliFMDGeometryBuilder();
/** CTOR */
+ AliFMDGeometryBuilder();
+ /** CTOR
+ @param detailed Whether to make a detailed geometry. */
AliFMDGeometryBuilder(Bool_t detailed);
virtual ~AliFMDGeometryBuilder() {}
/** Register */
/** @return Detector offfset in the volume tree */
Int_t GetDetectorOff() const { return fDetectorOff; }
protected:
+ /** Copy CTOR */
+ AliFMDGeometryBuilder(const AliFMDGeometryBuilder& o) : TTask(o) {}
+ /** Assignment operator */
+ AliFMDGeometryBuilder& operator=(const AliFMDGeometryBuilder&){return *this;}
/** Make a ring volume
@param r Ring geometry
@return Ring volume */
virtual TGeoVolume* RingGeometry(AliFMDRing* r);
/** Make a detector volume
@param d Detector geometry
- @param mother Mother volume (detector volume)
+ @param motherTop Mother volume (detector volume)
+ @param motherBot Mother volume (detector volume)
@param zmother Z position of mother
- @param inner Inner ring volume
- @param outer Outer ring volume
+ @param innerTop Inner ring volume
+ @param innerBot Inner ring volume
+ @param outerTop Outer ring volume
+ @param outerBot Outer ring volume
@return Detector volume */
virtual TGeoVolume* DetectorGeometry(AliFMDDetector* d,
- TGeoVolume* mother,
- Double_t zmother,
- TGeoVolume* inner,
- TGeoVolume* outer=0);
+ TGeoVolume* motherTop,
+ TGeoVolume* motherBot,
+ Double_t zmother,
+ TGeoVolume* innerTop,
+ TGeoVolume* innerBot,
+ TGeoVolume* outerTop=0,
+ TGeoVolume* outerBot=0);
/** Make FMD1 volume
@param d Detector geometry
- @param inner Inner ring volume
+ @param innerTop Inner ring volume
+ @param innerBot Inner ring volume
@return FMD1 volume */
- virtual TGeoVolume* FMD1Geometry(AliFMD1* d, TGeoVolume* inner);
+ virtual TGeoVolume* FMD1Geometry(AliFMD1* d,
+ TGeoVolume* innerTop,
+ TGeoVolume* innerBot);
/** Make FMD2 volume
@param d Detector geometry
- @param inner Inner ring volume
- @param outer Outer ring volume
+ @param innerTop Inner ring volume
+ @param innerBot Inner ring volume
+ @param outerTop Outer ring volume
+ @param outerBot Outer ring volume
@return FMD2 volume */
- virtual TGeoVolume* FMD2Geometry(AliFMD2* d, TGeoVolume* inner,
- TGeoVolume* outer);
+ virtual TGeoVolume* FMD2Geometry(AliFMD2* d,
+ TGeoVolume* innerTop,
+ TGeoVolume* innerBot,
+ TGeoVolume* outerTop,
+ TGeoVolume* outerBot);
/** Make FMD3 volume
@param d Detector geometry
- @param inner Inner ring volume
- @param outer Outer ring volume
+ @param innerTop Inner ring volume
+ @param innerBot Inner ring volume
+ @param outerTop Outer ring volume
+ @param outerBot Outer ring volume
@return FMD3 volume */
- virtual TGeoVolume* FMD3Geometry(AliFMD3* d, TGeoVolume* inner,
- TGeoVolume* outer);
+ virtual TGeoVolume* FMD3Geometry(AliFMD3* d,
+ TGeoVolume* innerTop,
+ TGeoVolume* innerBot,
+ TGeoVolume* outerTop,
+ TGeoVolume* outerBot);
TArrayI fActiveId; //! Active volume ID's
static const Char_t* fgkActiveName; // Name of Active volumes
static const Char_t* fgkSectorName; // Name of Sector volumes
static const Char_t* fgkStripName; // Name of Strip volumes
- static const Char_t* fgkModuleName; // Name of Module volumes
+ static const Char_t* fgkSensorName; // Name of Sensor volumes
static const Char_t* fgkPCBName; // Name of PCB volumes
+ static const Char_t* fgkCuName; // Name of copper volumes
+ static const Char_t* fgkChipName; // Name of chip volumes
static const Char_t* fgkLongLegName; // Name of LongLeg volumes
static const Char_t* fgkShortLegName; // Name of ShortLeg volumes
static const Char_t* fgkFrontVName; // Name of Front volumes
static const Char_t* fgkBackVName; // Name of Back volumes
- static const Char_t* fgkRingName; // Name of Ring volumes
- static const Char_t* fgkTopHCName; // Name of TopHC volumes
- static const Char_t* fgkBotHCName; // Name of BotHC volumes
- static const Char_t* fgkTopIHCName; // Name of TopIHC volumes
- static const Char_t* fgkBotIHCName; // Name of BotIHC volumes
+ static const Char_t* fgkRingTopName; // Name of Top ring volumes
+ static const Char_t* fgkRingBotName; // Name of Bottom ring volumes
+ static const Char_t* fgkHCName; // Name of Honeycomb volumes
+ static const Char_t* fgkIHCName; // Name of Inner honeycomb volumes
static const Char_t* fgkNoseName; // Name of Nose volumes
static const Char_t* fgkBackName; // Name of Back volumes
static const Char_t* fgkBeamName; // Name of Beam volumes
static const Char_t* fgkFlangeName; // Name of Flange volumes
+ static const Char_t* fgkFMDName; // Name of Half FMD volumes
ClassDef(AliFMDGeometryBuilder,1)
};