///
/// NOCLUSTERING : bypass completely the clustering stage
///
-/// NOSTATUSMAP : disable the computation and usage of the pad status map. Only
-/// for debug !
-///
/// NOLOCALRECONSTRUCTION : for debug, to disable local reconstruction (and hence
/// "recover" old behavior)
///
#include "AliMUONTriggerCrateStore.h"
#include "AliMUONTriggerStoreV1.h"
#include "AliMUONVClusterFinder.h"
+#include "AliMUONRecoParam.h"
#include "AliMpCDB.h"
#include "AliRawReader.h"
#include "AliCodeTimer.h"
ClassImp(AliMUONReconstructor)
/// \endcond
+AliMUONRecoParam* AliMUONReconstructor::fgRecoParam = 0x0; // reconstruction parameters
+
//_____________________________________________________________________________
AliMUONReconstructor::AliMUONReconstructor() :
AliReconstructor(),
// Load geometry data
fTransformer->LoadGeometryData();
+ // initialize reconstruction parameters in not already done
+ if (!fgRecoParam) {
+ AliWarning("Reconstruction parameters not initialized - Use default one");
+ fgRecoParam = AliMUONRecoParam::GetLowFluxParam();
+ }
}
delete fTrigChamberEff;
}
+//_____________________________________________________________________________
+void AliMUONReconstructor::SetRecoParam(AliMUONRecoParam *param)
+{
+ /// set reconstruction parameters
+
+ // remove existing parameters
+ if (fgRecoParam) {
+ cout<<"AliMUONReconstructor::SetRecoParam: Reconstruction parameters already initialized - overwrite them"<<endl;
+ delete fgRecoParam;
+ }
+
+ fgRecoParam = param;
+}
+
//_____________________________________________________________________________
void
AliMUONReconstructor::Calibrate(AliMUONVDigitStore& digitStore) const
{
/// Creates clusters from digits.
- TString sopt(GetOption());
+ TString sopt(fgRecoParam->GetClusteringMode());
sopt.ToUpper();
if ( sopt.Contains("NOCLUSTERING") ) return;
- if (!fClusterReconstructor)
- {
- CreateClusterReconstructor();
- }
+ if (!fClusterReconstructor) CreateClusterReconstructor();
+
+ // if the required clustering mode does not exist
+ if (!fClusterReconstructor) return;
AliCodeTimerAuto(Form("%s::Digits2Clusters(const AliMUONVDigitStore&,AliMUONVClusterStore&)",
fClusterReconstructor->ClassName()))
AliMUONReconstructor::CreateTracker() const
{
/// Create the MUONTracker object
- /// The MUONTracker is passed the GetOption(), i.e. our own options
CreateTriggerCircuit();
CreateDigitMaker();
CreateTriggerChamberEff();
AliMUONTracker* tracker = new AliMUONTracker(fDigitMaker,fTransformer,fTriggerCircuit,fTrigChamberEff);
- tracker->SetOption(GetOption());
return tracker;
}
void
AliMUONReconstructor::CreateClusterReconstructor() const
{
- /// Create cluster reconstructor, depending on GetOption()
+ /// Create cluster reconstructor, depending on clustering mode set in RecoParam
AliCodeTimerAuto("")
AliMUONVClusterFinder* clusterFinder(0x0);
- TString opt(GetOption());
+ TString opt(fgRecoParam->GetClusteringMode());
opt.ToUpper();
if ( strstr(opt,"PRECLUSTERV2") )
}
else
{
- // default is currently MLEM
- clusterFinder = new AliMUONClusterFinderMLEM(kFALSE,new AliMUONPreClusterFinder);
+ AliError(Form("clustering mode \"%s\" does not exist",opt.Data()));
+ return;
}
- if ( clusterFinder )
- {
- AliInfo(Form("Will use %s for clusterizing",clusterFinder->ClassName()));
- }
+ AliInfo(Form("Will use %s for clusterizing",clusterFinder->ClassName()));
fClusterReconstructor = new AliMUONClusterReconstructor(clusterFinder,fTransformer);
}
if ( strstr(opt,"NOSTATUSMAP") )
{
- AliWarning("Disconnecting status map : SHOULD BE USED FOR DEBUG ONLY. NOT FOR PRODUCTION !!!");
- statusMap = kFALSE;
+ AliWarning("NOSTATUSMAP is obsolete");
}
- fDigitCalibrator = new AliMUONDigitCalibrator(*fCalibrationData,statusMap);
+
+ fDigitCalibrator = new AliMUONDigitCalibrator(*fCalibrationData);
}
//_____________________________________________________________________________