-//_________________________________________________________________________
-// TOF digit: member variables
-// fSector : TOF sector
-// fPlate : TOF plate
-// fStrip : strips number
-// fPadx : pad number along x
-// fPadz : pad number along z
-// fTdc : TDC
-// fAdc : ADC
-//
-// Getters, setters and member functions defined here
-//
-//*-- Authors: F. Pierella, A. Seganti, D. Vicinanza
-
-
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-#include <Riostream.h>
+/* $Id$ */
+
+//_________________________________________________________________________//
+// //
+// TOF digit: member variables //
+// fSector : TOF sector //
+// fPlate : TOF plate //
+// fStrip : strips number //
+// fPadx : pad number along x //
+// fPadz : pad number along z //
+// fTdc : TDC //
+// fAdc : ADC //
+// //
+// Getters, setters and member functions defined here //
+// //
+// -- Authors: F. Pierella, A. Seganti, D. Vicinanza //
+//_________________________________________________________________________//
+
+
+#include "Riostream.h"
-#include "AliTOF.h"
#include "AliTOFdigit.h"
-#include "AliRun.h"
-#include "AliMC.h"
+#include "AliTOFGeometry.h"
ClassImp(AliTOFdigit)
+//______________________________________________________________________________
+AliTOFdigit::AliTOFdigit()
+ :AliDigit(),
+ fSector(-1),
+ fPlate(-1),
+ fStrip(-1),
+ fPadx(-1),
+ fPadz(-1),
+ fTdc(0),
+ fTdcND(0),
+ fAdc(0),
+ fToT(0)
+{
+}
//______________________________________________________________________________
AliTOFdigit::AliTOFdigit(Int_t *tracks, Int_t *vol,Float_t *digit)
-:AliDigit(tracks)
+ :AliDigit(tracks),
+ fSector(-1),
+ fPlate(-1),
+ fStrip(-1),
+ fPadx(-1),
+ fPadz(-1),
+ fTdc(0),
+ fTdcND(0),
+ fAdc(0),
+ fToT(0)
{
//
// Constructor of digit object
//
+
fSector = vol[0];
fPlate = vol[1];
fStrip = vol[2];
- fPadx = vol[3];
- fPadz = vol[4];
+ fPadx = vol[3];
+ fPadz = vol[4];
fTdc = digit[0];
+ fTdcND = digit[3];
fAdc = digit[1];
+ fToT = digit[2];
+
}
//____________________________________________________________________________
AliTOFdigit::AliTOFdigit(const AliTOFdigit & digit)
+ :AliDigit(digit),
+ fSector(-1),
+ fPlate(-1),
+ fStrip(-1),
+ fPadx(-1),
+ fPadz(-1),
+ fTdc(0),
+ fTdcND(0),
+ fAdc(0),
+ fToT(0)
{
//
// copy ctor for AliTOFdigit object
fPadx = digit.fPadx;
fPadz = digit.fPadz;
fTdc = digit.fTdc;
+ fTdcND = digit.fTdcND;
fAdc = digit.fAdc;
+ fToT = digit.fToT;
}
//______________________________________________________________________________
AliTOFdigit::AliTOFdigit(Int_t sector, Int_t plate, Int_t strip, Int_t padx,
-Int_t padz, Float_t tdc, Float_t adc)
+ Int_t padz, Float_t tdc, Float_t adc):
+ fSector(-1),
+ fPlate(-1),
+ fStrip(-1),
+ fPadx(-1),
+ fPadz(-1),
+ fTdc(0),
+ fTdcND(0),
+ fAdc(0),
+ fToT(0)
{
//
// Constructor for sdigit
fPadx = padx;
fPadz = padz;
fTdc = tdc;
+ fTdcND = 0;
fAdc = adc;
+ fToT = 0;
}
//______________________________________________________________________________
}
//______________________________________________________________________________
-Int_t AliTOFdigit::GetTotPad() const
+Int_t AliTOFdigit::GetTotPad(AliTOFGeometry *tofGeom) const
{
//
// Get the "total" index of the pad inside a Sector
// starting from the digits data.
//
- AliTOF* tof;
-
- if(gAlice){
- tof =(AliTOF*) gAlice->GetDetector("TOF");
- }else{
- printf("AliTOFdigit::GetTotPad - No AliRun object present, exiting");
- return 0;
- }
-
- Int_t pad = fPadx+tof->GetNpadX()*(fPadz-1);
Int_t before=0;
switch(fPlate){
- case 1: before = 0;
- break;
- case 2: before = tof->GetNStripC();
- break;
- case 3: before = tof->GetNStripB() + tof->GetNStripC();
- break;
- case 4: before = tof->GetNStripA() + tof->GetNStripB() + tof->GetNStripC();
- break;
- case 5: before = tof->GetNStripA() + 2*tof->GetNStripB() + tof->GetNStripC();
- break;
+ case 0:
+ //before = 0;
+ break;
+ case 1:
+ before = tofGeom->NStripC();
+ break;
+ case 2:
+ before = tofGeom->NStripC() + AliTOFGeometry::NStripB();
+ break;
+ case 3:
+ before = tofGeom->NStripC() + AliTOFGeometry::NStripB() + AliTOFGeometry::NStripA();
+ break;
+ case 4:
+ before = tofGeom->NStripC() + 2*AliTOFGeometry::NStripB() + AliTOFGeometry::NStripA();
+ break;
}
- Int_t strip = fStrip+before;
- Int_t padTot = tof->GetPadXStr()*(strip-1)+pad;
+ Int_t pad = 2*fPadx + fPadz;
+ //Int_t pad = fPadx+AliTOFGeometry::NpadX()*fPadz;
+ Int_t strip = fStrip + before;
+ Int_t padTot = AliTOFGeometry::NpadXStrip()*strip + pad;
+
return padTot;
}
fPadx==digit.fPadx &&
fPadz==digit.fPadz &&
fTdc==digit.fTdc &&
- fAdc==digit.fAdc) return kTRUE;
+ fTdcND==digit.fTdcND &&
+ fAdc==digit.fAdc &&
+ fToT==digit.fToT ) return kTRUE;
else return kFALSE;
}
//______________________________________________________________________________
-AliTOFdigit& AliTOFdigit::operator+(AliTOFdigit const &digit)
+AliTOFdigit AliTOFdigit::operator+(const AliTOFdigit &digit)
{
//
// Overloading of Sum operator
//______________________________________________________________________________
ostream& operator << (ostream& out, const AliTOFdigit &digit)
{
-//
-// Output streamer: output of the digit data
-//
-out << "Sector " << digit.fSector << ", Plate " << digit.fPlate << ", Strip " << digit.fStrip << endl;
-out << "Padx" << digit.fPadx << ", Padz " << digit.fPadz << endl;
-out << "TDC " << digit.fTdc << ", ADC "<< digit.fAdc << endl;
-return out;
-}
+ //
+ // Output streamer: output of the digit data
+ //
+ out << "Sector " << digit.fSector << ", Plate " << digit.fPlate << ", Strip " << digit.fStrip << endl;
+ out << "Padx" << digit.fPadx << ", Padz " << digit.fPadz << endl;
+ out << "TDC " << digit.fTdc << ", ADC "<< digit.fAdc << endl;
+
+ return out;
+}