]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/macros/testSt12PrintLimits.C
Replacement of AliMpIntPair object with algoritmic
[u/mrichter/AliRoot.git] / MUON / mapping / macros / testSt12PrintLimits.C
CommitLineData
66e0997c 1// $Id$
57ff4119 2// $MpId: testPrintLimits.C,v 1.9 2005/10/28 15:36:08 ivana Exp $
66e0997c 3//
4// Test macro for making an output file, where all mapping elements
5// indices & positions are written.
6
f05d3eb1 7#if !defined(__CINT__) || defined(__MAKECINT__)
8
9#include "AliMpStation12Type.h"
10#include "AliMpPlaneType.h"
11#include "AliMpDataProcessor.h"
12#include "AliMpDataMap.h"
13#include "AliMpDataStreams.h"
14#include "AliMpSector.h"
15#include "AliMpSectorReader.h"
16#include "AliMpRow.h"
17#include "AliMpVRowSegment.h"
18#include "AliMpMotifMap.h"
19#include "AliMpMotifPosition.h"
20#include "AliMpVPainter.h"
168e9c4d 21#include "AliMpEncodePair.h"
f05d3eb1 22
23#include <Riostream.h>
24#include <TCanvas.h>
25
26#endif
27
6aa39548 28TCanvas* CreateTCanvas(const TString& name, const TString& title,
29 AliMq::Station12Type station, AliMp::PlaneType plane)
30{
31 TString newName(name);
32 TString newTitle(title);
33 TString unique = AliMq::Station12TypeName(station) + AliMp::PlaneTypeName(plane);
34 newName += unique;
35 newTitle += unique;
36 return new TCanvas(newName.Data(), newTitle.Data());
37}
38
f05d3eb1 39void testPrintLimits(AliMq::Station12Type station, AliMp::PlaneType plane,
cddd101e 40 ostream& out=cout)
66e0997c 41{
f05d3eb1 42 AliMpDataProcessor mp;
43 AliMpDataMap* dataMap = mp.CreateDataMap("data");
44 AliMpDataStreams dataStreams(dataMap);
66e0997c 45
f05d3eb1 46 AliMpSectorReader r(dataStreams, station, plane);
47 AliMpSector* sector = r.BuildSector();
48
6aa39548 49 //new TCanvas(" ", " ", station, plane); // BREAKS
f05d3eb1 50 new TCanvas();
66e0997c 51
52 AliMpVPainter* painter = AliMpVPainter::CreatePainter(sector);
53 painter->Draw("ZSSMP");
54
168e9c4d 55 Long_t low,high;
66e0997c 56 TVector2 rlow,rhigh;
57
58 for (Int_t irow=0;irow<sector->GetNofRows();irow++){
59 // For each row
60
61 AliMpRow* row = sector->GetRow(irow);
62 low = row->GetLowIndicesLimit();
63 high = row->GetHighIndicesLimit();
64 rlow = TVector2(row->Position().X()-row->Dimensions().X(),
65 row->Position().Y()-row->Dimensions().Y());
66 rhigh = TVector2(row->Position().X()+row->Dimensions().X(),
67 row->Position().Y()+row->Dimensions().Y());
68 out<<"_______________________________________________________________"<<endl;
168e9c4d 69 out<<"Row "<<irow<<" between ";
70 AliMp::PairPut(out, low) << " and ";
71 AliMp::PairPut(out, high)
72 << "-->(" <<rlow.X()<<','<<rlow.Y()<<") and ("
66e0997c 73 <<rhigh.X()<<','<<rhigh.Y()<<')'<<endl;
74 out<<"_______________________________________________________________"<<endl;
75
76 for (Int_t iseg=0;iseg<row->GetNofRowSegments();iseg++){
77 // For each row segment
78
79 AliMpVRowSegment* seg = row->GetRowSegment(iseg);
80 low = seg->GetLowIndicesLimit();
81 high = seg->GetHighIndicesLimit();
82 rlow = TVector2(seg->Position().X()-seg->Dimensions().X(),
83 seg->Position().Y()-seg->Dimensions().Y());
84 rhigh = TVector2(seg->Position().X()+seg->Dimensions().X(),
85 seg->Position().Y()+seg->Dimensions().Y());
86 out<<"-----------------------------------------------------------"<<endl;
168e9c4d 87 out<<" Segment "<<iseg<<" between ";
88 AliMp::PairPut(out, low) << " and ";
89 AliMp::PairPut(out, high)
66e0997c 90 <<"-->("<<rlow.X()<<','<<rlow.Y()<<") and ("
91 <<rhigh.X()<<','<<rhigh.Y()<<')'<<endl;
92 out<<"-----------------------------------------------------------"<<endl;
93
94 for (Int_t imotif=0;imotif<seg->GetNofMotifs();imotif++){
95 // For each motif pos
96
97 AliMpMotifPosition* motifPos
98 = sector->GetMotifMap()
99 ->FindMotifPosition(seg->GetMotifPositionId(imotif));
100 AliMpVMotif* motif = motifPos->GetMotif();
101
102 low = motifPos->GetLowIndicesLimit();
103 high = motifPos->GetHighIndicesLimit();
104 rlow = TVector2(motifPos->Position().X()-motif->Dimensions().X(),
105 motifPos->Position().Y()-motif->Dimensions().Y());
106 rhigh = TVector2(motifPos->Position().X()+motif->Dimensions().X(),
107 motifPos->Position().Y()+motif->Dimensions().Y());
168e9c4d 108 out<<" Motif "<<imotif<<" between ";
109 AliMp::PairPut(out, low) << " and ";
110 AliMp::PairPut(out, high)
66e0997c 111 <<"-->("<<rlow.X()<<','<<rlow.Y()<<") and ("
112 <<rhigh.X()<<','<<rhigh.Y()<<')'<<endl;
113 }
114 }
115 }
116}
f05d3eb1 117
6aa39548 118void testSt12PrintLimits()
f05d3eb1 119{
120 AliMq::Station12Type station[2] = { AliMq::kStation1, AliMq::kStation2 };
121 AliMp::PlaneType plane[2] = { AliMp::kBendingPlane, AliMp::kNonBendingPlane };
122
123 for ( Int_t is = 0; is < 2; is++ ) {
124 for ( Int_t ip = 0; ip < 2; ip++ ) {
125
126 cout << "Running testPrintLimits for "
127 << AliMq::Station12TypeName(station[is]) << " "
128 << AliMp::PlaneTypeName(plane[ip]) << " ... " << endl;
129
130 testPrintLimits(station[is], plane[ip]);
131
132 cout << "... end running " << endl << endl;
133 }
134 }
135}
136