]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/AliMpPlane.cxx
Update for station2:
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpPlane.cxx
CommitLineData
5f91c9e8 1// $Id$
2// Category: plane
3//
4// Class AliMpPlane
5// ----------------
6// Class represents the plane composed of 4 sector positions:
7//
8// I. FS II. | I.
9// II. BS inverted in x _____ | ____
10// III. FS inverted in x, y |
11// IV. BS inverted in y III. | IV.
12//
13// FS - front sector
14// BS - back sector
15//
16// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
17
18#include <Riostream.h>
19
20#include "AliMpPlane.h"
21#include "AliMpReader.h"
22#include "AliMpSector.h"
23#include "AliMpSectorPosition.h"
874eaf96 24#include "AliMpIntPair.h"
5f91c9e8 25
26ClassImp(AliMpPlane)
27
28//
29// static methods
30//
31
32//______________________________________________________________________________
33AliMpPlane*
874eaf96 34AliMpPlane::Create(AliMpStationType station, AliMpPlaneType type,
5f91c9e8 35 const TVector2& q1Position, const TVector2& q2Position,
36 const TVector2& q3Position, const TVector2& q4Position)
37{
38// Factory method for creating planes.
39// ---
40
41 // Build sectors
874eaf96 42 AliMpReader bReader(station, kBendingPlane);
5f91c9e8 43 // bReader.SetVerboseLevel(1);
44 AliMpSector* bSector = bReader.BuildSector();
45 cout << "bending sector is built" << endl;
46
874eaf96 47 AliMpReader nbReader(station, kNonBendingPlane);
5f91c9e8 48 // nbReader.SetVerboseLevel(1);
49 AliMpSector* nbSector = nbReader.BuildSector();
50 cout << "non-bending sector is built" << endl;
51
52 if (type == kBendingPlane)
53 return new AliMpPlane(bSector, nbSector,
54 q1Position, q2Position, q3Position, q4Position );
55 else
56 return new AliMpPlane(nbSector, bSector,
57 q1Position, q2Position, q3Position, q4Position );
58}
59
60//______________________________________________________________________________
874eaf96 61AliMpPlane* AliMpPlane::Create(AliMpStationType station, AliMpPlaneType type)
5f91c9e8 62{
63// Factory method for creating planes with
64// not shifted qudrants.
65// ---
66
874eaf96 67 return Create(station, type, TVector2(), TVector2(), TVector2(), TVector2());
5f91c9e8 68}
69
70//
71// constructors, destructors
72//
73
74//______________________________________________________________________________
75AliMpPlane::AliMpPlane(AliMpSector* frontSector, AliMpSector* backSector,
76 const TVector2& q1Position, const TVector2& q2Position,
77 const TVector2& q3Position, const TVector2& q4Position)
78 : TObject(),
79 fkFrontSector(frontSector),
80 fkBackSector(backSector),
81 fSectorPositions()
82{
83//
84
85 // Create sector positions
86 fSectorPositions.push_back(
87 new AliMpSectorPosition(fkFrontSector, q1Position, AliMpIntPair( 1, 1)));
88 fSectorPositions.push_back(
89 new AliMpSectorPosition(fkBackSector, q2Position, AliMpIntPair(-1, 1)));
90 fSectorPositions.push_back(
91 new AliMpSectorPosition(fkFrontSector, q3Position, AliMpIntPair(-1,-1)));
92 fSectorPositions.push_back(
93 new AliMpSectorPosition(fkBackSector, q4Position, AliMpIntPair( 1,-1)));
94}
95
96
97//______________________________________________________________________________
98AliMpPlane::AliMpPlane()
99 : TObject(),
100 fkFrontSector(0),
101 fkBackSector(0),
102 fSectorPositions()
103{
104//
105}
106
107//______________________________________________________________________________
108AliMpPlane::~AliMpPlane() {
109//
110
111 delete fkFrontSector;
112 delete fkBackSector;
113
114 for (Int_t i=0; i<GetNofSectorPositions(); i++)
115 delete GetSectorPosition(i);
116}
117
118//
119// public methods
120//
121
122//______________________________________________________________________________
123const AliMpSectorPosition*
124AliMpPlane::SectorPosition(const AliMpIntPair& scale) const
125{
126// Returns the sector position specified by scale.
127// ---
128
129 for (UInt_t i=0; i<fSectorPositions.size(); i++)
130 if (fSectorPositions[i]->GetScale() == scale) return GetSectorPosition(i);
131
132 Fatal("SectorPosition", "Wrong scale");
133 return 0;
134}
135
136//______________________________________________________________________________
137Int_t AliMpPlane::GetNofSectorPositions() const
138{
139// Returns number of sector positions.
140// ---
141
142 return fSectorPositions.size();
143}
144
145
146//______________________________________________________________________________
147AliMpSectorPosition* AliMpPlane::GetSectorPosition(Int_t i) const
148{
149// Returns i-th sector position.
150// ---
151
152 return fSectorPositions[i];
153}
154
155