// --- AliRoot header files ---
#include "AliPHOSDigit.h"
-
+#include "AliLog.h"
//____________________________________________________________________________
AliPHOSDigit::AliPHOSDigit() :
AliDigitNew(),
+ fIsLG(0),
fNprimary(0),
fPrimary(0x0),
fEnergy(0.),
//____________________________________________________________________________
AliPHOSDigit::AliPHOSDigit(Int_t primary, Int_t id, Int_t digEnergy, Float_t time, Int_t index) :
+ fIsLG(0),
fNprimary(0),
fPrimary(0),
fEnergy(0.f),
fTimeR = fTime ;
fId = id ;
fIndexInList = index ;
+
if( primary != -1){
fNprimary = 1 ;
fPrimary = new Int_t[fNprimary] ;
//____________________________________________________________________________
AliPHOSDigit::AliPHOSDigit(Int_t primary, Int_t id, Float_t energy, Float_t time, Int_t index) :
+ fIsLG(0),
fNprimary(0),
fPrimary(0),
fEnergy(0.f),
AliPHOSDigit::AliPHOSDigit(const AliPHOSDigit & digit) :
AliDigitNew(digit),
fNprimary(digit.fNprimary),
+ fIsLG(digit.fIsLG),
fPrimary(0),
fEnergy(digit.fEnergy),
fTime(digit.fTime),
fIndexInList = digit.fIndexInList ;
}
+//____________________________________________________________________________
+AliPHOSDigit & AliPHOSDigit::operator = (const AliPHOSDigit &)
+{
+ Fatal("operator =", "not implemented");
+ return *this;
+}
//____________________________________________________________________________
AliPHOSDigit::~AliPHOSDigit()
{
void AliPHOSDigit::SetALTROSamplesHG(Int_t nSamplesHG, Int_t *samplesHG)
{
fNSamplesHG = nSamplesHG;
+ if (fSamplesHG) delete [] fSamplesHG;
fSamplesHG = new UShort_t[fNSamplesHG];
UShort_t i;
for (i=0; i<fNSamplesHG; i++) {
void AliPHOSDigit::SetALTROSamplesLG(Int_t nSamplesLG, Int_t *samplesLG)
{
fNSamplesLG = nSamplesLG;
+ if (fSamplesLG) delete [] fSamplesLG;
fSamplesLG = new UShort_t[fNSamplesLG];
UShort_t i;
for (i=0; i<fNSamplesLG; i++) {
void AliPHOSDigit::Print(const Option_t *) const
{
// Print the digit together with list of primaries
- printf("PHOS digit: E=%.3f, Id=%d, Time=%.3e, TimeR=%.3e, NPrim=%d, nHG=%d, nLG=%d \n",
- fEnergy,fId,fTime,fTimeR,fNprimary,fNSamplesHG,fNSamplesLG);
- printf("\tList of primaries: ");
+ TString line = Form("PHOS digit: E=%.3f, Id=%d, Time=%.3e, TimeR=%.3e, NPrim=%d, nHG=%d, nLG=%d \n",
+ fEnergy,fId,fTime,fTimeR,fNprimary,fNSamplesHG,fNSamplesLG);
+ line += "\tList of primaries: ";
for (Int_t index = 0; index <fNprimary; index ++ )
- printf(" %d ",fPrimary[index]);
- printf("\n") ;
- printf("\tHG samples: 0x%x: ",fSamplesHG);
+ line += Form(" %d ",fPrimary[index]);
+ line += "\n";
+ line += "\tSamples HG: ";
for (Int_t i = 0; i <fNSamplesHG; i++)
- printf(" %d ",fSamplesHG[i]);
- printf("\n") ;
- printf("\tLG samples: 0x%x: ",fSamplesLG);
+ line += Form(" %d ",fSamplesHG[i]);
+ line += "\n";
+ line += "\tSamples LG: ";
for (Int_t i = 0; i <fNSamplesLG; i++)
- printf(" %d ",fSamplesLG[i]);
- printf("\n") ;
+ line += Form(" %d ",fSamplesLG[i]);
+ line += "\n";
+ AliDebug(2,line);
}
//____________________________________________________________________________
void AliPHOSDigit::ShiftPrimary(Int_t shift)
for (i=0; i<fNSamplesLG; i++)
fSamplesLG[i] = TMath::Max(1023,fSamplesLG[i] + (digit.fSamplesLG)[i]);
}
+
+ //If at least one digit in LG, then sum also
+ fIsLG=fIsLG||digit.fIsLG ;
return *this ;
}