]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSInitGeometry.h
DIPO added
[u/mrichter/AliRoot.git] / ITS / AliITSInitGeometry.h
CommitLineData
023ae34b 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
108bd0fe 10/////////////////////////////////////////////////////////////////////
6b0f3880 11// Class to inilize AliITSgeom and the like for both simulation
108bd0fe 12// and reconstruction.
6b0f3880 13/////////////////////////////////////////////////////////////////////
14
023ae34b 15#include <TObject.h>
023ae34b 16#include <TString.h>
023ae34b 17
108bd0fe 18typedef enum {
19 kvPPRasymmFMD=10,kv11=11,kv11Hybrid=110,kvDefault=1
20} AliITSVersion_t;
21
6b0f3880 22
23class AliITSgeom;
24class TArrayD;
25class TGeoHMatrix;
023ae34b 26
27class AliITSInitGeometry : public TObject{
28 public:
108bd0fe 29 AliITSInitGeometry(AliITSVersion_t
30 version=kvPPRasymmFMD,Int_t minorversion=2);//Standard Constructor
023ae34b 31 //virtual ~AliITSInitGeometry(); // Destructor
32 //
33 AliITSgeom* CreateAliITSgeom(); // Create and intilize geometry from TGeom
34 Bool_t InitAliITSgeom(AliITSgeom *geom);//Initilize goemetry from gGeoManager
35 // Getters and Setters
36 TString GetGeometryName()const {return fName;}// Return geometry name
37 void SetGeometryName(const Char_t *name){fName = name;}// Set Geometry name
108bd0fe 38 Int_t GetMajorVersion()const {return (Int_t)fMajorVersion;} // Return geometry major version
023ae34b 39 Int_t GetMinorVersion()const{return fMinorVersion;}// Return geometry minor version
023ae34b 40 Bool_t GetTiming()const{return fTiming;} // return routine timing flag
41 void SetTiming(Bool_t time=kTRUE){fTiming=time;}// Set routine timing (on)
42 Bool_t GetSegGeom()const{return fSegGeom;} // return flag indecating the use of AliITSsegmentation or AliITSgeomS?D class in fShape.
43 void SetSegGeom(Bool_t seg=kTRUE){fSegGeom = seg;}// Set the use of AliITSsegmentation class' instead of AliITSgeomS?D class in fShape
44 Bool_t GetDecoding()const{return fDecode;}// Return flag indecating wether to use new/old decoding
45 void SetDecoding(Bool_t newdec=kFALSE){fDecode = newdec;}// Set flag to use new/old decoding
46
108bd0fe 47 static const Bool_t SPDIsTGeoNative() {return !fgkOldSPDbarrel;}
48 static const Bool_t SDDIsTGeoNative() {return !fgkOldSDDbarrel;}
49 static const Bool_t SSDIsTGeoNative() {return !fgkOldSSDbarrel;}
50
51 static const Bool_t SDDconeIsTGeoNative() {return ! fgkOldSDDcone;}
52 static const Bool_t SSDconeIsTGeoNative() {return ! fgkOldSSDcone;}
53 static const Bool_t SPDshieldIsTGeoNative() {return ! fgkOldSPDshield;}
54 static const Bool_t SDDshieldIsTGeoNative() {return ! fgkOldSDDshield; }
55 static const Bool_t SSDshieldIsTGeoNative() {return ! fgkOldSSDshield;}
56 static const Bool_t ServicesAreTGeoNative() {return ! fgkOldServices;}
57 static const Bool_t SupportIsTGeoNative() {return ! fgkOldSupports;}
58
59 private:
023ae34b 60 // Virtual MC code reproduction
61 Bool_t InitAliITSgeomPPRasymmFMD(AliITSgeom *geom);
108bd0fe 62 Bool_t InitAliITSgeomV11Hybrid(AliITSgeom *geom);
63 Bool_t InitAliITSgeomV11(AliITSgeom *geom);
023ae34b 64 Bool_t InitGeomShapePPRasymmFMD(AliITSDetector idet,Bool_t *initSeg,
65 TArrayD &shapePar,AliITSgeom *geom);
66 Bool_t InitSegmentationPPRasymmFMD(AliITSDetector idet,Bool_t *initSeg,
67 TArrayD &shapePar,AliITSgeom *geom);
68 Bool_t GetTransformation(const TString &volumePath,TGeoHMatrix &mat);
69 Bool_t GetShape(const TString &volumePath,TString &shapeType,TArrayD &par);
70 void DecodeDetectorLayers(Int_t mod,Int_t &lay,Int_t &lad,Int_t &det);
6b0f3880 71 void DecodeDetector(Int_t &mod,Int_t lay,Int_t cpn0,
72 Int_t cpn1,Int_t cpn2) const;
023ae34b 73 void RecodeDetector(Int_t mod,Int_t &cpn0,Int_t &cpn1,Int_t &cpn2);
74
75 TString fName; // Geometry name
108bd0fe 76 Int_t fMinorVersion; // Geometry minor version
77 AliITSVersion_t fMajorVersion; // Geometry swich value
78 Bool_t fTiming; // Flag to start inilization timing
79 Bool_t fSegGeom; // Flag to switch between the old use of
023ae34b 80 // AliITSgeomS?D class, or AliITSsegmentation
81 // class in fShape of AliITSgeom class.
108bd0fe 82 Bool_t fDecode; // Flag for new/old decoding
83
84 static const Bool_t fgkOldSPDbarrel; // use old geo for SPD ?
85 static const Bool_t fgkOldSDDbarrel; // use old geo for SDD ?
86 static const Bool_t fgkOldSSDbarrel; // use old geo for SSD ?
87 static const Bool_t fgkOldSDDcone; // use old geo for SDD cone ?
88 static const Bool_t fgkOldSSDcone; // use old geo for SSD cone?
89 static const Bool_t fgkOldSPDshield; // use old geo for SPD shield ?
90 static const Bool_t fgkOldSDDshield; // use old geo for SDD shield ?
91 static const Bool_t fgkOldSSDshield; // use old geo for SDD shield ?
92 static const Bool_t fgkOldServices; // use old geo for services ?
93 static const Bool_t fgkOldSupports; // use old geo for supports ?
023ae34b 94
95 ClassDef(AliITSInitGeometry,0) // create/Init AliITSgeom
96 // 0 in ClassDef indicates that this class will not be "saved" in a file.
97};
98
99#endif
100