]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSvPPRasymmFMD.h
- Protection added for null or empty input chains
[u/mrichter/AliRoot.git] / ITS / AliITSvPPRasymmFMD.h
CommitLineData
6b2a1732 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"
012f0f4c 13#include "AliITSInitGeometry.h"
14
6b2a1732 15class AliITSvPPRasymmFMD : public AliITS {
16
17 public:
18 AliITSvPPRasymmFMD();
012f0f4c 19 AliITSvPPRasymmFMD(const Char_t *title); // Standard Constructor
20 // Extended Standard constructor
6b2a1732 21 AliITSvPPRasymmFMD(const char *name, const char *title);
6b2a1732 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();
41b19549 30 virtual void DrawModule() const;
6b2a1732 31 virtual void StepManager();
ed9289c8 32 virtual void AddAlignableVolumes() const;
012f0f4c 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();}
d2a27428 44 virtual void SetMinorVersion(Int_t v=2){ // Choose between existing minor versions
6b2a1732 45 fMinorVersion = v;}
d2a27428 46 virtual void SetThicknessDet1(Float_t v=200.){
6b2a1732 47 // Set detector thickness in layer 1
48 fDet1 = v;}
d2a27428 49 virtual void SetThicknessDet2(Float_t v=200.){
6b2a1732 50 // Set detector thickness in layer 2
51 fDet2 = v;}
dc3ff20e 52 virtual void SetThicknessChip1(Float_t v=150.){
6b2a1732 53 // Set chip thickness in layer 1
54 fChip1 = v;}
dc3ff20e 55 virtual void SetThicknessChip2(Float_t v=150.){
6b2a1732 56 // Set chip thickness in layer 2
57 fChip2 = v;}
d2a27428 58 virtual void SetRails(Int_t v=0){
6b2a1732 59 // Set flag for rails
60 fRails = v;}
87577a03 61 virtual void SetCoolingFluid(Int_t v=1){
6b2a1732 62 // Set flag for cooling fluid
87577a03 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;}
012f0f4c 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();}
41b19549 82 virtual Int_t GetMajorVersion() const {// return Major Version Number
6b2a1732 83 return fMajorVersion;}
41b19549 84 virtual Int_t GetMinorVersion() const {// return Major Version Number
6b2a1732 85 return fMinorVersion;}
41b19549 86 virtual Float_t GetThicknessDet1() const {
6b2a1732 87 // Get detector thickness in layer 1
88 return fDet1;}
41b19549 89 virtual Float_t GetThicknessDet2() const {
6b2a1732 90 // Get detector thickness in layer 2
91 return fDet2;}
41b19549 92 virtual Float_t GetThicknessChip1() const {
6b2a1732 93 // Get chip thickness in layer 1
94 return fChip1;}
41b19549 95 virtual Float_t GetThicknessChip2()const {
6b2a1732 96 // Get chip thickness in layer 2
97 return fChip2;}
41b19549 98 virtual Int_t GetRails() const {
6b2a1732 99 // Get flag for rails
87577a03 100 return fRails;}
41b19549 101 virtual Int_t GetCoolingFluid() const{
6b2a1732 102 // Get flag for cooling fluid
87577a03 103 return fFluid;}
012f0f4c 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);
87577a03 109
6b2a1732 110 private:
012f0f4c 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);
6b2a1732 115 void InitAliITSgeom();
012f0f4c 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;}
6b2a1732 123
124 // TString fEuclidGeomtery,fEuclidMaterial defined in AliModule.
012f0f4c 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
6b2a1732 142
012f0f4c 143 ClassDef(AliITSvPPRasymmFMD,4) //Hits manager for set:ITS version 10
144 // PPR detailed Geometry asymmetric
6b2a1732 145};
012f0f4c 146// Input and output function for standard C++ input/output.
147ostream &operator<<(ostream &os,const AliITSvPPRasymmFMD &s);
148istream &operator>>(istream &is,AliITSvPPRasymmFMD &s);
149
6b2a1732 150#endif