#include "AliTPCParam.h"
#include "AliTPCPRF2D.h"
#include "TObjArray.h"
#include "AliSegmentID.h"
#include "AliSegmentArray.h"
#include "AliDigits.h"
#include "AliSimDigits.h"
#include "AliDigitsArray.h"
#include "AliTPCDigitsArray.h"
#include <TDirectory.h>
ClassImp(AliTPCDigitsArray)
AliTPCDigitsArray::AliTPCDigitsArray(Bool_t sim)
:AliDigitsArray(),
fBSim(kFALSE),
fCompression(0),
fTrackLevel(0)
{
fParam = 0;
fBSim = sim;
if ( sim == kTRUE) SetClass("AliSimDigits");
else
SetClass("AliDigits");
fParam = 0;
fCompression = 1;
fTrackLevel = 3;
}
AliTPCDigitsArray::~AliTPCDigitsArray()
{
}
AliDigits * AliTPCDigitsArray::CreateRow(Int_t sector, Int_t row)
{
AliTPCParam * param = (AliTPCParam*)fParam;
Int_t index = param->GetIndex(sector,row);
AliDigits * dig = (AliDigits *)(*this)[index];
if (dig !=0) delete dig;
dig = (AliDigits *) AddSegment(index);
if (dig == 0) return 0;
dig->Allocate(param->GetMaxTBin(),param->GetNPads(sector,row));
if (fBSim == kTRUE) ((AliSimDigits*) dig)->AllocateTrack(fTrackLevel);
return dig;
}
AliDigits * AliTPCDigitsArray::GetRow(Int_t sector,Int_t row)
{
if (fParam==0) return 0;
Int_t index = ((AliTPCParam*)fParam)->GetIndex(sector,row);
return (AliDigits *)(*this)[index];
}
AliDigits * AliTPCDigitsArray::LoadRow(Int_t sector,Int_t row)
{
if (fParam==0) return 0;
Int_t index = ((AliTPCParam*)fParam)->GetIndex(sector,row);
return (AliDigits *)LoadSegment(index);
}
Bool_t AliTPCDigitsArray::StoreRow(Int_t sector,Int_t row)
{
AliTPCParam * param = (AliTPCParam*)fParam;
if (fParam==0) return 0;
Int_t index = param->GetIndex(sector,row);
( (AliDigits *)At(index))->CompresBuffer(fCompression,param->GetZeroSup());
if (fBSim == kTRUE) ( (AliSimDigits *)At(index))->CompresTrackBuffer(1);
StoreSegment(index);
return kTRUE;
}
Bool_t AliTPCDigitsArray::ClearRow(Int_t sector,Int_t row)
{
if (fParam==0) return 0;
Int_t index = ((AliTPCParam*)fParam)->GetIndex(sector,row);
ClearSegment(index);
return kTRUE;
}
Bool_t AliTPCDigitsArray::Setup(AliDetectorParam *param)
{
if (param==0) return kFALSE;
if (fParam !=0) delete fParam;
fParam = param;
return MakeArray(((AliTPCParam*)fParam)->GetNRowsTotal());
}
Bool_t AliTPCDigitsArray::Update()
{
if (fParam ==0 ) return kFALSE;
if (fTree!=0) return MakeDictionary( ((AliTPCParam*)fParam)->GetNRowsTotal()) ;
((AliTPCParam*)fParam)->Update();
return MakeArray(((AliTPCParam*)fParam)->GetNRowsTotal());
}
AliTPCDigitsArray.cxx:100 AliTPCDigitsArray.cxx:101 AliTPCDigitsArray.cxx:102 AliTPCDigitsArray.cxx:103 AliTPCDigitsArray.cxx:104 AliTPCDigitsArray.cxx:105 AliTPCDigitsArray.cxx:106 AliTPCDigitsArray.cxx:107 AliTPCDigitsArray.cxx:108 AliTPCDigitsArray.cxx:109 AliTPCDigitsArray.cxx:110 AliTPCDigitsArray.cxx:111 AliTPCDigitsArray.cxx:112 AliTPCDigitsArray.cxx:113 AliTPCDigitsArray.cxx:114 AliTPCDigitsArray.cxx:115 AliTPCDigitsArray.cxx:116 AliTPCDigitsArray.cxx:117 AliTPCDigitsArray.cxx:118 AliTPCDigitsArray.cxx:119 AliTPCDigitsArray.cxx:120 AliTPCDigitsArray.cxx:121 AliTPCDigitsArray.cxx:122 AliTPCDigitsArray.cxx:123 AliTPCDigitsArray.cxx:124 AliTPCDigitsArray.cxx:125 AliTPCDigitsArray.cxx:126 AliTPCDigitsArray.cxx:127 AliTPCDigitsArray.cxx:128 AliTPCDigitsArray.cxx:129 AliTPCDigitsArray.cxx:130 AliTPCDigitsArray.cxx:131 AliTPCDigitsArray.cxx:132 AliTPCDigitsArray.cxx:133 AliTPCDigitsArray.cxx:134 AliTPCDigitsArray.cxx:135 AliTPCDigitsArray.cxx:136 AliTPCDigitsArray.cxx:137 AliTPCDigitsArray.cxx:138 AliTPCDigitsArray.cxx:139 AliTPCDigitsArray.cxx:140 AliTPCDigitsArray.cxx:141 AliTPCDigitsArray.cxx:142 AliTPCDigitsArray.cxx:143 AliTPCDigitsArray.cxx:144 AliTPCDigitsArray.cxx:145 AliTPCDigitsArray.cxx:146 AliTPCDigitsArray.cxx:147 AliTPCDigitsArray.cxx:148 AliTPCDigitsArray.cxx:149 AliTPCDigitsArray.cxx:150 AliTPCDigitsArray.cxx:151 AliTPCDigitsArray.cxx:152 AliTPCDigitsArray.cxx:153 AliTPCDigitsArray.cxx:154 AliTPCDigitsArray.cxx:155 AliTPCDigitsArray.cxx:156 AliTPCDigitsArray.cxx:157 AliTPCDigitsArray.cxx:158 AliTPCDigitsArray.cxx:159 AliTPCDigitsArray.cxx:160