]>
Commit | Line | Data |
---|---|---|
d5a17faf | 1 | void digitsAna () { |
99d5402e | 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 | |
d5a17faf | 17 | Char_t *alifile = "galice_v1.root"; |
99d5402e | 18 | |
19 | // Event number | |
20 | Int_t nEvent = 0; | |
21 | ||
22 | // Define the objects | |
d5a17faf | 23 | AliTRDv1 *TRD; |
99d5402e | 24 | TClonesArray *TRDDigits; |
25 | AliTRDdigit *OneTRDDigit; | |
26 | ||
27 | // Connect the AliRoot file containing Geometry, Kine, Hits, and Digits | |
28 | TFile *gafl = (TFile*) gROOT->GetListOfFiles()->FindObject(alifile); | |
29 | if (!gafl) { | |
30 | cout << "Open the ALIROOT-file " << alifile << endl; | |
31 | gafl = new TFile(alifile); | |
32 | } | |
33 | else { | |
34 | cout << alifile << " is already open" << endl; | |
35 | } | |
36 | ||
37 | // Get AliRun object from file or create it if not on file | |
38 | if (!gAlice) { | |
39 | gAlice = (AliRun*) gafl->Get("gAlice"); | |
40 | if (gAlice) | |
41 | cout << "AliRun object found on file" << endl; | |
42 | else | |
43 | gAlice = new AliRun("gAlice","Alice test program"); | |
44 | } | |
45 | ||
46 | // Import the Trees for the event nEvent in the file | |
47 | Int_t nparticles = gAlice->GetEvent(nEvent); | |
48 | if (nparticles <= 0) break; | |
49 | ||
50 | // Get the pointer to the hit-tree | |
51 | TTree *DigitsTree = gAlice->TreeD(); | |
52 | ||
53 | // Get the pointer to the detector classes | |
d5a17faf | 54 | TRD = (AliTRDv1*) gAlice->GetDetector("TRD"); |
99d5402e | 55 | // Get the pointer to the hit container |
56 | if (TRD) TRDDigits = TRD->Digits(); | |
57 | ||
58 | // Define the detector matrix for one chamber (Sector 6, Chamber 3, Plane 1) | |
59 | const Int_t iSec = 6; | |
60 | const Int_t iCha = 3; | |
61 | const Int_t iPla = 1; | |
62 | Int_t rowMax = TRD->GetRowMax(iPla,iCha); | |
63 | Int_t colMax = TRD->GetColMax(iPla); | |
64 | Int_t timeMax = TRD->GetTimeMax(); | |
65 | cout << " rowMax = " << rowMax | |
66 | << " colMax = " << colMax | |
67 | << " timeMax = " << timeMax << endl; | |
68 | AliTRDmatrix *TRDMatrix = new AliTRDmatrix(rowMax,colMax,timeMax,iSec,iCha,iPla); | |
69 | ||
70 | Int_t nEntries = DigitsTree->GetEntries(); | |
71 | cout << "Number of entries in digits tree = " << nEntries << endl; | |
72 | ||
73 | // Loop through all entries in the tree | |
74 | Int_t nbytes; | |
75 | for (Int_t iEntry = 0; iEntry < nEntries; iEntry++) { | |
76 | ||
77 | cout << "iEntry = " << iEntry << endl; | |
78 | ||
79 | // Import the tree | |
80 | gAlice->ResetDigits(); | |
81 | nbytes += DigitsTree->GetEvent(iEntry); | |
82 | ||
83 | // Get the number of digits in the detector | |
84 | Int_t nTRDDigits = TRDDigits->GetEntriesFast(); | |
85 | cout << " nTRDDigits = " << nTRDDigits << endl; | |
86 | ||
87 | // Loop through all TRD digits | |
88 | for (Int_t iTRDDigits = 0; iTRDDigits < nTRDDigits; iTRDDigits++) { | |
89 | ||
90 | // Get the information for this digit | |
91 | OneTRDDigit = (AliTRDdigit*) TRDDigits->UncheckedAt(iTRDDigits); | |
92 | Int_t signal = OneTRDDigit->fSignal; | |
93 | Int_t sector = OneTRDDigit->fSector; | |
94 | Int_t chamber = OneTRDDigit->fChamber; | |
95 | Int_t plane = OneTRDDigit->fPlane; | |
96 | Int_t row = OneTRDDigit->fRow; | |
97 | Int_t col = OneTRDDigit->fCol; | |
98 | Int_t time = OneTRDDigit->fTime; | |
99 | ||
100 | // Fill the detector matrix | |
101 | if (signal > 1) { | |
102 | TRDMatrix->SetSignal(row,col,time,signal); | |
103 | } | |
104 | ||
105 | } | |
106 | ||
107 | } | |
108 | ||
109 | // Display the detector matrix | |
110 | TRDMatrix->Draw(); | |
111 | TRDMatrix->DrawRow(18); | |
112 | TRDMatrix->DrawCol(58); | |
113 | TRDMatrix->DrawTime(20); | |
114 | ||
115 | } |