1 #ifndef ALIMUONSEGMENTATIONDETECTIONELEMENT_H
2 #define ALIMUONSEGMENTATIONDETECTIONELEMENT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //===========================================================
9 // Segmentation classes for MUON Detection Elements
10 // Gines MARTINEZ, SUBATECH July 04
11 // This class interfaces with the mapping and segmentation
13 // This files are placed by default in
14 // $ALICE_ROOT/MUON/mapping/data/Stationxxx/yyy_plane/
15 // There are in tracking 23 types of detection elements
16 // 8 SectorSt1, 8 SectorSt2, 2 122000SR1, 2 122000NR1, 4 112200SR2, 4 112200NR2
17 // 4 122200S, 4 122200N, 8 222000N,8 220000N, 8 330000N, 4 122300N, 8 112230NR3
18 // 8 112230N, 8 222330N, 8 223300N, 16 333000N, 4 122330N, 8 112233NR3, 8 112233N
19 // 8 222333N, 8 223330N, 8 333300N
20 // Detailed information in Alice Technical Note xxxxxxxx (2004)
21 //===========================================================
22 #include <Riostream.h>
32 class AliMUONSegmentManuIndex;
33 class AliMUONSegmentPosition;
34 class AliMUONSegmentIndex;
36 class AliMUONSegmentationDetectionElement : public TObject {
38 AliMUONSegmentationDetectionElement();
39 //AliMUONSegmentationDetectionElement(const char* ElementType="");
40 virtual ~AliMUONSegmentationDetectionElement();
42 AliMUONSegmentIndex * GetIndex( const char * SegmentManuIndexName);
43 AliMUONSegmentManuIndex * GetManuIndex( const char * SegmentIndexName);
44 AliMUONSegmentPosition * GetPosition( const char * SegmentIndexName);
45 TObjArray * ListOfIndexes() {return fListOfIndexes;}
46 TObjArray * ListOfManuIndexes() {return fListOfIndexes;}
47 TObjArray * ListOfPositions() {return fListOfIndexes;}
49 AliMUONSegmentManuIndex * FindManuIndex(const char* ManuIndexName="");
50 AliMUONSegmentManuIndex * FindIndex(const char* IndexName="");
52 void Init(const char * DetectionElementType="slat220000N");
54 void ReadingSegmentationMappingFile(TString infile, Int_t cathode);
57 AliMUONSegmentationDetectionElement(const AliMUONSegmentationDetectionElement& rhs);
60 // static data members
61 static const TString fgkDefaultTop; //
62 static const TString fgkStationDir; //
63 static const TString fgkBendingDir; //bending plane directory
64 static const TString fgkNonBendingDir; //non-bending plane directory
65 static const TString fgkFileExt; // File extention
66 static const TString fgkBendingExt; // bending file extention
67 static const TString fgkNonBendingExt; // bending file extention
70 TString fDetectionElementType; // Type of detection element St1Sector, slat220000N, etc ....
71 TString fSegmentationMappingFile_Bending; // Segmentation & mapping file for bending plane
72 TString fSegmentationMappingFile_NonBending; // Segmentation & mapping file for non bending plane
73 TObjArray * fListOfIndexes;
74 TObjArray * fListOfManuIndexes;
75 TObjArray * fListOfPositions;
76 TMap * fMapManuIndexIndex; // Map with key ManuIndex and value = Index
77 TMap * fMapIndexManuIndex;// Map with key ManuIndexIndex and value = ManuIndex
78 TMap * fMapIndexPosition;// Map with key Index and value = Position
79 TArrayF * fXlocalSegmentPositions; // Array of posible values of Xlocal
80 TArrayF * fYlocalSegmentPositions;// Array of posible values of Ylocal
83 ClassDef(AliMUONSegmentationDetectionElement,1) // Segmentation for MUON detection elements