Adding some further mother volumes to speed-up the overlap checking and particle...
[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() ;
6b2a1732 23 virtual void CreateGeometry();
24 virtual void CreateMaterials();
25 virtual Int_t IsVersion() const {// returns the ITS version number
26 return 10;}
27 virtual void Init();
28 virtual void SetDefaults();
41b19549 29 virtual void DrawModule() const;
6b2a1732 30 virtual void StepManager();
ed9289c8 31 virtual void AddAlignableVolumes() const;
d2a27428 32 virtual void SetMinorVersion(Int_t v=2){ // Choose between existing minor versions
6b2a1732 33 fMinorVersion = v;}
d2a27428 34 virtual void SetThicknessDet1(Float_t v=200.){
6b2a1732 35 // Set detector thickness in layer 1
36 fDet1 = v;}
d2a27428 37 virtual void SetThicknessDet2(Float_t v=200.){
6b2a1732 38 // Set detector thickness in layer 2
39 fDet2 = v;}
dc3ff20e 40 virtual void SetThicknessChip1(Float_t v=150.){
6b2a1732 41 // Set chip thickness in layer 1
42 fChip1 = v;}
dc3ff20e 43 virtual void SetThicknessChip2(Float_t v=150.){
6b2a1732 44 // Set chip thickness in layer 2
45 fChip2 = v;}
d2a27428 46 virtual void SetRails(Int_t v=0){
6b2a1732 47 // Set flag for rails
48 fRails = v;}
87577a03 49 virtual void SetCoolingFluid(Int_t v=1){
6b2a1732 50 // Set flag for cooling fluid
87577a03 51 fFluid = v;}
52 virtual void SetDensityServicesByThickness(){// uses services density
53 // calculation based on the thickness of the services.
54 fByThick = kTRUE;}
55 virtual void SetDensityServicesByMass(){// uses services density
56 // calculation based on the Mass of the services.
57 fByThick = kFALSE;}
41b19549 58 virtual Int_t GetMajorVersion() const {// return Major Version Number
6b2a1732 59 return fMajorVersion;}
41b19549 60 virtual Int_t GetMinorVersion() const {// return Major Version Number
6b2a1732 61 return fMinorVersion;}
41b19549 62 virtual Float_t GetThicknessDet1() const {
6b2a1732 63 // Get detector thickness in layer 1
64 return fDet1;}
41b19549 65 virtual Float_t GetThicknessDet2() const {
6b2a1732 66 // Get detector thickness in layer 2
67 return fDet2;}
41b19549 68 virtual Float_t GetThicknessChip1() const {
6b2a1732 69 // Get chip thickness in layer 1
70 return fChip1;}
41b19549 71 virtual Float_t GetThicknessChip2()const {
6b2a1732 72 // Get chip thickness in layer 2
73 return fChip2;}
41b19549 74 virtual Int_t GetRails() const {
6b2a1732 75 // Get flag for rails
87577a03 76 return fRails;}
41b19549 77 virtual Int_t GetCoolingFluid() const{
6b2a1732 78 // Get flag for cooling fluid
87577a03 79 return fFluid;}
012f0f4c 80 //
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);
87577a03 85
6b2a1732 86 private:
012f0f4c 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);
6b2a1732 91 void InitAliITSgeom();
012f0f4c 92 Bool_t IsDensityServicesByThickness()const {return fByThick;}
012f0f4c 93 // Return Mother volume ID
94 Int_t GetMotherID()const {return fIDMother;}
95 // Return AliITSInitGeometry object
96 const AliITSInitGeometry & GetGeomInit()const{return fIgm;}
6b2a1732 97
012f0f4c 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
012f0f4c 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
6b2a1732 110
7dd2cbe4 111 ClassDef(AliITSvPPRasymmFMD,5) //Hits manager for set:ITS version 10
012f0f4c 112 // PPR detailed Geometry asymmetric
6b2a1732 113};
012f0f4c 114// Input and output function for standard C++ input/output.
115ostream &operator<<(ostream &os,const AliITSvPPRasymmFMD &s);
116istream &operator>>(istream &is,AliITSvPPRasymmFMD &s);
117
6b2a1732 118#endif