f215f9ba7b5154fd29f7381cc4c20dabc7454bcd
[u/mrichter/AliRoot.git] / MUON / mapping / macros / testExistingPads.C
1 // $Id$
2 // $MpId: testExistingPads.C,v 1.11 2005/09/26 16:05:25 ivana Exp $
3 //
4 // Test macro for testing which pad is seen as "existing" by AliMpSector.
5
6 void testExistingPads(AliMpStationType station = kStation1,
7                       AliMpPlaneType plane = kBendingPlane, 
8                       Bool_t rootInput = false)
9 {
10   AliMpSector *sector = 0;
11   if (!rootInput) {
12     AliMpSectorReader r(station, plane);
13     sector=r.BuildSector();
14   }
15   else  {
16     TString filePath = AliMpFiles::Instance()->SectorFilePath(station,plane);
17     filePath.ReplaceAll("zones.dat", "sector.root"); 
18
19     TFile f(filePath.Data(), "READ");
20     sector = (AliMpSector*)f.Get("Sector");
21   }  
22
23   AliMpSectorSegmentation segmentation(sector);
24   AliMpVPainter* painter = AliMpVPainter::CreatePainter(sector);
25
26   TCanvas* c1 = new TCanvas("view",
27                             "AliMpSectorPainter::Draw() output (view per pad)");
28   painter->Draw("ZSSMP");
29   c1->Update();
30
31   Int_t maxPadIndexX = segmentation.MaxPadIndexX();
32   Int_t maxPadIndexY = segmentation.MaxPadIndexY();
33   
34   // Define histogram limits
35   Int_t nx = (maxPadIndexX/10 + 1)*10;
36   Int_t ny = (maxPadIndexY/10 + 1)*10;
37   TH2C* histo = new TH2C("histo","Existing pads", 
38                           nx, -0.5, nx-0.5, ny, -0.5, ny-0.5);
39
40   TCanvas* c2 = new TCanvas("c2","Only existing pads are filled");
41
42   AliMpSectorSegmentation segmentation(sector);
43   for (Int_t i=0; i<maxPadIndexX+1;i++){
44     for (Int_t j=0;j<maxPadIndexY+1;++j){
45
46       AliMpIntPair indices(i,j);
47       if (segmentation.HasPad(indices)) histo->Fill(i,j);
48     }
49   }
50
51   c2->cd();
52   histo->Draw("box");
53 }