Include the new TRD classes
[u/mrichter/AliRoot.git] / TRD / slowDigitsAna.C
CommitLineData
d5a17faf 1void slowDigitsAna() {
5c7f4665 2
3/////////////////////////////////////////////////////////////////////////
4//
5// Example macro for the analysis of the TRD digits and the use
6// of the AliTRDmatrix class.
7//
8/////////////////////////////////////////////////////////////////////////
9
10 // Dynamically link some shared libs
11 if (gClassTable->GetID("AliRun") < 0) {
12 gROOT->LoadMacro("loadlibs.C");
13 loadlibs();
14 }
15
16 // Input file name
851d3db9 17 Char_t *alifile = "galice_d_v1.root";
5c7f4665 18
19 // Event number
20 Int_t nEvent = 0;
21
22 // Define the objects
851d3db9 23 AliTRDv1 *TRD;
24 AliTRDgeometry *TRDgeometry;
5c7f4665 25
26 // Connect the AliRoot file containing Geometry, Kine, Hits, and Digits
27 TFile *gafl = (TFile*) gROOT->GetListOfFiles()->FindObject(alifile);
28 if (!gafl) {
29 cout << "Open the ALIROOT-file " << alifile << endl;
30 gafl = new TFile(alifile);
31 }
32 else {
33 cout << alifile << " is already open" << endl;
34 }
35
36 // Get AliRun object from file or create it if not on file
851d3db9 37 gAlice = (AliRun*) gafl->Get("gAlice");
38 if (gAlice)
39 cout << "AliRun object found on file" << endl;
40 else
41 gAlice = new AliRun("gAlice","Alice test program");
5c7f4665 42
43 // Import the Trees for the event nEvent in the file
44 Int_t nparticles = gAlice->GetEvent(nEvent);
45 if (nparticles <= 0) break;
46
5c7f4665 47 // Get the pointer to the detector classes
48 TRD = (AliTRDv1*) gAlice->GetDetector("TRD");
851d3db9 49 // Get the pointer to the digits container and the geometry
50 if (TRD) {
51 TRDgeometry = TRD->GetGeometry();
52 }
53 else {
54 cout << "Cannot find the geometry" << endl;
55 break;
56 }
5c7f4665 57
851d3db9 58 // Define the segment array for the digits
59 AliTRDsegmentArray *DigitsArray = new AliTRDsegmentArray(540);
5c7f4665 60
851d3db9 61 // Load the digits from the tree
62 DigitsArray->LoadArray("TRDdigits");
63
64 // Define the detector matrix for one chamber
65 const Int_t iSec = 13;
5c7f4665 66 const Int_t iCha = 3;
851d3db9 67 const Int_t iPla = 3;
68 Int_t rowMax = TRDgeometry->GetRowMax(iPla,iCha,iSec);
69 Int_t colMax = TRDgeometry->GetColMax(iPla);
70 Int_t timeMax = TRDgeometry->GetTimeMax();
71 cout << "Geometry: rowMax = " << rowMax
72 << " colMax = " << colMax
73 << " timeMax = " << timeMax << endl;
74 AliTRDmatrix *TRDmatrix = new AliTRDmatrix(rowMax,colMax,timeMax,iSec,iCha,iPla);
75
76 // Get the digits for this detector
77 Int_t iDet = TRDgeometry->GetDetector(iPla,iCha,iSec);
78 AliTRDdataArray *Digits = (AliTRDdataArray *) DigitsArray->At(iDet);
79 Digits->Dump();
80 // Expand the digits array
81 //Digits->Expand();
82
83 //Float_t signal = Digits->GetData(0,0,29);
84
85 // Loop through the detector pixel
86 for (Int_t time = 0; time < timeMax; time++) {
87 for (Int_t col = 0; col < colMax; col++) {
88 for (Int_t row = 0; row < rowMax; row++) {
89
90 Float_t signal = Digits->GetData(row,col,time);
91 if (signal != 0) {
92 }
93 TRDmatrix->SetSignal(row,col,time,signal);
5c7f4665 94
851d3db9 95 }
5c7f4665 96 }
5c7f4665 97 }
98
99 // Display the detector matrix
851d3db9 100 TRDmatrix->Draw();
101 TRDmatrix->DrawRow(18);
102 TRDmatrix->DrawCol(58);
103 TRDmatrix->DrawTime(20);
5c7f4665 104
105}