5 #include <TEveTreeTools.h>
7 #include "TOFDigitsInfo.h"
8 #include <AliTOFdigit.h>
9 #include <AliTOFGeometry.h>
10 //#include <AliTOFDigitMap.h>
11 using namespace Alieve;
14 //_________________________________________________________
16 ClassImp(TOFDigitsInfo)
18 TOFDigitsInfo::TOFDigitsInfo():
24 fTOFdigitMap(new AliTOFDigitMap())
26 /* ******************************************************* */
28 TOFDigitsInfo:: ~TOFDigitsInfo()
37 /* ******************************************************* */
39 void TOFDigitsInfo::SetTree(TTree* tree)
41 static const TEveException eH("TOFDigitsInfo::SetTree ");
44 fGeom = new AliTOFGeometry();
53 /* ******************************************************* */
55 void TOFDigitsInfo::LoadDigits()
58 TClonesArray *digitsTOF = 0x0;
61 fTree->SetBranchAddress("TOF",&digitsTOF);
64 Int_t vol[5] = {-1,-1,-1,-1,-1};
66 for (Int_t digitNumber=0; digitNumber<digitsTOF->GetEntries(); digitNumber++) {
68 //if (digitNumber==digitsTOF->GetEntries()-1) printf(" Hello 4 -> %3i digit of %i \n", digitNumber+1, digitsTOF->GetEntries());
70 digs = (AliTOFdigit*)digitsTOF->UncheckedAt(digitNumber);
72 vol[0] = digs->GetSector(); // Sector Number (0-17)
73 vol[1] = digs->GetPlate(); // Plate Number (0-4)
74 vol[2] = digs->GetStrip(); // Strip Number (0-14/18)
75 vol[3] = digs->GetPadx(); // TEvePad Number in x direction (0-47)
76 vol[4] = digs->GetPadz(); // TEvePad Number in z direction (0-1)
78 fTOFdigitMap->AddDigit(vol, digitNumber);
79 //if (digitNumber==digitsTOF->GetEntries()-1) printf(" I am inside LoadDigits %3i \n", digitNumber);
85 /* ******************************************************* */
87 void TOFDigitsInfo::GetDigits(Int_t nSector, Int_t nPlate,
88 Int_t nStrip, Int_t nPadZ, Int_t nPadX,
92 Int_t vol[5] = {nSector,nPlate,nStrip,nPadX,nPadZ};
94 fTOFdigitMap->GetDigitIndex(vol, indexDigit);
97 /* ******************************************************* */
99 TClonesArray* TOFDigitsInfo::GetDigits(Int_t nSector, Int_t nPlate,
103 Int_t newCounter = 0;
104 Int_t nDigitsInVolume[3] = {-1, -1, -1};
105 Int_t dummy[3] = {-1, -1, -1};
106 Int_t informations[4] = {-1, -1, -1, -1};
108 TClonesArray* digitsTOFnew = new TClonesArray("AliTOFdigit", 300);
109 TClonesArray &ldigits = *digitsTOFnew;
113 TClonesArray *digitsTOF = 0x0;
114 fTree->SetBranchAddress("TOF",&digitsTOF);
118 Int_t vol[5] = {nSector,nPlate,nStrip,-1,-1};
120 for(Int_t iPadZ=0; iPadZ<fGeom->NpadZ(); iPadZ++){
122 for(Int_t iPadX=0; iPadX<fGeom->NpadX(); iPadX++) {
125 //GetDigits(vol[0], vol[1], vol[2], vol[3], vol[4], nDigitsInVolume)
127 fTOFdigitMap->GetDigitIndex(vol, nDigitsInVolume);
129 for (Int_t ii=0; ii<3; ii++) {
131 if (nDigitsInVolume[ii]>=0 ) {
132 //printf(" nDigitsInVolume[%2i] = %3i\n ", ii, nDigitsInVolume[ii]);
133 digs = (AliTOFdigit*)digitsTOF->UncheckedAt(nDigitsInVolume[ii]);
134 informations[0] = digs->GetTdc();
135 informations[1] = digs->GetAdc();
136 informations[2] = digs->GetToT();
137 informations[3] = digs->GetTdcND();
138 new (ldigits[newCounter++]) AliTOFdigit(dummy, vol, informations);
143 for (Int_t ii=0; ii<4; ii++) informations[ii]=-1;
144 for (Int_t ii=0; ii<3; ii++) dummy[ii]=-1;
145 for (Int_t ii=0; ii<3; ii++) nDigitsInVolume[ii]=-1;
152 printf("Sector %2i Plate %1i Strip %2i -> number of digits %3i \n",
153 nSector, nPlate, nStrip, digitsTOFnew->GetEntries());
158 /* ******************************************************* */
160 TClonesArray* TOFDigitsInfo::GetDigits(Int_t nSector)
163 Int_t newCounter = 0;
164 Int_t nDigitsInVolume[3] = {-1, -1, -1};
165 Int_t dummy[3] = {-1, -1, -1};
166 Int_t informations[4] = {-1, -1, -1, -1};
170 TClonesArray* digitsTOFnew = new TClonesArray("AliTOFdigit", 300);
171 TClonesArray &ldigits = *digitsTOFnew;
175 TClonesArray *digitsTOF = 0x0;
176 fTree->SetBranchAddress("TOF",&digitsTOF);
180 Int_t vol[5] = {nSector,-1,-1,-1,-1};
182 for(Int_t iPlate=0; iPlate<fGeom->NPlates(); iPlate++){
184 if(iPlate==2) nStrips=15;
187 for(Int_t iStrip=0; iStrip<nStrips; iStrip++){
190 for(Int_t iPadZ=0; iPadZ<fGeom->NpadZ(); iPadZ++){
193 for(Int_t iPadX=0; iPadX<fGeom->NpadX(); iPadX++) {
196 //GetDigits(vol[0], vol[1], vol[2], vol[3], vol[4], nDigitsInVolume)
198 fTOFdigitMap->GetDigitIndex(vol, nDigitsInVolume);
200 for (Int_t ii=0; ii<3; ii++) {
202 if (nDigitsInVolume[ii]>=0 ) {
203 //printf(" nDigitsInVolume[%2i] = %3i\n ", ii, nDigitsInVolume[ii]);
204 digs = (AliTOFdigit*)digitsTOF->UncheckedAt(nDigitsInVolume[ii]);
205 informations[0] = digs->GetTdc();
206 informations[1] = digs->GetAdc();
207 informations[2] = digs->GetToT();
208 informations[3] = digs->GetTdcND();
209 new (ldigits[newCounter++]) AliTOFdigit(dummy, vol, informations);
214 for (Int_t ii=0; ii<4; ii++) informations[ii]=-1;
215 for (Int_t ii=0; ii<3; ii++) dummy[ii]=-1;
216 for (Int_t ii=0; ii<3; ii++) nDigitsInVolume[ii]=-1;
225 printf("Sector %2i Plate %1i Strip %2i -> number of digits %3i \n",
226 nSector, nPlate, nStrip, digitsTOFnew->GetEntries());
231 /* ******************************************************* */
233 void TOFDigitsInfo::GetDigits()
236 for (Int_t iSector=0; iSector<fGeom->NSectors(); iSector++) {
238 fNewTree = new TTree();