]>
Commit | Line | Data |
---|---|---|
63192539 | 1 | // fV0CHeight1 = 2.5; // height of cell 1 |
2 | // fV0CHeight2 = 4.4; // height of cell 2 | |
3 | // fV0CHeight3 = 7.4; // height of cell 3 | |
4 | // fV0CHeight4 = 12.5; // height of cell 4 | |
5 | // fV0CRMin = 4.6; // inner radius of box | |
6 | ||
7 | // fV0AR0 = 4.2; // Radius of hole | |
8 | // fV0AR1 = 7.6; // Maximun radius of 1st cell | |
9 | // fV0AR2 = 13.8; // Maximun radius of 2nd cell | |
10 | // fV0AR3 = 22.7; // Maximun radius of 3rd cell | |
11 | // fV0AR4 = 41.3; // Maximun radius of 4th cell | |
12 | ||
13 | void vzero_digits() | |
14 | { | |
15 | static const Float_t RadC[] = { 4.6, 7.1, 11.5, 18.9, 31.4 }; | |
16 | static const Float_t RadA[] = { 4.2, 7.6, 13.8, 22.7, 41.4 }; | |
17 | static const Float_t RadEps = 0.4; | |
18 | static const Float_t PhiEps = 0.025; | |
19 | static const Float_t PhiStp = TMath::TwoPi()/8.0; | |
20 | ||
21 | gStyle->SetPalette(1, 0); | |
22 | ||
23 | AliRunLoader* rl = Alieve::Event::AssertRunLoader(); | |
24 | rl->LoadDigits("VZERO"); | |
25 | ||
26 | TTree* dt = rl->GetTreeD("VZERO", false); | |
27 | TClonesArray* dca = 0; | |
28 | dt->SetBranchAddress("VZERODigit", &dca); | |
29 | dt->GetEntry(0); | |
30 | ||
31 | Float_t v[12]; | |
32 | ||
84aff7a4 | 33 | TEveQuadSet* modR = new TEveQuadSet("V0R"); |
34 | modR->Reset(TEveQuadSet::kQT_FreeQuad, kFALSE, 32); | |
63192539 | 35 | |
84aff7a4 | 36 | TEveQuadSet* modL = new TEveQuadSet("V0L"); |
37 | modL->Reset(TEveQuadSet::kQT_FreeQuad, kFALSE, 32); | |
63192539 | 38 | |
39 | Int_t numEntr = dca->GetEntriesFast(); | |
40 | for (Int_t entr=0; entr<numEntr; ++entr) | |
41 | { | |
42 | AliVZEROdigit* d = (AliVZEROdigit*) dca->UncheckedAt(entr); | |
43 | Int_t i = d->PMNumber(); | |
44 | ||
45 | if (i < 32) // V0 Right | |
46 | { | |
84aff7a4 | 47 | TEveQuadSet* module = modR; |
63192539 | 48 | Int_t ri = i / 8; |
49 | Int_t pi = i % 8; | |
50 | Float_t minR = RadC[ri] + RadEps, maxR = RadC[ri+1] - RadEps; | |
51 | Float_t minP = pi*PhiStp + PhiEps, maxP = (pi+1)*PhiStp - PhiEps; | |
52 | ||
53 | v[ 0] = minR*TMath::Cos(minP); v[ 1] = minR*TMath::Sin(minP); v[ 2] = 0; | |
54 | v[ 3] = maxR*TMath::Cos(minP); v[ 4] = maxR*TMath::Sin(minP); v[ 5] = 0; | |
55 | v[ 6] = maxR*TMath::Cos(maxP); v[ 7] = maxR*TMath::Sin(maxP); v[ 8] = 0; | |
56 | v[ 9] = minR*TMath::Cos(maxP); v[10] = minR*TMath::Sin(maxP); v[11] = 0; | |
57 | ||
58 | module->AddQuad(v); | |
59 | module->QuadValue(d->ADC()); | |
60 | module->QuadId(d); | |
61 | } | |
62 | else // V0 Left | |
63 | { | |
84aff7a4 | 64 | TEveQuadSet* module = modL; |
63192539 | 65 | Int_t ri = (i-32) / 8; |
66 | Int_t pi = i % 8; | |
67 | Float_t minR = RadA[ri] + RadEps, maxR = RadA[ri+1] - RadEps; | |
68 | Float_t minP = pi*PhiStp + PhiEps, maxP = (pi+1)*PhiStp - PhiEps; | |
69 | ||
70 | v[ 0] = minR*TMath::Cos(minP); v[ 1] = minR*TMath::Sin(minP); v[ 2] = 0; | |
71 | v[ 3] = maxR*TMath::Cos(minP); v[ 4] = maxR*TMath::Sin(minP); v[ 5] = 0; | |
72 | v[ 6] = maxR*TMath::Cos(maxP); v[ 7] = maxR*TMath::Sin(maxP); v[ 8] = 0; | |
73 | v[ 9] = minR*TMath::Cos(maxP); v[10] = minR*TMath::Sin(maxP); v[11] = 0; | |
74 | ||
75 | module->AddQuad(v); | |
76 | module->QuadValue(d->ADC()); | |
77 | module->QuadId(d); | |
78 | } | |
79 | } | |
80 | ||
81 | modL->RefHMTrans().SetPos(0, 0, 324); | |
82 | modR->RefHMTrans().SetPos(0, 0, -84); | |
83 | ||
84aff7a4 | 84 | gEve->AddElement(modL); |
85 | gEve->AddElement(modR); | |
63192539 | 86 | |
84aff7a4 | 87 | gEve->Redraw3D(); |
63192539 | 88 | } |