]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONSegmentationDetectionElement.h
Coding violations corrected
[u/mrichter/AliRoot.git] / MUON / AliMUONSegmentationDetectionElement.h
CommitLineData
74f8c8e3 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 */
5
6/* $Id$ */
7
8//===========================================================
9// Segmentation classes for MUON Detection Elements
10// Gines MARTINEZ, SUBATECH July 04
11// This class interfaces with the mapping and segmentation
12// files MUON.
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>
23
24
25#include <TObject.h>
26#include <TString.h>
27#include <TArrayF.h>
28
29class TClonesArray;
30class TMap;
31
32class AliMUONSegmentManuIndex;
33class AliMUONSegmentPosition;
34class AliMUONSegmentIndex;
35
36class AliMUONSegmentationDetectionElement : public TObject {
37 public:
38 AliMUONSegmentationDetectionElement();
39 //AliMUONSegmentationDetectionElement(const char* ElementType="");
40 virtual ~AliMUONSegmentationDetectionElement();
212bb69d 41
42 // User functions
43 AliMUONSegmentIndex * GetIndex(Int_t manu, Int_t channel) const;
44 AliMUONSegmentIndex * GetIndexFromPosition(Float_t x, Float_t y, Int_t icathode) const;
45 AliMUONSegmentManuIndex * GetManuIndex( Int_t padx, Int_t pady, Int_t cathode) const ;
46 AliMUONSegmentPosition * GetPosition(Int_t padx, Int_t pady, Int_t cathode) const ;
47
74f8c8e3 48
212bb69d 49 AliMUONSegmentIndex * GetIndex( const char * SegmentManuIndexName)const;
50 AliMUONSegmentIndex * GetIndexFromPosition( const char * PositionName)const;
51 AliMUONSegmentManuIndex * GetManuIndex( const char * SegmentIndexName) const;
52 AliMUONSegmentPosition * GetPosition( const char * SegmentIndexName) const;
74f8c8e3 53 TObjArray * ListOfIndexes() {return fListOfIndexes;}
54 TObjArray * ListOfManuIndexes() {return fListOfIndexes;}
55 TObjArray * ListOfPositions() {return fListOfIndexes;}
56
212bb69d 57 AliMUONSegmentManuIndex * FindManuIndex(const char* ManuIndexName="") const;
58 AliMUONSegmentIndex * FindIndex(const char* IndexName="") const;
59
60 AliMUONSegmentIndex * FindIndexFromPosition(Float_t x, Float_t y, Int_t cathode) const;
74f8c8e3 61
62 void Init(const char * DetectionElementType="slat220000N");
63
64 void ReadingSegmentationMappingFile(TString infile, Int_t cathode);
65
66 protected:
67 AliMUONSegmentationDetectionElement(const AliMUONSegmentationDetectionElement& rhs);
68
69 private:
70 // static data members
212bb69d 71 static const TString fgkDefaultTop; // Top directory of $Alice_ROOT/MUON/mapping
72 static const TString fgkStationDir; // Directory for station station1, station2, station345
74f8c8e3 73 static const TString fgkBendingDir; //bending plane directory
74 static const TString fgkNonBendingDir; //non-bending plane directory
75 static const TString fgkFileExt; // File extention
76 static const TString fgkBendingExt; // bending file extention
77 static const TString fgkNonBendingExt; // bending file extention
78
79 // data members
80 TString fDetectionElementType; // Type of detection element St1Sector, slat220000N, etc ....
212bb69d 81 TString fSegmentationMappingFileBending; // Segmentation & mapping file for bending plane
82 TString fSegmentationMappingFileNonBending; // Segmentation & mapping file for non bending plane
83 TObjArray * fListOfIndexes; // TObject Array fo AliMUONSegmentIndex
84 TObjArray * fListOfManuIndexes; // TObject Array fo AliMUONSegmentManuIndex
85 TObjArray * fListOfPositions; // TObject Array fo AliMUONSegmentPositions
74f8c8e3 86 TMap * fMapManuIndexIndex; // Map with key ManuIndex and value = Index
87 TMap * fMapIndexManuIndex;// Map with key ManuIndexIndex and value = ManuIndex
88 TMap * fMapIndexPosition;// Map with key Index and value = Position
212bb69d 89 TMap * fMapPositionIndex;// Map with key Index and value = Position
74f8c8e3 90
91
92 ClassDef(AliMUONSegmentationDetectionElement,1) // Segmentation for MUON detection elements
93
94 };
95#endif
96
97
98
99
100
101