#include "AliMpMotifType.h"
#include "AliMpPCB.h"
#include "AliMpSlat.h"
-#include "AliMpSlatSegmentation.h"
#include "AliMpTrigger.h"
///
//_____________________________________________________________________________
AliMpTriggerSegmentation::AliMpTriggerSegmentation()
: AliMpVSegmentation(),
-fkSlat(0),
-fNofStrips(0)
+ fkSlat(0),
+ fIsOwner(false),
+ fNofStrips(0)
{
//
// Default ctor. Not to be used really.
}
//_____________________________________________________________________________
-AliMpTriggerSegmentation::AliMpTriggerSegmentation(const AliMpTrigger* slat)
+AliMpTriggerSegmentation::AliMpTriggerSegmentation(
+ const AliMpTrigger* slat, Bool_t own)
: AliMpVSegmentation(),
fkSlat(slat),
+ fIsOwner(own),
fNofStrips(0)
{
//
//
// Dtor (empty).
//
+
+ if ( fIsOwner ) delete fkSlat;
+
AliDebug(1,Form("this=%p",this));
}
for ( Int_t i = 0; i < fkSlat->GetSize(); ++i )
{
- const AliMpSlat* slat = fkSlat->GetLayer(i);
- AliMpSlatSegmentation seg(slat);
- AliMpPad pi = seg.PadByLocation(location,kFALSE);
+ AliMpVSegmentation* seg = fkSlat->GetLayerSegmentation(i);
+ AliMpPad pi = seg->PadByLocation(location,kFALSE);
if ( pi.IsValid() )
{
if ( !pad.IsValid() )
for ( Int_t i = 0; i < fkSlat->GetSize(); ++i )
{
- const AliMpSlat* slat = fkSlat->GetLayer(i);
- AliMpSlatSegmentation seg(slat);
- AliMpPad pi = seg.PadByIndices(indices,kFALSE);
+ AliMpVSegmentation* seg = fkSlat->GetLayerSegmentation(i);
+ AliMpPad pi = seg->PadByIndices(indices,kFALSE);
if ( pi.IsValid() )
{
if ( !pad.IsValid() )
for ( Int_t i = 0; i < fkSlat->GetSize(); ++i )
{
- const AliMpSlat* slat = fkSlat->GetLayer(i);
- AliMpSlatSegmentation seg(slat);
- AliMpPad pi = seg.PadByPosition(position,kFALSE);
+ AliMpVSegmentation* seg = fkSlat->GetLayerSegmentation(i);
+ AliMpPad pi = seg->PadByPosition(position,kFALSE);
if ( pi.IsValid() )
{
if ( !pad.IsValid() )
{
public:
AliMpTriggerSegmentation();
- AliMpTriggerSegmentation(const AliMpTrigger* slat);
+ AliMpTriggerSegmentation(const AliMpTrigger* slat, Bool_t own = false);
virtual ~AliMpTriggerSegmentation();
virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
AliMpTriggerSegmentation(const AliMpTriggerSegmentation& right);
AliMpTriggerSegmentation& operator = (const AliMpTriggerSegmentation& right);
- const AliMpTrigger* fkSlat; ///< Slat
+ const AliMpTrigger* fkSlat; ///< Slat
+ Bool_t fIsOwner;///< Trigger slat ownership
Int_t fNofStrips; ///< Number of strips in this slat
- ClassDef(AliMpTriggerSegmentation,2) // Segmentation for slat trigger stations
+ ClassDef(AliMpTriggerSegmentation,3) // Segmentation for slat trigger stations
};
#endif