ROOT logo
// $Id$
// $MpId: testPadDimensions.C,v 1.6 2005/10/28 15:36:08 ivana Exp $
//
// Test macro for testing retrieving of pad dimensions from
// the map in AliMpSectorSegmentation.

#if !defined(__CINT__) || defined(__MAKECINT__)

#include "AliMpStation12Type.h"
#include "AliMpPlaneType.h"
#include "AliMpDataProcessor.h"
#include "AliMpDataMap.h"
#include "AliMpDataStreams.h"
#include "AliMpSector.h"
#include "AliMpSectorSegmentation.h"
#include "AliMpSectorReader.h"

#include <Riostream.h>

#endif

void testPadDimensions(AliMq::Station12Type station, AliMp::PlaneType plane)
{
  AliMpDataProcessor mp;
  AliMpDataMap* dataMap = mp.CreateDataMap("data");
  AliMpDataStreams dataStreams(dataMap);

  AliMpSectorReader r(dataStreams, station, plane);
  AliMpSector* sector = r.BuildSector();
  AliMpSectorSegmentation segmentation(sector);  
  segmentation.PrintZones(); 
  
  TVector2 previousDimensions;
  for (Int_t i=1; i<segmentation.MaxPadIndexX()+1;i++) 
    for (Int_t j=1;j<segmentation.MaxPadIndexY()+1;++j) {

       if ( segmentation.HasPadByIndices(i,j) ) {

        // Check pad dimensions
	AliMpPad pad = segmentation.PadByIndices(i,j);
	TVector2 dimensions = segmentation.PadDimensions(segmentation.Zone(pad));
	
	if ( dimensions.X() != previousDimensions.X() || 
	     dimensions.Y() != previousDimensions.Y() ) {

          // Print dimensions
	  cout << "Pad: " << "(" << i << "," << j << ")";
	  cout << "  dimensions: (" << dimensions.X() << ", " << dimensions.Y() << ")" 
	       << endl;
          
	  previousDimensions = dimensions;
        }	     
     }
   }
}

void testSt12PadDimensions()
{
  AliMq::Station12Type  station[2] = { AliMq::kStation1, AliMq::kStation2 }; 
  AliMp::PlaneType      plane[2]   = { AliMp::kBendingPlane, AliMp::kNonBendingPlane };
  
  for ( Int_t is = 0; is < 2; is++ ) {
    for ( Int_t ip = 0; ip < 2; ip++ ) {
    
      cout << "Running testPadDimensions for " 
           << AliMq::Station12TypeName(station[is]) << "  "
           << AliMp::PlaneTypeName(plane[ip])  << " ... " << endl;
       
      testPadDimensions(station[is], plane[ip]);
    
      cout << "... end running " << endl << endl;
    }  
  }   
}  
  
 testSt12PadDimensions.C:1
 testSt12PadDimensions.C:2
 testSt12PadDimensions.C:3
 testSt12PadDimensions.C:4
 testSt12PadDimensions.C:5
 testSt12PadDimensions.C:6
 testSt12PadDimensions.C:7
 testSt12PadDimensions.C:8
 testSt12PadDimensions.C:9
 testSt12PadDimensions.C:10
 testSt12PadDimensions.C:11
 testSt12PadDimensions.C:12
 testSt12PadDimensions.C:13
 testSt12PadDimensions.C:14
 testSt12PadDimensions.C:15
 testSt12PadDimensions.C:16
 testSt12PadDimensions.C:17
 testSt12PadDimensions.C:18
 testSt12PadDimensions.C:19
 testSt12PadDimensions.C:20
 testSt12PadDimensions.C:21
 testSt12PadDimensions.C:22
 testSt12PadDimensions.C:23
 testSt12PadDimensions.C:24
 testSt12PadDimensions.C:25
 testSt12PadDimensions.C:26
 testSt12PadDimensions.C:27
 testSt12PadDimensions.C:28
 testSt12PadDimensions.C:29
 testSt12PadDimensions.C:30
 testSt12PadDimensions.C:31
 testSt12PadDimensions.C:32
 testSt12PadDimensions.C:33
 testSt12PadDimensions.C:34
 testSt12PadDimensions.C:35
 testSt12PadDimensions.C:36
 testSt12PadDimensions.C:37
 testSt12PadDimensions.C:38
 testSt12PadDimensions.C:39
 testSt12PadDimensions.C:40
 testSt12PadDimensions.C:41
 testSt12PadDimensions.C:42
 testSt12PadDimensions.C:43
 testSt12PadDimensions.C:44
 testSt12PadDimensions.C:45
 testSt12PadDimensions.C:46
 testSt12PadDimensions.C:47
 testSt12PadDimensions.C:48
 testSt12PadDimensions.C:49
 testSt12PadDimensions.C:50
 testSt12PadDimensions.C:51
 testSt12PadDimensions.C:52
 testSt12PadDimensions.C:53
 testSt12PadDimensions.C:54
 testSt12PadDimensions.C:55
 testSt12PadDimensions.C:56
 testSt12PadDimensions.C:57
 testSt12PadDimensions.C:58
 testSt12PadDimensions.C:59
 testSt12PadDimensions.C:60
 testSt12PadDimensions.C:61
 testSt12PadDimensions.C:62
 testSt12PadDimensions.C:63
 testSt12PadDimensions.C:64
 testSt12PadDimensions.C:65
 testSt12PadDimensions.C:66
 testSt12PadDimensions.C:67
 testSt12PadDimensions.C:68
 testSt12PadDimensions.C:69
 testSt12PadDimensions.C:70
 testSt12PadDimensions.C:71
 testSt12PadDimensions.C:72
 testSt12PadDimensions.C:73
 testSt12PadDimensions.C:74
 testSt12PadDimensions.C:75
 testSt12PadDimensions.C:76