,firstClusterROC(0)
,fNoOfClusters(0)
,fBaseline(0)
+ ,fRawStream(NULL)
{
//
// AliTRDclusterizer default constructor
,firstClusterROC(0)
,fNoOfClusters(0)
,fBaseline(0)
+ ,fRawStream(NULL)
{
//
// AliTRDclusterizer constructor
,firstClusterROC(0)
,fNoOfClusters(0)
,fBaseline(0)
+ ,fRawStream(NULL)
{
//
// AliTRDclusterizer copy constructor
if (fTransform){
delete fTransform;
- fTransform = NULL;
+ fTransform = NULL;
+ }
+
+ if (fRawStream){
+ delete fRawStream;
+ fRawStream = NULL;
}
}
((AliTRDclusterizer &) c).firstClusterROC= 0;
((AliTRDclusterizer &) c).fNoOfClusters = 0;
((AliTRDclusterizer &) c).fBaseline = 0;
+ ((AliTRDclusterizer &) c).fRawStream = NULL;
}
fTrackletContainer[1] = new UInt_t[kTrackletChmb];
}
- AliTRDrawStreamBase *input = AliTRDrawStreamBase::GetRawStream(rawReader);
+ if(!fRawStream)
+ fRawStream = AliTRDrawStreamBase::GetRawStream(rawReader);
+ else
+ fRawStream->SetReader(rawReader);
+
if(fReconstructor->IsHLT())
- input->SetSharedPadReadout(kFALSE);
+ fRawStream->SetSharedPadReadout(kFALSE);
- AliInfo(Form("Stream version: %s", input->IsA()->GetName()));
+ AliInfo(Form("Stream version: %s", fRawStream->IsA()->GetName()));
Int_t det = 0;
- while ((det = input->NextChamber(fDigitsManager,fTrackletContainer)) >= 0){
+ while ((det = fRawStream->NextChamber(fDigitsManager,fTrackletContainer)) >= 0){
Bool_t iclusterBranch = kFALSE;
if (fDigitsManager->GetIndexes(det)->HasEntry()){
iclusterBranch = MakeClusters(det);
fDigitsManager = NULL;
}
- delete input;
- input = NULL;
-
AliInfo(Form("Number of found clusters : %d", fNoOfClusters));
return kTRUE;
class AliTRDCalROC;
class AliTRDReconstructor;
class AliTRDCalSingleChamberStatus;
+class AliTRDrawStreamBase;
class AliTRDclusterizer : public TNamed
{
Bool_t IsMaximum(const MaxStruct &Max, UChar_t &padStatus, Short_t *const Signals); //for const correctness reasons not const parameters are given separately
Bool_t FivePadCluster(MaxStruct &ThisMax, MaxStruct &NeighbourMax);
void CreateCluster(const MaxStruct &Max);
- inline void CalcAdditionalInfo(const MaxStruct &Max, Short_t *const signals, Int_t &nPadCount);
+
virtual void AddClusterToArray(AliTRDcluster* cluster);
virtual void AddTrackletsToArray();
+private:
+ inline void CalcAdditionalInfo(const MaxStruct &Max, Short_t *const signals, Int_t &nPadCount);
+
+protected:
const AliTRDReconstructor *fReconstructor; //! reconstructor
AliRunLoader *fRunLoader; //! Run Loader
TTree *fClusterTree; //! Tree with the cluster
Int_t firstClusterROC; // The number of cluster in a given ROC
Int_t fNoOfClusters; // Number of Clusters already processed and still owned by the clusterizer
Int_t fBaseline; // Baseline of the ADC values
+ AliTRDrawStreamBase *fRawStream; // Currently used RawStream
ClassDef(AliTRDclusterizer,6) // TRD clusterfinder