]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSvPPRasymmFMD.h
Changes to have an option for storing like-sign V0s in the ESD
[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   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();
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
33         fMinorVersion = v;}
34     virtual void   SetThicknessDet1(Float_t v=200.){ 
35          // Set detector thickness in layer 1
36          fDet1 = v;}
37     virtual void   SetThicknessDet2(Float_t v=200.){ 
38          // Set detector thickness in layer 2
39          fDet2 = v;}
40     virtual void   SetThicknessChip1(Float_t v=150.){ 
41          // Set chip thickness in layer 1
42          fChip1 = v;}            
43     virtual void   SetThicknessChip2(Float_t v=150.){ 
44          // Set chip thickness in layer 2
45          fChip2 = v;}
46     virtual void   SetRails(Int_t v=0){ 
47          // Set flag for rails
48          fRails = v;}    
49     virtual void   SetCoolingFluid(Int_t v=1){
50          // Set flag for cooling fluid
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;}
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
64          return fDet1;}
65     virtual Float_t GetThicknessDet2() const { 
66          // Get detector thickness in layer 2
67          return fDet2;}
68     virtual Float_t GetThicknessChip1() const { 
69          // Get chip thickness in layer 1
70          return fChip1;}                 
71     virtual Float_t GetThicknessChip2()const { 
72          // Get chip thickness in layer 2
73          return fChip2;}
74     virtual Int_t GetRails() const {
75          // Get flag for rails
76          return fRails;}
77     virtual Int_t GetCoolingFluid() const{ 
78          // Get flag for cooling fluid
79          return fFluid;}
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);
85
86  private:
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;}
97
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
110
111     ClassDef(AliITSvPPRasymmFMD,5) //Hits manager for set:ITS version 10
112                                    // PPR detailed Geometry asymmetric
113 };
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);
117
118 #endif