2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
4 /**************************************************************************
5 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
7 * full copyright notice. *
8 **************************************************************************/
10 // AliEveTOFDigitsInfo
13 #include <TEveTreeTools.h>
15 #include "AliEveTOFDigitsInfo.h"
16 #include <AliTOFdigit.h>
17 #include <AliTOFGeometry.h>
18 //#include <AliTOFDigitMap.h>
22 //_________________________________________________________
24 ClassImp(AliEveTOFDigitsInfo)
26 AliEveTOFDigitsInfo::AliEveTOFDigitsInfo():
32 fTOFdigitMap(new AliTOFDigitMap())
34 /* ******************************************************* */
36 AliEveTOFDigitsInfo:: ~AliEveTOFDigitsInfo()
45 /* ******************************************************* */
47 void AliEveTOFDigitsInfo::SetTree(TTree* tree)
49 static const TEveException eH("AliEveTOFDigitsInfo::SetTree ");
52 fGeom = new AliTOFGeometry();
61 /* ******************************************************* */
63 void AliEveTOFDigitsInfo::LoadDigits()
66 TClonesArray *digitsTOF = 0x0;
69 fTree->SetBranchAddress("TOF",&digitsTOF);
72 Int_t vol[5] = {-1,-1,-1,-1,-1};
74 for (Int_t digitNumber=0; digitNumber<digitsTOF->GetEntries(); digitNumber++) {
76 //if (digitNumber==digitsTOF->GetEntries()-1) printf(" Hello 4 -> %3i digit of %i \n", digitNumber+1, digitsTOF->GetEntries());
78 digs = (AliTOFdigit*)digitsTOF->UncheckedAt(digitNumber);
80 vol[0] = digs->GetSector(); // Sector Number (0-17)
81 vol[1] = digs->GetPlate(); // Plate Number (0-4)
82 vol[2] = digs->GetStrip(); // Strip Number (0-14/18)
83 vol[3] = digs->GetPadx(); // TEvePad Number in x direction (0-47)
84 vol[4] = digs->GetPadz(); // TEvePad Number in z direction (0-1)
86 fTOFdigitMap->AddDigit(vol, digitNumber);
87 //if (digitNumber==digitsTOF->GetEntries()-1) printf(" I am inside LoadDigits %3i \n", digitNumber);
93 /* ******************************************************* */
95 void AliEveTOFDigitsInfo::GetDigits(Int_t nSector, Int_t nPlate,
96 Int_t nStrip, Int_t nPadZ, Int_t nPadX,
100 Int_t vol[5] = {nSector,nPlate,nStrip,nPadX,nPadZ};
102 fTOFdigitMap->GetDigitIndex(vol, indexDigit);
105 /* ******************************************************* */
107 TClonesArray* AliEveTOFDigitsInfo::GetDigits(Int_t nSector, Int_t nPlate,
111 Int_t newCounter = 0;
112 Int_t nDigitsInVolume[3] = {-1, -1, -1};
113 Int_t dummy[3] = {-1, -1, -1};
114 Int_t informations[4] = {-1, -1, -1, -1};
116 TClonesArray* digitsTOFnew = new TClonesArray("AliTOFdigit", 300);
117 TClonesArray &ldigits = *digitsTOFnew;
121 TClonesArray *digitsTOF = 0x0;
122 fTree->SetBranchAddress("TOF",&digitsTOF);
126 Int_t vol[5] = {nSector,nPlate,nStrip,-1,-1};
128 for(Int_t iPadZ=0; iPadZ<fGeom->NpadZ(); iPadZ++){
130 for(Int_t iPadX=0; iPadX<fGeom->NpadX(); iPadX++) {
133 //GetDigits(vol[0], vol[1], vol[2], vol[3], vol[4], nDigitsInVolume)
135 fTOFdigitMap->GetDigitIndex(vol, nDigitsInVolume);
137 for (Int_t ii=0; ii<3; ii++) {
139 if (nDigitsInVolume[ii]>=0 ) {
140 //printf(" nDigitsInVolume[%2i] = %3i\n ", ii, nDigitsInVolume[ii]);
141 digs = (AliTOFdigit*)digitsTOF->UncheckedAt(nDigitsInVolume[ii]);
142 informations[0] = digs->GetTdc();
143 informations[1] = digs->GetAdc();
144 informations[2] = digs->GetToT();
145 informations[3] = digs->GetTdcND();
146 new (ldigits[newCounter++]) AliTOFdigit(dummy, vol, informations);
151 for (Int_t ii=0; ii<4; ii++) informations[ii]=-1;
152 for (Int_t ii=0; ii<3; ii++) dummy[ii]=-1;
153 for (Int_t ii=0; ii<3; ii++) nDigitsInVolume[ii]=-1;
160 printf("Sector %2i Plate %1i Strip %2i -> number of digits %3i \n",
161 nSector, nPlate, nStrip, digitsTOFnew->GetEntries());
166 /* ******************************************************* */
168 TClonesArray* AliEveTOFDigitsInfo::GetDigits(Int_t nSector)
171 Int_t newCounter = 0;
172 Int_t nDigitsInVolume[3] = {-1, -1, -1};
173 Int_t dummy[3] = {-1, -1, -1};
174 Int_t informations[4] = {-1, -1, -1, -1};
178 TClonesArray* digitsTOFnew = new TClonesArray("AliTOFdigit", 300);
179 TClonesArray &ldigits = *digitsTOFnew;
183 TClonesArray *digitsTOF = 0x0;
184 fTree->SetBranchAddress("TOF",&digitsTOF);
188 Int_t vol[5] = {nSector,-1,-1,-1,-1};
190 for(Int_t iPlate=0; iPlate<fGeom->NPlates(); iPlate++){
192 if(iPlate==2) nStrips=15;
195 for(Int_t iStrip=0; iStrip<nStrips; iStrip++){
198 for(Int_t iPadZ=0; iPadZ<fGeom->NpadZ(); iPadZ++){
201 for(Int_t iPadX=0; iPadX<fGeom->NpadX(); iPadX++) {
204 //GetDigits(vol[0], vol[1], vol[2], vol[3], vol[4], nDigitsInVolume)
206 fTOFdigitMap->GetDigitIndex(vol, nDigitsInVolume);
208 for (Int_t ii=0; ii<3; ii++) {
210 if (nDigitsInVolume[ii]>=0 ) {
211 //printf(" nDigitsInVolume[%2i] = %3i\n ", ii, nDigitsInVolume[ii]);
212 digs = (AliTOFdigit*)digitsTOF->UncheckedAt(nDigitsInVolume[ii]);
213 informations[0] = digs->GetTdc();
214 informations[1] = digs->GetAdc();
215 informations[2] = digs->GetToT();
216 informations[3] = digs->GetTdcND();
217 new (ldigits[newCounter++]) AliTOFdigit(dummy, vol, informations);
222 for (Int_t ii=0; ii<4; ii++) informations[ii]=-1;
223 for (Int_t ii=0; ii<3; ii++) dummy[ii]=-1;
224 for (Int_t ii=0; ii<3; ii++) nDigitsInVolume[ii]=-1;
233 printf("Sector %2i Plate %1i Strip %2i -> number of digits %3i \n",
234 nSector, nPlate, nStrip, digitsTOFnew->GetEntries());
239 /* ******************************************************* */
241 void AliEveTOFDigitsInfo::GetDigits()
244 for (Int_t iSector=0; iSector<fGeom->NSectors(); iSector++) {
246 fNewTree = new TTree();