]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONSegFactoryV4.h
Adding AliMUONGeometryMisAligner
[u/mrichter/AliRoot.git] / MUON / AliMUONSegFactoryV4.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 AliMUONSegFactoryV4
8 /// \brief Factory for muon segmentations
9 ///
10 /// New class separated from AliMUONFactoryV4 in order to get
11 /// building of segmentations independent from AliMUON and AliMUONChamber
12 /// objects
13
14 #ifndef ALI_MUON_SEG_FACTORY_V4_H
15 #define ALI_MUON_SEG_FACTORY_V4_H
16
17 #include <TNamed.h>
18
19 class AliMpExMap;
20
21 class AliMUONSegmentation;
22 class AliMUONGeometryTransformer;
23
24 class AliMUONSegFactoryV4 : public  TNamed {
25
26   public:
27     AliMUONSegFactoryV4(const char* name);
28     AliMUONSegFactoryV4();
29     virtual ~AliMUONSegFactoryV4();
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     AliMUONSegFactoryV4(const AliMUONSegFactoryV4& rhs);
40     AliMUONSegFactoryV4& operator=(const AliMUONSegFactoryV4& 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     void BuildChamberTrigger(Int_t firstDetElemId, Int_t lastDetElemId,
49                          const AliMpExMap& deNamesMap);
50
51     void BuildStation1();
52     void BuildStation2();
53     void BuildStation3(const AliMpExMap& deNamesMap);
54     void BuildStation4(const AliMpExMap& deNamesMap);
55     void BuildStation5(const AliMpExMap& deNamesMap);
56     void BuildStation6(const AliMpExMap& deNamesMap);
57     
58     // data members     
59     AliMUONSegmentation* fSegmentation;   // Segmentation container 
60     const AliMUONGeometryTransformer* fkGeomTransformer; // Geometry parametrisation
61
62   ClassDef(AliMUONSegFactoryV4,0)  // MUON Factory for Chambers and Segmentation
63 };
64
65 // inline functions
66
67 inline AliMUONSegmentation* AliMUONSegFactoryV4::GetSegmentation() const
68 { return fSegmentation; }
69
70 #endif //ALI_MUON_SEG_FACTORY_V4_H
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85