]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSInitGeometry.h
VertexerPPZ replaced by vertexerZ
[u/mrichter/AliRoot.git] / ITS / AliITSInitGeometry.h
1 #ifndef ALIITSINITGEOMETRY_H
2 #define ALIITSINITGEOMETRY_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /*
7 $Id$
8 */
9
10 ////////////////////////////////////////////////////////////////
11 // Class to inilize AliITSgeom and the like for both simulation
12 //  and reconstriction.
13 /////////////////////////////////////////////////////////////////////
14
15 #include <TObject.h>
16 #include <TString.h>
17
18
19 class AliITSgeom;
20 class TArrayD;
21 class TGeoHMatrix;
22
23 class AliITSInitGeometry : public TObject{
24  public:
25     AliITSInitGeometry(); // Default Creator
26     AliITSInitGeometry(const Char_t *name,Int_t minorversion);//Standard Creator
27     //virtual ~AliITSInitGeometry(); // Destructor
28     //
29     AliITSgeom* CreateAliITSgeom(); // Create and intilize geometry from TGeom
30     Bool_t InitAliITSgeom(AliITSgeom *geom);//Initilize goemetry from gGeoManager
31     // Getters and Setters
32     TString GetGeometryName()const {return fName;}// Return geometry name
33     void    SetGeometryName(const Char_t *name){fName = name;}// Set Geometry name
34     Int_t   GetMajorVersion()const {return fMajorVersion;} // Return geometry major version
35     void    SetMajorVersion(Int_t majorVersion){fMajorVersion = majorVersion;} // Set geometry major version
36     Int_t   GetMinorVersion()const{return fMinorVersion;}// Return geometry minor version
37     void    SetMinorVersion(Int_t minorVersion){fMinorVersion = minorVersion;}
38     Bool_t  GetTiming()const{return fTiming;} // return routine timing flag
39     void    SetTiming(Bool_t time=kTRUE){fTiming=time;}// Set routine timing (on)
40     Bool_t  GetSegGeom()const{return fSegGeom;} // return flag indecating the use of AliITSsegmentation or AliITSgeomS?D class in fShape.
41     void    SetSegGeom(Bool_t seg=kTRUE){fSegGeom = seg;}// Set the use of AliITSsegmentation class' instead of AliITSgeomS?D class in fShape
42     Bool_t  GetDecoding()const{return fDecode;}// Return flag indecating wether to use new/old decoding
43     void    SetDecoding(Bool_t newdec=kFALSE){fDecode = newdec;}// Set flag to use new/old decoding
44
45  private:
46     // Virtual MC code reproduction
47     Bool_t InitAliITSgeomPPRasymmFMD(AliITSgeom *geom);
48     Bool_t InitGeomShapePPRasymmFMD(AliITSDetector idet,Bool_t *initSeg,
49                                        TArrayD &shapePar,AliITSgeom *geom);
50     Bool_t InitSegmentationPPRasymmFMD(AliITSDetector idet,Bool_t *initSeg,
51                                        TArrayD &shapePar,AliITSgeom *geom);
52     Bool_t GetTransformation(const TString &volumePath,TGeoHMatrix &mat);
53     Bool_t GetShape(const TString &volumePath,TString &shapeType,TArrayD &par);
54     void DecodeDetectorLayers(Int_t mod,Int_t &lay,Int_t &lad,Int_t &det);
55     void DecodeDetector(Int_t &mod,Int_t lay,Int_t cpn0,
56                         Int_t cpn1,Int_t cpn2) const;
57     void RecodeDetector(Int_t mod,Int_t &cpn0,Int_t &cpn1,Int_t &cpn2);
58
59     TString   fName;          // Geometry name
60     Int_t     fMinorVersion;  // Geometry minor version
61     Int_t     fMajorVersion;  // Geometry swich value
62     Bool_t    fTiming;        // Flag to start inilization timing
63     Bool_t    fSegGeom;       // Flag to switch between the old use of
64                               // AliITSgeomS?D class, or AliITSsegmentation
65                               // class in fShape of AliITSgeom class.
66     Bool_t    fDecode;        // Flag for new/old decoding
67
68     ClassDef(AliITSInitGeometry,0) // create/Init AliITSgeom
69     // 0 in ClassDef indicates that this class will not be "saved" in a file.
70 };
71
72 #endif
73