]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONSegFactoryV3.h
Removed with merging transform/svmap data files in one
[u/mrichter/AliRoot.git] / MUON / AliMUONSegFactoryV3.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 /* $Id$ */
5
6 /// \ingroup sim
7 /// \class AliMUONSegFactoryV3
8 /// \brief Factory for muon segmentations
9 ///
10 /// New class separated from AliMUONFactoryV3 in order to get
11 /// building of segmentations independent from AliMUON and AliMUONChamber
12 /// objects
13
14 #ifndef ALI_MUON_SEG_FACTORY_V3_H
15 #define ALI_MUON_SEG_FACTORY_V3_H
16
17 #include <TNamed.h>
18
19 class AliMpExMap;
20
21 class AliMUONSegmentation;
22 class AliMUONGeometryTransformer;
23
24 class AliMUONSegFactoryV3 : public  TNamed {
25
26   public:
27     AliMUONSegFactoryV3(const char* name);
28     AliMUONSegFactoryV3();
29     virtual ~AliMUONSegFactoryV3();
30     
31     // Build methods
32     void Build(const AliMUONGeometryTransformer* geometry);
33     void BuildStation(const AliMUONGeometryTransformer*, Int_t stationNumber);
34     
35     // Access method
36     AliMUONSegmentation* GetSegmentation() const;
37
38   protected:
39     AliMUONSegFactoryV3(const AliMUONSegFactoryV3& rhs);
40     AliMUONSegFactoryV3& operator=(const AliMUONSegFactoryV3& rhs);
41
42   private:
43     Bool_t IsGeometryDefined(Int_t ichamber);
44     Bool_t ReadDENames(const TString& fileName, AliMpExMap& map);
45
46     void BuildChamber345(Int_t firstDetElemId, Int_t lastDetElemId,
47                          const AliMpExMap& deNamesMap);
48
49     void BuildStation1();
50     void BuildStation2();
51     void BuildStation3(const AliMpExMap& deNamesMap);
52     void BuildStation4(const AliMpExMap& deNamesMap);
53     void BuildStation5(const AliMpExMap& deNamesMap);
54     void BuildStation6();
55     
56     // data members     
57     AliMUONSegmentation*  fSegmentation;   // Segmentation container 
58     const AliMUONGeometryTransformer* fkGeomTransformer; // Geometry parametrisation
59
60   ClassDef(AliMUONSegFactoryV3,0)  // MUON Factory for Chambers and Segmentation
61 };
62
63 // inline functions
64
65 inline AliMUONSegmentation* AliMUONSegFactoryV3::GetSegmentation() const
66 { return fSegmentation; }
67
68
69 #endif //ALI_MUON_SEG_FACTORY_V3_H
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84