5 #include <Reve/TTreeTools.h>
7 #include "TOFDigitsInfo.h"
8 #include <AliTOFdigit.h>
9 #include <AliTOFGeometry.h>
10 //#include <AliTOFDigitMap.h>
13 using namespace Alieve;
16 //_________________________________________________________
18 ClassImp(TOFDigitsInfo)
20 TOFDigitsInfo::TOFDigitsInfo():
26 fTOFdigitMap(new AliTOFDigitMap())
28 /* ******************************************************* */
30 TOFDigitsInfo:: ~TOFDigitsInfo()
39 /* ******************************************************* */
41 void TOFDigitsInfo::SetTree(TTree* tree)
43 static const Exc_t eH("TOFDigitsInfo::SetTree ");
46 fGeom = new AliTOFGeometry();
55 /* ******************************************************* */
57 void TOFDigitsInfo::LoadDigits()
60 TClonesArray *digitsTOF = 0x0;
63 fTree->SetBranchAddress("TOF",&digitsTOF);
66 Int_t vol[5] = {-1,-1,-1,-1,-1};
68 for (Int_t digitNumber=0; digitNumber<digitsTOF->GetEntries(); digitNumber++) {
70 //if (digitNumber==digitsTOF->GetEntries()-1) printf(" Hello 4 -> %3i digit of %i \n", digitNumber+1, digitsTOF->GetEntries());
72 digs = (AliTOFdigit*)digitsTOF->UncheckedAt(digitNumber);
74 vol[0] = digs->GetSector(); // Sector Number (0-17)
75 vol[1] = digs->GetPlate(); // Plate Number (0-4)
76 vol[2] = digs->GetStrip(); // Strip Number (0-14/18)
77 vol[3] = digs->GetPadx(); // Pad Number in x direction (0-47)
78 vol[4] = digs->GetPadz(); // Pad Number in z direction (0-1)
80 fTOFdigitMap->AddDigit(vol, digitNumber);
81 //if (digitNumber==digitsTOF->GetEntries()-1) printf(" I am inside LoadDigits %3i \n", digitNumber);
87 /* ******************************************************* */
89 void TOFDigitsInfo::GetDigits(Int_t nSector, Int_t nPlate,
90 Int_t nStrip, Int_t nPadZ, Int_t nPadX,
94 Int_t vol[5] = {nSector,nPlate,nStrip,nPadX,nPadZ};
96 fTOFdigitMap->GetDigitIndex(vol, indexDigit);
99 /* ******************************************************* */
101 TClonesArray* TOFDigitsInfo::GetDigits(Int_t nSector, Int_t nPlate,
105 Int_t newCounter = 0;
106 Int_t nDigitsInVolume[3] = {-1, -1, -1};
107 Int_t dummy[3] = {-1, -1, -1};
108 Int_t informations[4] = {-1, -1, -1, -1};
110 TClonesArray* digitsTOFnew = new TClonesArray("AliTOFdigit", 300);
111 TClonesArray &ldigits = *digitsTOFnew;
115 TClonesArray *digitsTOF = 0x0;
116 fTree->SetBranchAddress("TOF",&digitsTOF);
120 Int_t vol[5] = {nSector,nPlate,nStrip,-1,-1};
122 for(Int_t iPadZ=0; iPadZ<fGeom->NpadZ(); iPadZ++){
124 for(Int_t iPadX=0; iPadX<fGeom->NpadX(); iPadX++) {
127 //GetDigits(vol[0], vol[1], vol[2], vol[3], vol[4], nDigitsInVolume)
129 fTOFdigitMap->GetDigitIndex(vol, nDigitsInVolume);
131 for (Int_t ii=0; ii<3; ii++) {
133 if (nDigitsInVolume[ii]>=0 ) {
134 //printf(" nDigitsInVolume[%2i] = %3i\n ", ii, nDigitsInVolume[ii]);
135 digs = (AliTOFdigit*)digitsTOF->UncheckedAt(nDigitsInVolume[ii]);
136 informations[0] = digs->GetTdc();
137 informations[1] = digs->GetAdc();
138 informations[2] = digs->GetToT();
139 informations[3] = digs->GetTdcND();
140 new (ldigits[newCounter++]) AliTOFdigit(dummy, vol, informations);
145 for (Int_t ii=0; ii<4; ii++) informations[ii]=-1;
146 for (Int_t ii=0; ii<3; ii++) dummy[ii]=-1;
147 for (Int_t ii=0; ii<3; ii++) nDigitsInVolume[ii]=-1;
154 printf("Sector %2i Plate %1i Strip %2i -> number of digits %3i \n",
155 nSector, nPlate, nStrip, digitsTOFnew->GetEntries());
160 /* ******************************************************* */
162 TClonesArray* TOFDigitsInfo::GetDigits(Int_t nSector)
165 Int_t newCounter = 0;
166 Int_t nDigitsInVolume[3] = {-1, -1, -1};
167 Int_t dummy[3] = {-1, -1, -1};
168 Int_t informations[4] = {-1, -1, -1, -1};
172 TClonesArray* digitsTOFnew = new TClonesArray("AliTOFdigit", 300);
173 TClonesArray &ldigits = *digitsTOFnew;
177 TClonesArray *digitsTOF = 0x0;
178 fTree->SetBranchAddress("TOF",&digitsTOF);
182 Int_t vol[5] = {nSector,-1,-1,-1,-1};
184 for(Int_t iPlate=0; iPlate<fGeom->NPlates(); iPlate++){
186 if(iPlate==2) nStrips=15;
189 for(Int_t iStrip=0; iStrip<nStrips; iStrip++){
192 for(Int_t iPadZ=0; iPadZ<fGeom->NpadZ(); iPadZ++){
195 for(Int_t iPadX=0; iPadX<fGeom->NpadX(); iPadX++) {
198 //GetDigits(vol[0], vol[1], vol[2], vol[3], vol[4], nDigitsInVolume)
200 fTOFdigitMap->GetDigitIndex(vol, nDigitsInVolume);
202 for (Int_t ii=0; ii<3; ii++) {
204 if (nDigitsInVolume[ii]>=0 ) {
205 //printf(" nDigitsInVolume[%2i] = %3i\n ", ii, nDigitsInVolume[ii]);
206 digs = (AliTOFdigit*)digitsTOF->UncheckedAt(nDigitsInVolume[ii]);
207 informations[0] = digs->GetTdc();
208 informations[1] = digs->GetAdc();
209 informations[2] = digs->GetToT();
210 informations[3] = digs->GetTdcND();
211 new (ldigits[newCounter++]) AliTOFdigit(dummy, vol, informations);
216 for (Int_t ii=0; ii<4; ii++) informations[ii]=-1;
217 for (Int_t ii=0; ii<3; ii++) dummy[ii]=-1;
218 for (Int_t ii=0; ii<3; ii++) nDigitsInVolume[ii]=-1;
227 printf("Sector %2i Plate %1i Strip %2i -> number of digits %3i \n",
228 nSector, nPlate, nStrip, digitsTOFnew->GetEntries());
233 /* ******************************************************* */
235 void TOFDigitsInfo::GetDigits()
238 for (Int_t iSector=0; iSector<fGeom->NSectors(); iSector++) {
240 fNewTree = new TTree();