#include "AliLog.h"
#include "AliMpDEManager.h"
-#include "AliMpStationType.h"
#include "AliMUONCluster.h"
#include "AliMUONConstants.h"
-#include "AliMUONDigit.h"
+#include "AliMUONVDigit.h"
#include "AliMUONMathieson.h"
#include "AliMUONPad.h"
-#include "AliMUONClusterFinderCOG.h"
#include "AliMpArea.h"
-#include "TClonesArray.h"
#include "TObjArray.h"
#include "TVector2.h"
#include "TVirtualFitter.h"
#include "TF1.h"
+#include "AliMUONVDigitStore.h"
+#include <Riostream.h>
+//-----------------------------------------------------------------------------
/// \class AliMUONClusterFinderSimpleFit
///
/// Basic cluster finder
/// FIXME: this one is still at the developping stage...
///
/// \author Laurent Aphecetche
+//-----------------------------------------------------------------------------
/// \cond CLASSIMP
ClassImp(AliMUONClusterFinderSimpleFit)
}
//_____________________________________________________________________________
-AliMUONClusterFinderSimpleFit::AliMUONClusterFinderSimpleFit()
+AliMUONClusterFinderSimpleFit::AliMUONClusterFinderSimpleFit(AliMUONVClusterFinder* clusterFinder)
: AliMUONVClusterFinder(),
-fClusterFinder(0x0),
-fMathieson(0x0)
+fClusterFinder(clusterFinder),
+fMathieson(0x0),
+fLowestClusterCharge(0)
{
/// ctor
}
//_____________________________________________________________________________
Bool_t
-AliMUONClusterFinderSimpleFit::Prepare(const AliMpVSegmentation* segmentations[2],
- TClonesArray* digits[2])
+AliMUONClusterFinderSimpleFit::Prepare(Int_t detElemId,
+ TObjArray* pads[2],
+ const AliMpArea& area)
{
/// Prepare for clustering
// FIXME: should we get the Mathieson from elsewhere ?
// Find out the DetElemId
- Int_t detElemId(-1);
-
- for ( Int_t i = 0; i < 2; ++i )
- {
- AliMUONDigit* d = static_cast<AliMUONDigit*>(digits[i]->First());
- if (d)
- {
- detElemId = d->DetElemId();
- break;
- }
- }
-
- if ( detElemId < 0 )
- {
- AliWarning("Could not find DE. Probably no digits at all ?");
- return kFALSE;
- }
-
- AliMp::StationType stationType = AliMpDEManager::GetStationType(detElemId);
+ AliMq::Station12Type stationType = AliMpDEManager::GetStation12Type(detElemId);
Float_t kx3 = AliMUONConstants::SqrtKx3();
Float_t ky3 = AliMUONConstants::SqrtKy3();
Float_t pitch = AliMUONConstants::Pitch();
- if ( stationType == AliMp::kStation1 )
+ if ( stationType == AliMq::kStation1 )
{
kx3 = AliMUONConstants::SqrtKx3St1();
ky3 = AliMUONConstants::SqrtKy3St1();
fMathieson->SetSqrtKx3AndDeriveKx2Kx4(kx3);
fMathieson->SetSqrtKy3AndDeriveKy2Ky4(ky3);
- delete fClusterFinder;
- fClusterFinder = new AliMUONClusterFinderCOG;
- return fClusterFinder->Prepare(segmentations,digits);
+ return fClusterFinder->Prepare(detElemId,pads,area);
}
//_____________________________________________________________________________
{
ComputePosition(*cluster);
- if ( cluster->Charge() < 7 )
+ if ( cluster->Charge() < fLowestClusterCharge )
{
// skip that one
return NextCluster();