// Manager class generaol Alice segment digits
// segment is for example one pad row in TPC //
////////////////////////////////////////////////
-#include "TError.h"
-#include "AliArrayI.h"
-#include "AliArrayS.h"
-#include "AliDigits.h"
+#include <TError.h>
+#include <TArrayI.h>
#include <TClonesArray.h>
+#include "AliDigits.h"
class AliH2F;
class AliSimDigits : public AliDigits{
public:
AliSimDigits();
+ AliSimDigits(const AliSimDigits ¶m);
+ AliSimDigits &operator = (const AliSimDigits & digits);
virtual ~AliSimDigits();
void AllocateTrack(Int_t length); //construct empty buffer fTracks with size rows x column x length (number of tracks for one digit)
Int_t *GetTracks(){return fTracks->GetArray();}
Float_t x1=-1, Float_t x2=-1, Float_t y1=-1, Float_t y2=-1); //draw tracks
TClonesArray * GenerTPCClonesArray(TClonesArray * arr); //generate TClonnesArray of digits
//only for demonstration purpose
+ void GlitchFilter();
private:
void InvalidateTrack();
void ExpandTrackBuffer2(); //comress track according algorithm 2 (track ID comression according digit compression)
void CompresTrackBuffer2(); //comress track according algorithm 2 (track ID comression according digit compression)
- AliArrayI * fTracks; //buffer of track index
- AliArrayI * fTrIndex; //index position of column
+ TArrayI * fTracks; //buffer of track index
+ TArrayI * fTrIndex; //index position of column
Int_t fNlevel; //number of tracks etries for one digit
Int_t fTrBufType; //buffer type of the tracks
// Bool_t ClassError( ); //signalize class error
- ClassDef(AliSimDigits,1)
+ ClassDef(AliSimDigits,3)
};
//set ID track at given row and collumn
// fTracks[level][fTrIndex[level][column]+row]=value;
if ( (row<0) || (row>=fNrows) || (column<0) || (column>=fNcols) )
- ::Error("AliSimDigits::SetTrackIDFast", "row %d col %d out of bounds (size: %d x %d, this: 0x%08x)",
- row, column, fNrows, fNcols, this);
+ ::Error("AliSimDigits::SetTrackIDFast", "row %d col %d out of bounds (size: %d x %d, this: 0x%08lx)",
+ row, column, fNrows, fNcols, (ULong_t) this);
if ( (level<0) || (level>=fNlevel)) ::Error("AliSimDigits::SetTrackIDFast", "index %d out of bounds", level);
(*fTracks)[level*fNrows*fNcols+fNrows*column+row]=value;
}