X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSv11Hybrid.h;h=d529d42adfa8aac074cfbb28e8cbb38afc8d44f8;hb=b536a002503c87c13ea3f4dad74e73066b559ea2;hp=bef9dc611a9b060ceddce8c8e90e7555440b7be0;hpb=333c948ab26c3f2f94546a0b3776cda98c111d02;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSv11Hybrid.h b/ITS/AliITSv11Hybrid.h index bef9dc611a9..d529d42adfa 100644 --- a/ITS/AliITSv11Hybrid.h +++ b/ITS/AliITSv11Hybrid.h @@ -13,18 +13,45 @@ // Ludovic Gaudichet (gaudichet@to.infn.it) // //======================================================================== + + +// $Id$ + +// $Log$ +// Revision 1.7 2007/12/17 14:48:24 masera +// Thermal shield between SPD and SDD (M. Sitta) +// +// Revision 1.6 2007/10/21 19:22:53 masera +// Coding conventions +// +// Revision 1.5 2007/08/24 14:32:57 hristov +// Introduction of SPD half-stave volumes, cleaning and new code (in relation to new SPD geometry) in AliITSv11Hybrid (Ludovic) +// +// Revision 1.4 2007/06/28 10:17:25 masera +// Introduction of the new SSD geometry in simulation (AliITSv11Hybrid) and suppression of overlaps between old and new parts +// +// Revision 1.3 2007/05/08 16:57:42 masera +// Updates concerning the geometry: versioning system, new V11hybrid version, bug fixes (B.Nilsend and L. Gaudichet +// + #include "AliITS.h" +#include "AliITSInitGeometry.h" +class AliITSv11GeometrySPD; class AliITSv11GeometrySDD; +class AliITSv11GeometrySSD; +class AliITSv11GeometrySupport; +class TGeoVolume; +class TGeoVolumeAssembly; class AliITSv11Hybrid : public AliITS { public: AliITSv11Hybrid(); + AliITSv11Hybrid(const char *title); AliITSv11Hybrid(const char *name, const char *title); virtual ~AliITSv11Hybrid() ; - virtual void BuildGeometry(); virtual void CreateGeometry(); virtual void CreateMaterials(); virtual Int_t IsVersion() const {// returns the ITS version number @@ -34,16 +61,6 @@ class AliITSv11Hybrid : public AliITS { virtual void DrawModule() const; virtual void StepManager(); virtual void AddAlignableVolumes() const; - virtual void SetWriteDet(Bool_t det=kFALSE){ // set .det write - fGeomDetOut = det;} - virtual void SetWriteDet(const char *f){ // set write file - strncpy(fWrite,f,60);fGeomDetOut = kTRUE;} - virtual void SetReadDet(Bool_t det=kFALSE){ //set .det read - fGeomDetIn = det;} - virtual void SetReadDet(const char *f){ // set read file - strncpy(fRead,f,60);fGeomDetIn = kTRUE;} - virtual void SetEUCLIDFileName(const char *f){ // set write file - fEuclidGeometry=f; SetEUCLID();} virtual void SetMinorVersion(Int_t v=2){ // Choose between existing minor versions fMinorVersion = v;} virtual void SetThicknessDet1(Float_t v=200.){ @@ -70,16 +87,6 @@ class AliITSv11Hybrid : public AliITS { virtual void SetDensityServicesByMass(){// uses services density // calculation based on the Mass of the services. fByThick = kFALSE;} - virtual const char *GetEULIIDFileName() const{ // return .euc file name - return fEuclidGeometry.Data();} - virtual Bool_t GetWriteDet() const { // returns value GeomDetOut flag. - return fGeomDetOut;} - virtual Bool_t GetReadDet() const { // returns value GeomDetIn flag. - return fGeomDetIn;} - virtual char *GetReadDetFileName(){ // return .det read file name - if(fRead[0]!='\0') return fRead; else return fEuclidGeomDet;} - virtual char *GetWriteDetFileName(){ // return .det write file name - if(fWrite[0]!='\0') return fWrite; else return fEuclidGeomDet;} virtual Int_t GetMajorVersion() const {// return Major Version Number return fMajorVersion;} virtual Int_t GetMinorVersion() const {// return Major Version Number @@ -105,24 +112,32 @@ class AliITSv11Hybrid : public AliITS { protected: void CreateOldGeometry(); - void SetT2Lmatrix(const char *name, Double_t dAlpha, Double_t dxSign, - Double_t yShift, Bool_t yFlip, Bool_t yRot180=kFALSE) const; // Set T2L matrix in TGeoPNEntries + void SetT2Lmatrix(Int_t uid, Double_t yShift, + Bool_t yFlip, Bool_t yRot180=kFALSE) const; // Set T2L matrix in TGeoPNEntries + void CreateSPDThermalShield(TGeoVolume *moth); + TGeoVolumeAssembly *CreateSPDThermalShieldAssembly(const char *name, + Double_t innerA, Double_t innerB, Double_t innerRadius, + Double_t outerA, Double_t outerB, Double_t outerRadius, + Double_t halflength, Double_t thickness, + Double_t thicknessOmega, Double_t theta); + void SPDThermalShape(Double_t a, Double_t b, Double_t r, Double_t d, + Double_t t, Double_t *x, Double_t *y); + void SPDOmegaShape(Double_t ina, Double_t inb, Double_t inr, + Double_t oua, Double_t oub, Double_t our, + Double_t dou, Double_t d , Double_t t , + Double_t *x, Double_t *y); + void FillSPDXtruShape(Double_t a, Double_t b, Double_t r, + Double_t t, Double_t *x, Double_t *y); private: AliITSv11Hybrid(const AliITSv11Hybrid &source); // copy constructor AliITSv11Hybrid& operator=(const AliITSv11Hybrid &source); // assignment operator - void InitAliITSgeom(); + void InitAliITSgeom() const; - // TString fEuclidGeomtery,fEuclidMaterial defined in AliModule. - Bool_t fGeomDetOut; // Flag to write .det file out - Bool_t fGeomDetIn; // Flag to read .det file or directly from Geat. Bool_t fByThick; // Flag to use services materials by thickness // ture, or mass false. Int_t fMajorVersion; // Major version number == IsVersion Int_t fMinorVersion; // Minor version number - char fEuclidGeomDet[60];// file where detector transormation are define. - char fRead[60]; //! file name to read .det file - char fWrite[60]; //! file name to write .det file Float_t fDet1; // thickness of detector in SPD layer 1 Float_t fDet2; // thickness of detector in SPD layer 2 Float_t fChip1; // thickness of chip in SPD layer 1 @@ -131,9 +146,13 @@ class AliITSv11Hybrid : public AliITS { Int_t fFluid; // flag to switch between water (=1) and freon (=0) Int_t fIDMother; //! ITS Mother Volume id. - AliITSv11GeometrySDD *fSDDgeom; //! SDD Geometry + AliITSInitGeometry fInitGeom; //! Get access to decoding and AliITSgeom init functins + AliITSv11GeometrySPD *fSPDgeom; //! SPD Geometry + AliITSv11GeometrySDD *fSDDgeom; //! SDD Geometry + AliITSv11GeometrySSD *fSSDgeom; //! SSD Geometry + AliITSv11GeometrySupport *fSupgeom; //! Support Geometry - ClassDef(AliITSv11Hybrid,1) + ClassDef(AliITSv11Hybrid,0) }; #endif