/// option either, as center-of-gravity is generally not a good estimate
/// of the cluster position...
///
+/// PEAKCOG : COG cluster finder around local maxima
+/// PEAKFIT : fit around local maxima with up to 3 peaks, COG otherwise
+///
/// NOCLUSTERING : bypass completely the clustering stage
///
/// ------
#include "AliMUONClusterFinderCOG.h"
#include "AliMUONClusterFinderMLEM.h"
#include "AliMUONClusterFinderSimpleFit.h"
+#include "AliMUONClusterFinderPeakCOG.h"
+#include "AliMUONClusterFinderPeakFit.h"
#include "AliMUONConstants.h"
#include "AliMUONDigitCalibrator.h"
#include "AliMUONDigitMaker.h"
#include "AliMUONRecoParam.h"
#include "AliMUONSimpleClusterServer.h"
#include "AliMUONTracker.h"
-#include "AliMUONTriggerChamberEff.h"
#include "AliMUONTriggerCircuit.h"
#include "AliMUONTriggerCrateStore.h"
#include "AliMUONTriggerStoreV1.h"
fDigitCalibrator(0x0),
fClusterServer(0x0),
fTriggerStore(0x0),
-fTrackStore(0x0),
-fTrigChamberEff(0x0)
+fTrackStore(0x0)
{
/// normal ctor
delete fClusterServer;
delete fTriggerStore;
delete fTrackStore;
- delete fTrigChamberEff;
}
//_____________________________________________________________________________
useFastDecoder = kTRUE;
}
fDigitMaker = new AliMUONDigitMaker(enableErrorLogging, useFastDecoder);
+ option.ToUpper();
+ if ( option.Contains("SAVEDIGITS" ))
+ {
+ fDigitMaker->SetMakeTriggerDigits(kTRUE);
+ }
}
//_____________________________________________________________________________
}
-//_____________________________________________________________________________
-void
-AliMUONReconstructor::CreateTriggerChamberEff() const
-{
- /// Create (and create if necessary) the trigger chamber efficiency class
- if (fTrigChamberEff) return;
-
- AliCodeTimerAuto("")
-
- fTrigChamberEff = new AliMUONTriggerChamberEff(fTransformer,fDigitMaker,kTRUE);
- //fTrigChamberEff->SetDebugLevel(1);
-}
-
//_____________________________________________________________________________
AliTracker*
AliMUONReconstructor::CreateTracker() const
CreateTriggerCircuit();
CreateDigitMaker();
- CreateTriggerChamberEff();
CreateClusterServer();
if (!fClusterServer)
return 0x0;
}
- fClusterServer->UseDigitStore(*(DigitStore()));
-
AliMUONTracker* tracker = new AliMUONTracker(*fClusterServer,
+ *DigitStore(),
fDigitMaker,
fTransformer,
- fTriggerCircuit,
- fTrigChamberEff);
+ fTriggerCircuit);
return tracker;
}
{
clusterFinder = new AliMUONPreClusterFinder;
}
+ else if ( strstr(opt,"PEAKCOG") )
+ {
+ clusterFinder = new AliMUONClusterFinderPeakCOG(kFALSE,new AliMUONPreClusterFinder);
+ }
+ else if ( strstr(opt,"PEAKFIT") )
+ {
+ clusterFinder = new AliMUONClusterFinderPeakFit(kFALSE,new AliMUONPreClusterFinder);
+ }
else if ( strstr(opt,"COG") )
{
clusterFinder = new AliMUONClusterFinderCOG(new AliMUONPreClusterFinder);
AliWarning("NOSTATUSMAP is obsolete");
}
- fDigitCalibrator = new AliMUONDigitCalibrator(*fCalibrationData);
+ TString calibMode = GetRecoParam()->GetCalibrationMode();
+
+ fDigitCalibrator = new AliMUONDigitCalibrator(*fCalibrationData,calibMode.Data());
}
//_____________________________________________________________________________
// i.e. w/o going through raw data, this will be the case)
TIter next(fDigitStore->CreateIterator());
AliMUONVDigit* digit = static_cast<AliMUONVDigit*>(next());
- if (!digit->IsCalibrated())
+ if (digit && !digit->IsCalibrated())
{
Calibrate(*fDigitStore);
}