AliMUONCluster::~AliMUONCluster()
{
/// dtor : note that we're owner of our pads
+// fPads.Delete();
}
//_____________________________________________________________________________
{
/// Clear our pad array
fPads.Clear();
+// fPads.Delete();
}
//_____________________________________________________________________________
}
// then construct the area from those limits
- return AliMpArea((lowerLeft+upperRight)/2,
- (upperRight-lowerLeft)/2);
+ return AliMpArea((lowerLeft+upperRight).X()/2,(lowerLeft+upperRight).Y()/2,
+ (upperRight-lowerLeft).X()/2, (upperRight-lowerLeft).Y()/2);
}
//_____________________________________________________________________________
}
// then construct the area from those limits
- return AliMpArea((lowerLeft+upperRight)/2,
- (upperRight-lowerLeft)/2);
+ return AliMpArea((lowerLeft+upperRight).X()/2,(lowerLeft+upperRight).Y()/2,
+ (upperRight-lowerLeft).X()/2, (upperRight-lowerLeft).Y()/2);
+}
+
+//_____________________________________________________________________________
+Bool_t
+AliMUONCluster::IsMonoCathode() const
+{
+ /// Whether we have signals only in one of the two cathodes
+ return (Cathode()<2);
}
//_____________________________________________________________________________
///
TObject::Copy(obj);
AliMUONCluster& dest = static_cast<AliMUONCluster&>(obj);
- dest.fPads.Delete();
- dest.fPads = fPads;
+
+// dest.fPads.Delete();
+ dest.fPads.Clear();
+
+ for ( Int_t i = 0; i <= fPads.GetLast(); ++i )
+ {
+ AliMUONPad* p = static_cast<AliMUONPad*>(fPads.UncheckedAt(i));
+ dest.fPads.AddLast(new AliMUONPad(*p));
+ }
dest.fHasPosition = fHasPosition;
dest.fPosition = fPosition;
dest.fPositionError = fPositionError;
// cout << " " << Area() << endl;
for (Int_t i = 0; i < fPads.GetSize(); ++i)
{
- cout << Form("fPads[%d]=%x",i,fPads.At(i)) << endl;
+ cout << Form("fPads[%d]=%p",i,fPads.At(i)) << endl;
if ( fPads.At(i) ) fPads.At(i)->Print();
}
}
AliMpArea carea(cluster->Area());
AliMpArea area(Area());
- if ( carea.Position().X() > area.Position().X() )
+ if ( carea.GetPositionX() > area.GetPositionX() )
{
return 1;
}
- else if ( carea.Position().X() < area.Position().X() )
+ else if ( carea.GetPositionX() < area.GetPositionX() )
{
return -1;
}
else
{
- if ( carea.Position().Y() > area.Position().Y() )
+ if ( carea.GetPositionY() > area.GetPositionY() )
{
return 1;
}
- else if ( carea.Position().Y() < area.Position().Y() )
+ else if ( carea.GetPositionY() < area.GetPositionY() )
{
return -1;
}
fPads.Remove(pad);
fPads.Compress();
+ delete pad;
// update cluster's data
fIsSaturated[0]=fIsSaturated[1]=kFALSE;
fMultiplicity[0]=fMultiplicity[1]=0;