]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/macros/testMotifTypeIterators.C
mapping/AliMpPlaneSegmentation.cxx
[u/mrichter/AliRoot.git] / MUON / mapping / macros / testMotifTypeIterators.C
CommitLineData
66e0997c 1// $Id$
2//
3// Test macro for reading motif type data and iterate over them.
4
5void testMotifTypeIterators(AliMpStationType station = kStation1,
6 AliMpPlaneType plane = kBendingPlane)
7{
72d8f376 8 TString names;
9 TString names2;
10 Int_t nv =0;
11 if ( station == kStation1 )
12 if ( plane == kBendingPlane )
13 names ="ABCDEFGHI";
14 else
15 names = "ABCDEFGHIJKLMN";
16 else if ( station == kStation2 )
17 if ( plane == kBendingPlane ) {
18 names ="ABCDEFGHIJKLMNOPQRSTUVWXY";
19 names2 ="abcdefghimnptuvvvvv";
20 nv = 5;
21 }
22 else {
23 names = "ABCDEFGHIIJKLMN";
24 names2 ="abcdefgijklmnopqrstuwvvvvvv";
25 nv = 6;
26 }
27 Int_t nofMotifs = names.Length() + names2.Length();
28 // cout << " nofMotifs: " << nofMotifs << endl;
66e0997c 29
30 TH2C* histos[] = new TH2C* [names.Length()];
72d8f376 31 TCanvas* canv[] = new TCanvas* [1+(nofMotifs-1)/4];
66e0997c 32 Int_t i;
72d8f376 33 for (i=0;i<1+(nofMotifs-1)/4;++i){
66e0997c 34 // canv[i] = new TCanvas(Form("canv%d",i),"Iterator viewing...");
35 // CINT limitation on DEC
36
37 TString cname("canv"); cname += i;
38 canv[i] = new TCanvas(cname.Data(),"Iterator viewing...");
39
40 canv[i]->Divide(2,2);
41 }
42
43 AliMpReader r(station, plane);
44 //r.SetVerboseLevel(2);
45
72d8f376 46 for (i=0;i<nofMotifs;++i){
47
48 // Get motif name
49 TString mname;
50 if (i<names.Length())
51 mname = names(i, 1);
52 else {
53 mname = names2(i-names.Length(), 1);
54 if (mname == "v")
55 mname += i - names.Length() - (names2.Length()-nv-1);
56 else
57 mname += "1";
58 }
59 // if (i==36) continue;
60 // break for these motifs (St2, BP) - to be investigated
61
62 AliMpMotifType *mt = r.BuildMotifType(mname);
63
66e0997c 64 canv[i/4]->cd(1+ (i%4));
65 //histos[i] = new TH2C(Form("h%d",i),Form("Motif type %c",names[i]),
66 // mt->GetNofPadsX(),-0.5,mt->GetNofPadsX()-0.5,
67 // mt->GetNofPadsY(),-0.5,mt->GetNofPadsY()-0.5);
68 // CINT limitation on DEC
69
70 TString hname("h"); hname += i;
66e0997c 71
72 histos[i] = new TH2C(hname.Data(), mname.Data(),
73 mt->GetNofPadsX(),-0.5,mt->GetNofPadsX()-0.5,
74 mt->GetNofPadsY(),-0.5,mt->GetNofPadsY()-0.5);
75
76 cout<<"Motif Type "<<mt->GetID()<<endl;
77 cout<<"--------------------------------"<<endl;
78 Int_t num=0;
79
80 AliMpMotifTypePadIterator it = AliMpMotifTypePadIterator(mt);
81
82 for (it.First(); ! it.IsDone(); it.Next()) {
83 cout << "Iterator " << num << ' '<< it.CurrentItem().GetIndices() << endl;
84 ++num;
85 histos[i]->Fill(it.CurrentItem().GetIndices().GetFirst(),
86 it.CurrentItem().GetIndices().GetSecond(),num);
87 }
88
89 delete mt;
66e0997c 90 histos[i]->Draw("text");
91 canv[i/4]->Update();
66e0997c 92 }
93}