return;
}
- cluster.AddPad(*pad);
+ AliMUONPad* addedPad = cluster.AddPad(*pad);
Int_t cathode = pad->Cathode();
TObjArray& padArray = *fPads[cathode];
// WARNING: this Remove method uses the AliMUONPad::IsEqual if that method is
// present (otherwise just compares pointers) : so that one must be correct
// if implemented !
- padArray.Remove(pad);
- // TObject* o = padArray.Remove(pad);
+ TObject* o = padArray.Remove(pad);
// if (!o)
// {
// AliFatal("Oups. Could not remove pad from pads to consider. Aborting as anyway "
// " we'll get an infinite loop. Please check the AliMUONPad::IsEqual method"
// " as the first suspect for failed remove");
// }
+ delete o;
+
TIter next(&padArray);
AliMUONPad* testPad;
while ( ( testPad = static_cast<AliMUONPad*>(next())))
{
- if ( AliMUONPad::AreNeighbours(*testPad,*pad) )
+ if ( AliMUONPad::AreNeighbours(*testPad,*addedPad) )
{
AddPad(cluster,testPad);
}
{
/// Add a pad to a cluster
- cluster.AddPad(*pad);
- pad->SetClusterId(cluster.GetUniqueID());
+ AliMUONPad* addedPad = cluster.AddPad(*pad);
Int_t cathode = pad->Cathode();
TObjArray& padArray = *fPads[cathode];
- padArray.Remove(pad);
- TIter next(&padArray);
+ 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);
}
Int_t cathode = pad->Cathode();
TObjArray& padArray = *fPads[cathode];
- padArray.Remove(pad);
+ delete padArray.Remove(pad);
+
TIter next(&padArray);
AliMUONPad* testPad;
if (!padArray)
{
padArray = new TObjArray(100);
+ padArray->SetOwner(kTRUE);
fPads[cathode]->Add(detElemId,padArray);
}
RAW=1 # will reconstruct from raw data
CHECKS=1 # will perform checks
SLASHTMP=1 #will use /tmp to put the temporary raw data
-NEVENTS=100 # will simulate 100 events
+NEVENTS=50 # will simulate 100 events
#RECOPTIONS="SAVEDIGITS NOFASTDECODERS" # reconstruction options with non-high performance decoders
RECOPTIONS="SAVEDIGITS" # default reconstruction options