]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSvPPRasymmFMD.h
Error messages stored in the global raw-reader error log (Cvetan, Chiara)
[u/mrichter/AliRoot.git] / ITS / AliITSvPPRasymmFMD.h
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                               */
5
6 /* $Id$ */
7
8 /////////////////////////////////////////////////////////
9 //  Manager and hits classes for set: ITS version 10   //
10 /////////////////////////////////////////////////////////
11  
12 #include "AliITS.h"
13 #include "AliITSInitGeometry.h"
14
15 class AliITSvPPRasymmFMD : public AliITS {
16
17  public:
18     AliITSvPPRasymmFMD();
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   BuildGeometry();
24     virtual void   CreateGeometry();
25     virtual void   CreateMaterials();
26     virtual Int_t  IsVersion() const {// returns the ITS version number 
27                                       return 10;} 
28     virtual void   Init(); 
29     virtual void   SetDefaults();
30     virtual void   DrawModule() const;
31     virtual void   StepManager();
32     virtual void   AddAlignableVolumes() const;
33     //set .det write
34     virtual void  SetWriteDet(Bool_t det=kFALSE){fGeomDetOut=det;}
35     // set write file
36     virtual void   SetWriteDet(const Char_t *f){fWrite=f;fGeomDetOut=kTRUE;}
37     //set .det read
38     virtual void   SetReadDet(Bool_t det=kFALSE){fGeomDetIn = det;}
39     // set read file
40     virtual void   SetReadDet(const Char_t *f){fRead=f;fGeomDetIn=kTRUE;}
41     // set write file
42     virtual void   SetEUCLIDFileName(const Char_t *f){fEuclidGeometry=f;
43                                                           SetEUCLID();}
44     virtual void   SetMinorVersion(Int_t v=2){ // Choose between existing minor versions
45         fMinorVersion = v;}
46     virtual void   SetThicknessDet1(Float_t v=200.){ 
47          // Set detector thickness in layer 1
48          fDet1 = v;}
49     virtual void   SetThicknessDet2(Float_t v=200.){ 
50          // Set detector thickness in layer 2
51          fDet2 = v;}
52     virtual void   SetThicknessChip1(Float_t v=150.){ 
53          // Set chip thickness in layer 1
54          fChip1 = v;}            
55     virtual void   SetThicknessChip2(Float_t v=150.){ 
56          // Set chip thickness in layer 2
57          fChip2 = v;}
58     virtual void   SetRails(Int_t v=0){ 
59          // Set flag for rails
60          fRails = v;}    
61     virtual void   SetCoolingFluid(Int_t v=1){
62          // Set flag for cooling fluid
63          fFluid = v;}
64     virtual void SetDensityServicesByThickness(){// uses services density
65         // calculation based on the thickness of the services.
66         fByThick = kTRUE;}
67     virtual void SetDensityServicesByMass(){// uses services density
68         // calculation based on the Mass of the services.
69         fByThick = kFALSE;}
70     virtual const Char_t *GetEULIIDFileName() const{ // return .euc file name
71         return fEuclidGeometry.Data();}
72     // returns value GeomDetOut flag.
73     virtual Bool_t GetWriteDet() const {return fGeomDetOut;}
74     // returns value GeomDetIn flag.
75     virtual Bool_t GetReadDet() const{return fGeomDetIn;} 
76     virtual const Char_t *GetReadDetFileName()const{//return .det read file name
77         if(fRead.IsNull()) return fRead.Data();
78         else return GetEULIIDFileName();}
79     virtual const Char_t *GetWriteDetFileName()const{//return .det write file name
80         if(fWrite.IsNull()) return fWrite.Data();
81         else return GetEULIIDFileName();}
82     virtual Int_t GetMajorVersion() const {// return Major Version Number
83         return fMajorVersion;}
84     virtual Int_t GetMinorVersion() const {// return Major Version Number
85         return fMinorVersion;}
86     virtual Float_t GetThicknessDet1() const { 
87          // Get detector thickness in layer 1
88          return fDet1;}
89     virtual Float_t GetThicknessDet2() const { 
90          // Get detector thickness in layer 2
91          return fDet2;}
92     virtual Float_t GetThicknessChip1() const { 
93          // Get chip thickness in layer 1
94          return fChip1;}                 
95     virtual Float_t GetThicknessChip2()const { 
96          // Get chip thickness in layer 2
97          return fChip2;}
98     virtual Int_t GetRails() const {
99          // Get flag for rails
100          return fRails;}
101     virtual Int_t GetCoolingFluid() const{ 
102          // Get flag for cooling fluid
103          return fFluid;}
104     //
105     // Print class in ascii form to stream
106     virtual void PrintAscii(ostream *os)const;
107     // Read in class in ascii form from stream
108     virtual void ReadAscii(istream *is);
109
110  private:
111     // copy constructor. Will not copy class, just gives warning.
112     AliITSvPPRasymmFMD(const AliITSvPPRasymmFMD &source);
113     // assignment operator. Will not copy class, just gives warning.
114     AliITSvPPRasymmFMD& operator=(const AliITSvPPRasymmFMD &source);
115     void InitAliITSgeom();
116     Bool_t IsDensityServicesByThickness()const {return fByThick;}
117     // returns Euclid file name with where Euclid geometry is kept.
118     const TString & GetEuclidFile()const{return fEuclidGeomDet;}
119     // Return Mother volume ID
120     Int_t GetMotherID()const {return fIDMother;}
121     // Return AliITSInitGeometry object
122     const AliITSInitGeometry & GetGeomInit()const{return fIgm;}
123
124     // TString fEuclidGeomtery,fEuclidMaterial defined in AliModule.
125     Bool_t  fGeomDetOut;    // Flag to write .det file out
126     Bool_t  fGeomDetIn;     // Flag to read .det file or directly from Geat.
127     Bool_t  fByThick;       // Flag to use services materials by thickness
128                             // ture, or mass false.
129     Int_t   fMajorVersion;  // Major version number == IsVersion
130     Int_t   fMinorVersion;  // Minor version number
131     TString fEuclidGeomDet; // file where detector transormation are define.
132     TString fRead;          //! file name to read .det file
133     TString fWrite;         //! file name to write .det file
134     Float_t fDet1;          // thickness of detector in SPD layer 1
135     Float_t fDet2;          // thickness of detector in SPD layer 2
136     Float_t fChip1;         // thickness of chip in SPD layer 1   
137     Float_t fChip2;         // thickness of chip in SPD layer 2   
138     Int_t   fRails;         // flag to switch rails on (=1) and off (=0)
139     Int_t   fFluid;         // flag to switch between water (=1) and freon (=0)
140     Int_t   fIDMother;      //! ITS Mother Volume id.
141     AliITSInitGeometry fIgm;//! Get access to decoding and AliITSgeom init functins
142
143     ClassDef(AliITSvPPRasymmFMD,4) //Hits manager for set:ITS version 10
144                                    // PPR detailed Geometry asymmetric
145 };
146 // Input and output function for standard C++ input/output.
147 ostream &operator<<(ostream &os,const AliITSvPPRasymmFMD &s);
148 istream &operator>>(istream &is,AliITSvPPRasymmFMD &s);
149
150 #endif