]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/macros/testSt12PadDimensions.C
In mapping/macros:
[u/mrichter/AliRoot.git] / MUON / mapping / macros / testSt12PadDimensions.C
1 // $Id$
2 // $MpId: testPadDimensions.C,v 1.6 2005/10/28 15:36:08 ivana Exp $
3 //
4 // Test macro for testing retrieving of pad dimensions from
5 // the map in AliMpSectorSegmentation.
6
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 "AliMpSectorSegmentation.h"
16 #include "AliMpSectorReader.h"
17
18 #include <Riostream.h>
19
20 #endif
21
22 void testPadDimensions(AliMq::Station12Type station, AliMp::PlaneType plane)
23 {
24   AliMpDataProcessor mp;
25   AliMpDataMap* dataMap = mp.CreateDataMap("data");
26   AliMpDataStreams dataStreams(dataMap);
27
28   AliMpSectorReader r(dataStreams, station, plane);
29   AliMpSector* sector = r.BuildSector();
30   AliMpSectorSegmentation segmentation(sector);  
31   segmentation.PrintZones(); 
32   
33   TVector2 previousDimensions;
34   for (Int_t i=1; i<segmentation.MaxPadIndexX()+1;i++) 
35     for (Int_t j=1;j<segmentation.MaxPadIndexY()+1;++j) {
36
37       AliMpIntPair indices(i,j);
38       if (segmentation.HasPad(indices)) {
39
40         // Check pad dimensions
41         AliMpPad pad = segmentation.PadByIndices(indices);
42         TVector2 dimensions = segmentation.PadDimensions(segmentation.Zone(pad));
43         
44         if ( dimensions.X() != previousDimensions.X() || 
45              dimensions.Y() != previousDimensions.Y() ) {
46
47           // Print dimensions
48           cout << "Pad: " << indices;
49           cout << "  dimensions: (" << dimensions.X() << ", " << dimensions.Y() << ")" 
50                << endl;
51           
52           previousDimensions = dimensions;
53         }            
54      }
55    }
56 }
57
58 void testPadDimensions()
59 {
60   AliMq::Station12Type  station[2] = { AliMq::kStation1, AliMq::kStation2 }; 
61   AliMp::PlaneType      plane[2]   = { AliMp::kBendingPlane, AliMp::kNonBendingPlane };
62   
63   for ( Int_t is = 0; is < 2; is++ ) {
64     for ( Int_t ip = 0; ip < 2; ip++ ) {
65     
66       cout << "Running testPadDimensions for " 
67            << AliMq::Station12TypeName(station[is]) << "  "
68            << AliMp::PlaneTypeName(plane[ip])  << " ... " << endl;
69        
70       testPadDimensions(station[is], plane[ip]);
71     
72       cout << "... end running " << endl << endl;
73     }  
74   }   
75 }  
76