AliPHOSGeometry() {
// default ctor
// must be kept public for root persistency purposes, but should never be called by the outside world
+ fPHOSAngle = 0 ;
+
} ;
AliPHOSGeometry(const AliPHOSGeometry & geom) {
// cpy ctor requested by Coding Convention
}
virtual ~AliPHOSGeometry(void) ;
- static AliPHOSGeometry * GetInstance(const Text_t* name, const Text_t* title) ;
+ static AliPHOSGeometry * GetInstance(const Text_t* name, const Text_t* title="") ;
static AliPHOSGeometry * GetInstance() ;
virtual void GetGlobal(const AliRecPoint* RecPoint, TVector3 & gpos, TMatrix & gmat) ;
virtual void GetGlobal(const AliRecPoint* RecPoint, TVector3 & gpos) ;
assert(0==1) ;
return *(GetInstance()) ;
}
- static TString fgDegre ; // a global for degree (deg)
- static TString fgRadian ; // a global for radian (rad)
-
+
// General
+ static TString Degre(void) {
+ // a global for degree (deg)
+ return TString("deg") ;
+ }
+
+ static TString Radian(void) {
+ // a global for radian (rad)
+ return TString("rad") ;
+ }
+
Bool_t AbsToRelNumbering(const Int_t AbsId, Int_t * RelId) ; // converts the absolute PHOS numbering to a relative
- void EmcModuleCoverage(const Int_t m, Double_t & tm, Double_t & tM, Double_t & pm, Double_t & pM, Option_t * opt = fgRadian);
+ void EmcModuleCoverage(const Int_t m, Double_t & tm, Double_t & tM, Double_t & pm, Double_t & pM, Option_t * opt = Radian() );
// calculates the angular coverage in theta and phi of a EMC module
- void EmcXtalCoverage(Double_t & theta, Double_t & phi, Option_t * opt = fgRadian) ;
+ void EmcXtalCoverage(Double_t & theta, Double_t & phi, Option_t * opt = Radian() ) ;
// calculates the angular coverage in theta and phi of a
// single crystal in a EMC module
+
void ImpactOnEmc(const Double_t theta, const Double_t phi, Int_t & ModuleNumber, Double_t & x, Double_t & z) ;
- // calculates the impact coordinates of a neutral particle
- // emitted in direction theta and phi in ALICE
+ // calculates the impact coordinates of a neutral particle
+ // emitted in direction theta and phi in ALICE
+
void RelPosInModule(const Int_t * RelId, Float_t & y, Float_t & z) ; // gets the position of element (pad or Xtal) relative to
// center of PHOS module
void RelPosInAlice(const Int_t AbsId, TVector3 & pos) ; // gets the position of element (pad or Xtal) relative to
Bool_t IsInitialized(void) const {
//
- return fInit ; }
+ return fgInit ; }
Float_t GetAirFilledBoxSize(Int_t index) const {
// Getter
return fAirFilledBoxSize[index] ;}
protected:
- AliPHOSGeometry(const Text_t* name, const Text_t* title) : AliGeometry(name, title) {
+ AliPHOSGeometry(const Text_t* name, const Text_t* title="") : AliGeometry(name, title) {
// ctor only for internal usage (singleton)
Init() ;
}
Float_t fCrystalWrapThickness ; // Thickness of Tyvek wrapping the crystal
Float_t fCrystalHolderThickness ; // Titanium holder of the crystal
Float_t fGapBetweenCrystals ; // Total Gap between two adjacent crystals
- Bool_t fInit ; // Tells if geometry has been succesfully set up
Float_t fIPtoOuterCoverDistance ; // Distances from interaction point to outer cover
Float_t fIPtoCrystalSurface ; // Distances from interaction point to Xtal surface
Float_t fModuleBoxThickness ; // Thickness of the thermo insulating box containing one crystals module
Float_t fZDisplacement ; // Z displacement of micromegas1 with respect to micromegas2
static AliPHOSGeometry * fgGeom ; // pointer to the unique instance of the singleton
+ static Bool_t fgInit ; // Tells if geometry has been succesfully set up
ClassDef(AliPHOSGeometry,1) // PHOS geometry class