1 #ifndef ALIITSVPPRASYMMFMD_H
2 #define ALIITSVPPRASYMMFMD_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 /////////////////////////////////////////////////////////
9 // Manager and hits classes for set: ITS version 10 //
10 /////////////////////////////////////////////////////////
13 #include "AliITSInitGeometry.h"
15 class AliITSvPPRasymmFMD : public AliITS {
19 AliITSvPPRasymmFMD(const Char_t *title); // Standard Constructor
20 // Extended Standard constructor
21 AliITSvPPRasymmFMD(const char *name, const char *title);
22 virtual ~AliITSvPPRasymmFMD() ;
23 virtual void CreateGeometry();
24 virtual void CreateMaterials();
25 virtual Int_t IsVersion() const {// returns the ITS version number
28 virtual void SetDefaults();
29 virtual void DrawModule() const;
30 virtual void StepManager();
31 virtual void AddAlignableVolumes() const;
32 virtual void SetMinorVersion(Int_t v=2){ // Choose between existing minor versions
34 virtual void SetThicknessDet1(Float_t v=200.){
35 // Set detector thickness in layer 1
37 virtual void SetThicknessDet2(Float_t v=200.){
38 // Set detector thickness in layer 2
40 virtual void SetThicknessChip1(Float_t v=150.){
41 // Set chip thickness in layer 1
43 virtual void SetThicknessChip2(Float_t v=150.){
44 // Set chip thickness in layer 2
46 virtual void SetRails(Int_t v=0){
49 virtual void SetCoolingFluid(Int_t v=1){
50 // Set flag for cooling fluid
52 virtual void SetDensityServicesByThickness(){// uses services density
53 // calculation based on the thickness of the services.
55 virtual void SetDensityServicesByMass(){// uses services density
56 // calculation based on the Mass of the services.
58 virtual Int_t GetMajorVersion() const {// return Major Version Number
59 return fMajorVersion;}
60 virtual Int_t GetMinorVersion() const {// return Major Version Number
61 return fMinorVersion;}
62 virtual Float_t GetThicknessDet1() const {
63 // Get detector thickness in layer 1
65 virtual Float_t GetThicknessDet2() const {
66 // Get detector thickness in layer 2
68 virtual Float_t GetThicknessChip1() const {
69 // Get chip thickness in layer 1
71 virtual Float_t GetThicknessChip2()const {
72 // Get chip thickness in layer 2
74 virtual Int_t GetRails() const {
77 virtual Int_t GetCoolingFluid() const{
78 // Get flag for cooling fluid
81 // Print class in ascii form to stream
82 virtual void PrintAscii(ostream *os)const;
83 // Read in class in ascii form from stream
84 virtual void ReadAscii(istream *is);
87 // copy constructor. Will not copy class, just gives warning.
88 AliITSvPPRasymmFMD(const AliITSvPPRasymmFMD &source);
89 // assignment operator. Will not copy class, just gives warning.
90 AliITSvPPRasymmFMD& operator=(const AliITSvPPRasymmFMD &source);
91 void InitAliITSgeom();
92 Bool_t IsDensityServicesByThickness()const {return fByThick;}
93 // Return Mother volume ID
94 Int_t GetMotherID()const {return fIDMother;}
95 // Return AliITSInitGeometry object
96 const AliITSInitGeometry & GetGeomInit()const{return fIgm;}
98 Bool_t fByThick; // Flag to use services materials by thickness
99 // ture, or mass false.
100 Int_t fMajorVersion; // Major version number == IsVersion
101 Int_t fMinorVersion; // Minor version number
102 Float_t fDet1; // thickness of detector in SPD layer 1
103 Float_t fDet2; // thickness of detector in SPD layer 2
104 Float_t fChip1; // thickness of chip in SPD layer 1
105 Float_t fChip2; // thickness of chip in SPD layer 2
106 Int_t fRails; // flag to switch rails on (=1) and off (=0)
107 Int_t fFluid; // flag to switch between water (=1) and freon (=0)
108 Int_t fIDMother; //! ITS Mother Volume id.
109 AliITSInitGeometry fIgm;//! Get access to decoding and AliITSgeom init functins
111 ClassDef(AliITSvPPRasymmFMD,5) //Hits manager for set:ITS version 10
112 // PPR detailed Geometry asymmetric
114 // Input and output function for standard C++ input/output.
115 ostream &operator<<(ostream &os,const AliITSvPPRasymmFMD &s);
116 istream &operator>>(istream &is,AliITSvPPRasymmFMD &s);