781551b7cd524616a232b7270ff11275390a6016
[u/mrichter/AliRoot.git] / ITS / AliITSvSDD03.h
1 #ifndef ALIITSVSDD03_H
2 #define ALIITSVSDD03_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 // ITS step manager and geometry class for the ITS SDD test beam geometry
9 // of Summer 2003 and later.
10 // At present, the geometry and materials need to be checked against the
11 // proper geometry of the 2003 test beam. In addition, because the SSD
12 // used in the test beam are single sided, the second side needs be ignored.
13 // This can cause some problems with the SSD reconstruction code.
14
15 #include "AliITS.h"
16
17 class AliITSvSDD03 : public AliITS{
18  public:
19     AliITSvSDD03(); // default constructor
20     AliITSvSDD03(const char *title,Int_t year); // standard constructor
21     AliITSvSDD03(const AliITSvSDD03 &source); // Copy constructor
22     AliITSvSDD03& operator=(const AliITSvSDD03 &source); // = operator
23     virtual ~AliITSvSDD03(); // destructor
24     virtual void   BuildGeometry();
25     virtual void   CreateGeometry();
26     virtual void   CreateMaterials();
27     virtual Int_t  IsVersion() const {// returns the ITS version number 
28                                       return 1;} 
29     virtual void   Init(); 
30     virtual void   SetDefaults();
31     virtual void   DrawModule() const;
32     virtual void   StepManager(); 
33     virtual void   SetWriteDet(Bool_t det=kTRUE){ // set .det write
34                                                  fGeomDetOut = det;}
35     virtual void   SetWriteDet(const char *f){ // set write file
36                                      strncpy(fWrite,f,60);fGeomDetOut = kTRUE;}
37     virtual void   SetReadDet(Bool_t det=kTRUE){ //set .det read
38                                                 fGeomDetIn = det;}
39     virtual void   SetReadDet(const char *f){ // set read file
40                                        strncpy(fRead,f,60);fGeomDetIn = kTRUE;}
41     virtual void   SetEUCLID(Bool_t euclid=kTRUE){ // set write Euclid file
42                                                   fEuclidOut = euclid;}
43     virtual void   SetEUCLIDFileName(const char *f){ // set write file
44                              fEuclidGeometry=f;fEuclidOut = kTRUE;}
45     virtual void   SetMinorVersion(Int_t v=22){ // Choose between existing minor versions
46         fMinorVersion = v;} 
47     virtual void   SetThicknessDet1(Float_t v=300.){
48          // Set detector thickness in layer 1
49          fDet1 = v;}
50     virtual void   SetThicknessDet2(Float_t v=300.){
51          // Set detector thickness in layer 2
52          fDet2 = v;}
53     virtual void   SetThicknessChip1(Float_t v=300.){
54          // Set chip thickness in layer 1
55          fChip1 = v;}
56     virtual void   SetThicknessChip2(Float_t v=300.){
57          // Set chip thickness in layer 2
58          fChip2 = v;}
59     // Replacement default simulation initilization.
60     virtual void SetDefaultSimulation();
61     // Decodes the id and copy nuber to give the layer, ladder, and detector 
62     // numbers . Returns the module number.
63     virtual Int_t DecodeDetector(Int_t id,Int_t cpy,Int_t &lay,
64                                  Int_t &lad,Int_t &det) const;
65          //
66  private:  
67     void InitAliITSgeom();
68     Bool_t fGeomDetOut;       // Flag to write .det file out
69     Bool_t fGeomDetIn;        // Flag to read .det file or directly from Geat.
70     Int_t  fMajorVersion;     // Major version number == IsVersion
71     Int_t  fMinorVersion;     // Minor version number 
72     char   fEuclidGeomDet[60];// file where detector transormation are define.
73     char   fRead[60];         //! file name to read .det file
74     char   fWrite[60];        //! file name to write .det file 
75     Float_t  fDet1;           // thickness of detector in SDD layer 1
76     Float_t  fDet2;           // thickness of detector in SDD layer 2
77     Float_t  fChip1;          // thickness of chip in SDD layer 1
78     Float_t  fChip2;          // thickness of chip in SDD layer 2 
79     Int_t fIDMother;          //! ITS Mother Volume id.
80     Int_t fYear;              // Year flag to select different geometries.
81
82     ClassDef(AliITSvSDD03,1) // Hits manager and geometry for SDD testbeam
83 };
84 #endif