3 // Test macro for testing which pad is seen as "existing" by AliMpSector.
7 if (!gInterpreter->IsLoaded("mlibs.C")){
8 gROOT->LoadMacro("mlibs.C");
9 gInterpreter->ProcessLine("mlibs()");
12 AliMpReader r(kStation1, kNonBendingPlane);
14 AliMpSector *sector=r.BuildSector();
15 AliMpVPainter* painter = AliMpVPainter::CreatePainter(sector);
17 TCanvas* c1 = new TCanvas("view",
18 "MSectorPainter::Draw() output (view per pad)");
19 painter->Draw("ZSSMP");
22 TH2C* histo = new TH2C("histo","Existing pads",90,-0.5,89.5,
24 TH2F* histo2 = new TH2F("histo2","Existing positions",950/2,0,950,
26 TCanvas* c2 = new TCanvas("c2","Only existing pads are filled");
27 TCanvas* c3 = new TCanvas("c3","Positions");
29 AliMpSectorSegmentation segmentation(sector);
32 for (Int_t irow=0;irow<sector->GetNofRows();irow++){
33 AliMpRow* row = sector->GetRow(irow);
35 for (Int_t iseg=0;iseg<row->GetNofRowSegments();iseg++){
36 AliMpVRowSegment* seg = row->GetRowSegment(iseg);
38 for (Int_t imot=0;imot<seg->GetNofMotifs();imot++){
39 AliMpMotifPosition* motifPos
40 = sector->GetMotifMap()->FindMotifPosition(seg->GetMotifPositionId(imot));
42 for (Int_t gassNum=0;gassNum<64;gassNum++){
43 if (motifPos->GetMotif()->GetMotifType()->FindConnectionByGassiNum(gassNum)){
45 AliMpPad pad = segmentation.PadByLocation(AliMpIntPair(motifPos->GetID(),gassNum));
46 if (pad != AliMpPad::Invalid()) {
47 histo->Fill (pad.GetIndices().GetFirst(),
48 pad.GetIndices().GetSecond());
49 histo2->Fill(pad.Position().X(),