]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PMD/AliPMDSDigitsRead.C
coding violation warnings are removed
[u/mrichter/AliRoot.git] / PMD / AliPMDSDigitsRead.C
... / ...
CommitLineData
1// ----------------------------------------------------//
2// //
3// This is a macro to read PMD.SDigits.root //
4// //
5// ----------------------------------------------------//
6#include <Riostream.h>
7
8void AliPMDSDigitsRead(Int_t nevt = 1)
9{
10 TStopwatch timer;
11 timer.Start();
12
13 //FILE *fpw = fopen("sdigits.dat","w");
14
15 TH2F *h2 = new TH2F("h2","Y vs. X",200,-100.,100.,200,-100.,100.);
16
17 AliRunLoader *fRunLoader = AliRunLoader::Open("galice.root");
18
19 if (!fRunLoader)
20 {
21 Error("Open","Can not open session for file %s.",file);
22 }
23
24
25 Int_t nEvent = fRunLoader->GetNumberOfEvents();
26
27 fPMDLoader = fRunLoader->GetLoader("PMDLoader");
28
29 if (fPMDLoader == 0x0)
30 {
31 cerr<<"OpengAlice : Can not find PMD or PMDLoader\n";
32 }
33
34 fPMDLoader->LoadSDigits("READ");
35 TClonesArray *fSDigits = 0x0;
36
37 // -------------------------------------------------------------- //
38
39 Int_t det = 0,smn = 0;
40 Int_t xpos, ypos;
41 Int_t xpad, ypad;
42 Float_t edep;
43 Float_t xx,yy;
44
45 AliPMDUtility cc;
46
47
48 AliPMDsdigit *pmdsdigit = 0x0;
49 TBranch *branch;
50
51 if (nevt > nEvent)
52 {
53 nevt = nEvent;
54 printf("Input number is more than the number of events, set to number of events = %d\n",nevt);
55 }
56
57 for (Int_t ievt = 0; ievt <nevt; ievt++)
58 {
59 fRunLoader->GetEvent(ievt);
60 fTreeS = fPMDLoader->TreeS();
61 if (fTreeS == 0x0)
62 {
63 cout << " Can not get TreeD" << endl;
64 }
65
66 branch = fTreeS->GetBranch("PMDSDigit");
67 branch->SetAddress(&fSDigits);
68
69 Int_t nmodules = (Int_t) fTreeS->GetEntries();
70
71 for (Int_t imodule = 0; imodule < nmodules; imodule++)
72 {
73 fTreeS->GetEntry(imodule);
74 Int_t nentries = fSDigits->GetLast();
75 for (Int_t ient = 0; ient < nentries+1; ient++)
76 {
77 pmdsdigit = (AliPMDsdigit*)fSDigits->UncheckedAt(ient);
78
79 det = pmdsdigit->GetDetector();
80 smn = pmdsdigit->GetSMNumber();
81 xpos = pmdsdigit->GetRow();
82 ypos = pmdsdigit->GetColumn();
83 edep = pmdsdigit->GetCellEdep();
84 Int_t trno = pmdsdigit->GetTrackNumber();
85
86 //if (ievt == 0) fprintf(fpw,"Track # = %d\n",trno);
87
88 if(smn <12)
89 {
90 xpad = ypos;
91 ypad = xpos;
92 }
93 else if(smn >=12 && smn < 24)
94 {
95 xpad = xpos;
96 ypad = ypos;
97 }
98
99 if(det == 1)
100 {
101 cc.RectGeomCellPos(smn,xpad,ypad,xx,yy);
102 h2->Fill(xx,yy);
103 }
104 }
105 } // modules
106
107 }
108 h2->Draw();
109
110 timer.Stop();
111 timer.Print();
112}
113