#include "AliLog.h"
#include "AliMUONCluster.h"
#include "AliMpVSegmentation.h"
-#include "TClonesArray.h"
+#include "AliMpPad.h"
+#include "TObjArray.h"
#include "TVector2.h"
#include "AliMUONPad.h"
#include "AliMUONVDigit.h"
AliMUONPreClusterFinderV2::AliMUONPreClusterFinderV2()
: AliMUONVClusterFinder(),
fClusters(0x0),
- fSegmentations(0x0),
+ fkSegmentations(0x0),
fPads(0x0),
fDetElemId(0)
{
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])
{
fClusters = new TClonesArray("AliMUONCluster");
fPads = pads;
- fSegmentations = seg;
+ fkSegmentations = seg;
fDetElemId = detElemId;
{
/// 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 = fSegmentations[pad->Cathode()]->PadByIndices(AliMpIntPair(pad->Ix(),pad->Iy()),kTRUE);
- Int_t nn = fSegmentations[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));
while ( ( p2 = static_cast<AliMUONPad*>(next2()) ) )
{
- if ( !p2->IsUsed() && p2->Ix()==p1->GetIndices().GetFirst()
- && p2->Iy() == p1->GetIndices().GetSecond() &&
- p2->Cathode() == pad->Cathode() )
+ if ( !p2->IsUsed() && p2->Ix()==p1->GetIx()
+ && p2->Iy() == p1->GetIy() &&
+ p2->Cathode() == cathode )
{
AddPad(cluster,p2);
}