c186d84359b7d5e58a429c237e397fc060096551
[u/mrichter/AliRoot.git] / MUON / mapping / macros / testReadSector.C
1 // $Id$
2 // $MpId: testReadSector.C,v 1.13 2005/09/02 10:57:47 ivana Exp $
3 //
4 // Test macro for reading sector data.
5
6 #include <iomanip>
7
8 void testReadSector(AliMpStationType station = kStation1,
9                     AliMpPlaneType plane = kBendingPlane) 
10 {
11   AliMpSectorReader reader(station, plane);  
12   //reader.SetVerboseLevel(1);
13   
14   // Read data 
15   AliMpSector* sector = reader.BuildSector();
16   
17   cout << endl;
18
19   // Sector geometry
20   sector->PrintGeometry();
21
22   cout << endl;
23
24   // Find row test
25   if (plane == kBendingPlane)
26     cout << "0th row low border " << sector->FindRow(TVector2(0., 0.))->GetID() << endl;
27   if (plane == kNonBendingPlane)
28     cout << "0th row low border " << sector->FindRow(TVector2(0., 0.215))->GetID() << endl;
29   cout << "in 0th row         " << sector->FindRow(TVector2(0., 25.))->GetID() << endl;
30   cout << "0th row up border  " << sector->FindRow(TVector2(0., 67.2))->GetID() << endl;
31   cout << "in 4th row         " << sector->FindRow(TVector2(0., 300.))->GetID() << endl;
32   if (plane == kBendingPlane)
33     cout << "12th row up border " << sector->FindRow(TVector2(0., 894.6))->GetID() << endl;
34   if (plane == kNonBendingPlane)
35     cout << "12th row up border " << sector->FindRow(TVector2(0., 848.4))->GetID() << endl;
36   cout << endl;
37   
38   // Find motif position test
39   Int_t ids[15] = { 19, 14, 9, 32, 36, 136, 187, 212, 207, 220, 1, 131, 239, 243, 250 };  
40   for (Int_t i=0; i<15 ; i++) {
41     Int_t id = ids[i];
42     cout << "Motif pos " << std::setw(3) << id;
43     if (!sector->FindRowSegment(id)) {
44        cout << " not found." << endl;
45     }
46     else {       
47        cout << " found in : "
48             << sector->FindRow(id)->GetID() << " row, "
49             << " motif id: "
50             << sector->FindRowSegment(id)->GetMotif(0)->GetID().Data()
51             << endl;
52     }      
53   }
54   cout << endl;
55
56   // Find motif by coordinates test
57   for (Int_t i=0; i<2 ; i++) {
58     TVector2 pos(5., 186. - i*20.);  // i=0 in motif 1001,
59                                      // i=1 outside (below) motif 1001
60     AliMpMotif* motif = sector->FindMotif(pos);
61     cout << "In the position " << pos.X() << " " << pos.Y();
62     
63     if (motif)
64       cout << " found motif " << motif->GetID() << endl;
65     else  
66       cout << " motif not found " << endl;
67   }
68
69   // Find special motif test
70   if (plane == kNonBendingPlane) {
71   
72     Int_t ids[6] = { 20, 46, 47, 74, 75, 76 };
73     for (Int_t i=0; i<6 ; i++) {
74       
75       Int_t id = ids[i];
76       cout << "Motif pos " << id;
77       if (!sector->FindRowSegment(id)) {
78          cout << " not found." << endl;
79       }
80       else {     
81          cout << " found in : "
82               << sector->FindRow(id)->GetID() << " row, "
83               << " position : "
84               << sector->FindPosition(id).X() << "  " <<  sector->FindPosition(id).Y()
85               << endl;
86       }
87     }
88   }             
89   cout << endl;
90
91   // Motif map
92   sector->GetMotifMap()->Print();    
93   
94   delete sector;
95 }                              
96       
97
98