#include "AliMUONCluster.h"
#include "AliMpVSegmentation.h"
#include "AliMpPad.h"
-#include "TClonesArray.h"
+#include "TObjArray.h"
#include "TVector2.h"
#include "AliMUONPad.h"
#include "AliMUONVDigit.h"
return kFALSE;
}
- new ((*fPads[pad.Cathode()])[fPads[pad.Cathode()]->GetLast()+1]) AliMUONPad(pad);
+ fPads[pad.Cathode()]->Add(new AliMUONPad(pad));
// FIXME: should set the ClusterId of that new pad to be -1
return kTRUE;
}
//_____________________________________________________________________________
Bool_t
AliMUONPreClusterFinderV2::Prepare(Int_t detElemId,
- TClonesArray* pads[2],
+ TObjArray* pads[2],
const AliMpArea& area,
const AliMpVSegmentation* seg[2])
{
{
/// Add a pad to a cluster
- cluster.AddPad(*pad);
- pad->SetClusterId(cluster.GetUniqueID());
+ AliMUONPad* addedPad = cluster.AddPad(*pad);
Int_t cathode = pad->Cathode();
- TClonesArray& padArray = *fPads[cathode];
- padArray.Remove(pad);
- TIter next(&padArray);
+ TObjArray& padArray = *fPads[cathode];
+ delete padArray.Remove(pad);
// Check neighbours
TObjArray neighbours;
- AliMpPad p = fkSegmentations[pad->Cathode()]->PadByIndices(pad->Ix(),pad->Iy(),kTRUE);
- Int_t nn = fkSegmentations[pad->Cathode()]->GetNeighbours(p,neighbours);
+ AliMpPad p = fkSegmentations[cathode]->PadByIndices(addedPad->Ix(),addedPad->Iy(),kTRUE);
+ Int_t nn = fkSegmentations[cathode]->GetNeighbours(p,neighbours);
for (Int_t in = 0; in < nn; ++in)
{
AliMpPad* p1 = static_cast<AliMpPad*>(neighbours.At(in));
{
if ( !p2->IsUsed() && p2->Ix()==p1->GetIx()
&& p2->Iy() == p1->GetIy() &&
- p2->Cathode() == pad->Cathode() )
+ p2->Cathode() == cathode )
{
AddPad(cluster,p2);
}