1 //_________________________________________________________________________
2 // TOF digit: member variables
3 // fSector : TOF sector
5 // fStrip : strips number
6 // fPadx : pad number along x
7 // fPadz : pad number along z
11 // Getters, setters and member functions defined here
13 //*-- Authors: F. Pierella, A. Seganti, D. Vicinanza
16 /**************************************************************************
17 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
19 * Author: The ALICE Off-line Project. *
20 * Contributors are mentioned in the code where appropriate. *
22 * Permission to use, copy, modify and distribute this software and its *
23 * documentation strictly for non-commercial purposes is hereby granted *
24 * without fee, provided that the above copyright notice appears in all *
25 * copies and that both the copyright notice and this permission notice *
26 * appear in the supporting documentation. The authors make no claims *
27 * about the suitability of this software for any purpose. It is *
28 * provided "as is" without express or implied warranty. *
29 **************************************************************************/
34 #include "AliTOFdigit.h"
40 //______________________________________________________________________________
41 AliTOFdigit::AliTOFdigit(Int_t *tracks, Int_t *vol,Float_t *digit)
45 // Constructor of digit object
56 //____________________________________________________________________________
57 AliTOFdigit::AliTOFdigit(const AliTOFdigit & digit)
60 // copy ctor for AliTOFdigit object
64 for ( i = 0; i < 3 ; i++)
65 fTracks[i] = digit.fTracks[i] ;
66 fSector = digit.fSector;
67 fPlate = digit.fPlate;
68 fStrip = digit.fStrip;
76 //______________________________________________________________________________
77 AliTOFdigit::AliTOFdigit(Int_t sector, Int_t plate, Int_t strip, Int_t padx,
78 Int_t padz, Float_t tdc, Float_t adc)
81 // Constructor for sdigit
92 //______________________________________________________________________________
93 void AliTOFdigit::GetLocation(Int_t *Loc) const
96 // Get the cohordinates of the digit
97 // in terms of Sector - Plate - Strip - Pad
107 //______________________________________________________________________________
108 Int_t AliTOFdigit::GetTotPad() const
111 // Get the "total" index of the pad inside a Sector
112 // starting from the digits data.
118 tof =(AliTOF*) gAlice->GetDetector("TOF");
120 printf("AliTOFdigit::GetTotPad - No AliRun object present, exiting");
124 Int_t pad = fPadx+tof->GetNpadX()*(fPadz-1);
130 case 2: before = tof->GetNStripC();
132 case 3: before = tof->GetNStripB() + tof->GetNStripC();
134 case 4: before = tof->GetNStripA() + tof->GetNStripB() + tof->GetNStripC();
136 case 5: before = tof->GetNStripA() + 2*tof->GetNStripB() + tof->GetNStripC();
140 Int_t strip = fStrip+before;
141 Int_t padTot = tof->GetPadXStr()*(strip-1)+pad;
145 //______________________________________________________________________________
146 void AliTOFdigit::AddTrack(Int_t track)
149 // Add a new and different track to the digit
151 if (track==fTracks[0] || track==fTracks[1] || track==fTracks[2]) return;
154 }else if (fTracks[2]==0){
157 // printf("AliTOFdigit::AddTrack ERROR: Too many Tracks (>3) \n");
161 // Overloading of Streaming, Sum and Comparison operators
163 //______________________________________________________________________________
164 Bool_t AliTOFdigit::operator==(AliTOFdigit const &digit) const
167 // Overloading of Comparison operator
169 if (fSector==digit.fSector &&
170 fPlate==digit.fPlate &&
171 fStrip==digit.fStrip &&
172 fPadx==digit.fPadx &&
173 fPadz==digit.fPadz &&
175 fAdc==digit.fAdc) return kTRUE;
179 //______________________________________________________________________________
180 AliTOFdigit& AliTOFdigit::operator+(AliTOFdigit const &digit)
183 // Overloading of Sum operator
184 // Note: Some convolution
185 // between the two digit variables has to be inserted
187 if (fSector==digit.fSector &&
188 fPlate==digit.fPlate &&
189 fStrip==digit.fStrip &&
190 fPadx==digit.fPadx &&
191 fPadz==digit.fPadz) {
192 // convolution to be inserted here
196 AliTOFdigit(fSector,fPlate,fStrip,fPadx,fPadz,fTdc,fAdc);
200 //______________________________________________________________________________
201 ostream& operator << (ostream& out, const AliTOFdigit &digit)
204 // Output streamer: output of the digit data
206 out << "Sector " << digit.fSector << ", Plate " << digit.fPlate << ", Strip " << digit.fStrip << endl;
207 out << "Padx" << digit.fPadx << ", Padz " << digit.fPadz << endl;
208 out << "TDC " << digit.fTdc << ", ADC "<< digit.fAdc << endl;