/************************************************************************** * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. * * * * Author: The ALICE Off-line Project. * * Contributors are mentioned in the code where appropriate. * * * * Permission to use, copy, modify and distribute this software and its * * documentation strictly for non-commercial purposes is hereby granted * * without fee, provided that the above copyright notice appears in all * * copies and that both the copyright notice and this permission notice * * appear in the supporting documentation. The authors make no claims * * about the suitability of this software for any purpose. It is * * provided "as is" without express or implied warranty. * **************************************************************************/ //----------------------------------------------------------------------------- /// \class AliMUONRecoParam /// /// Class with MUON reconstruction parameters /// /// \author Philippe Pillot //----------------------------------------------------------------------------- #include "AliMUONRecoParam.h" #include "AliLog.h" #include ClassImp(AliMUONRecoParam) //_____________________________________________________________________________ AliMUONRecoParam::AliMUONRecoParam() : AliDetectorRecoParam(), fClusteringMode("MLEM"), fTrackingMode("KALMAN"), fMostProbBendingMomentum(0.), fMinBendingMomentum(0.), fMaxBendingMomentum(0.), fMaxNonBendingSlope(0.), fNonBendingVertexDispersion(0.), fBendingVertexDispersion(0.), fMaxNonBendingDistanceToTrack(0.), fMaxBendingDistanceToTrack(0.), fSigmaCutForTracking(0.), fSigmaCutForImprovement(0.), fSigmaCutForTrigger(0.), fMaxNormChi2MatchTrigger(0.), fPercentOfFullClusterInESD(10.), fCombinedClusterTrackReco(kFALSE), fTrackAllTracks(kFALSE), fRecoverTracks(kFALSE), fMakeTrackCandidatesFast(kFALSE), fMakeMoreTrackCandidates(kFALSE), fComplementTracks(kFALSE), fImproveTracks(kFALSE), fUseSmoother(kFALSE), fSaveFullClusterInESD(kTRUE), fCalibrationMode("NOGAIN"), fBypassSt45(kFALSE) { /// Constructor SetNameTitle("MUON","MUON"); // use the default parameters for low flux environment SetLowFluxParam(); } //_____________________________________________________________________________ AliMUONRecoParam::~AliMUONRecoParam() { /// Destructor } //_____________________________________________________________________________ Option_t* AliMUONRecoParam::GetCalibrationMode() const { /// Return the calibration mode. Can be : /// NOGAIN : only do pedestal subtraction /// GAIN : do pedestal subtraction, and apply gain correction, but with a /// single capacitance value for all channels /// GAINCONSTANTCAPA : as GAIN, but with a channel-dependent capacitance value return fCalibrationMode.Data(); } //_____________________________________________________________________________ AliMUONRecoParam *AliMUONRecoParam::GetLowFluxParam() { /// Return default reconstruction parameters for low flux environment AliMUONRecoParam *param = new AliMUONRecoParam(); param->SetLowFluxParam(); return param; } //_____________________________________________________________________________ AliMUONRecoParam *AliMUONRecoParam::GetHighFluxParam() { /// Return default reconstruction parameters for high flux environment AliMUONRecoParam *param = new AliMUONRecoParam(); param->SetHighFluxParam(); return param; } //_____________________________________________________________________________ AliMUONRecoParam *AliMUONRecoParam::GetCosmicParam() { /// Return default reconstruction parameters for high flux environment AliMUONRecoParam *param = new AliMUONRecoParam(); param->SetCosmicParam(); return param; } //_____________________________________________________________________________ void AliMUONRecoParam::SetLowFluxParam() { /// Set reconstruction parameters for low flux environment fMostProbBendingMomentum = 2.; fMinBendingMomentum = 1.; fMaxBendingMomentum = 3000.; fMaxNonBendingSlope = 0.3; fNonBendingVertexDispersion = 10.; fBendingVertexDispersion = 10.; fMaxNonBendingDistanceToTrack = 1.; fMaxBendingDistanceToTrack = 1.; fSigmaCutForTracking = 6.; fSigmaCutForImprovement = 5.; fSigmaCutForTrigger = 8.; fMaxNormChi2MatchTrigger = 16.; fCombinedClusterTrackReco = kFALSE; fTrackAllTracks = kTRUE; fRecoverTracks = kTRUE; fMakeTrackCandidatesFast = kFALSE; fMakeMoreTrackCandidates = kFALSE; fComplementTracks = kTRUE; fImproveTracks = kTRUE; fUseSmoother = kTRUE; for (Int_t iCh = 0; iCh < 10; iCh++) fUseChamber[iCh] = kTRUE; for (Int_t iSt = 0; iSt < 5; iSt++) fRequestStation[iSt] = kTRUE; fBypassSt45 = kFALSE; } //_____________________________________________________________________________ void AliMUONRecoParam::SetHighFluxParam() { /// Set reconstruction parameters for high flux environment fMostProbBendingMomentum = 2.; fMinBendingMomentum = 1.; fMaxBendingMomentum = 3000.; fMaxNonBendingSlope = 0.3; fNonBendingVertexDispersion = 10.; fBendingVertexDispersion = 10.; fMaxNonBendingDistanceToTrack = 1.; fMaxBendingDistanceToTrack = 1.; fSigmaCutForTracking = 6.; fSigmaCutForImprovement = 5.; fSigmaCutForTrigger = 8.; fMaxNormChi2MatchTrigger = 16.; fCombinedClusterTrackReco = kFALSE; fTrackAllTracks = kTRUE; fRecoverTracks = kTRUE; fMakeTrackCandidatesFast = kFALSE; fMakeMoreTrackCandidates = kFALSE; fComplementTracks = kTRUE; fImproveTracks = kTRUE; fUseSmoother = kTRUE; for (Int_t iCh = 0; iCh < 10; iCh++) fUseChamber[iCh] = kTRUE; for (Int_t iSt = 0; iSt < 5; iSt++) fRequestStation[iSt] = kTRUE; fBypassSt45 = kFALSE; } //_____________________________________________________________________________ void AliMUONRecoParam::SetCosmicParam() { /// Set reconstruction parameters for high flux environment fMostProbBendingMomentum = 2.; fMinBendingMomentum = 1.; fMaxBendingMomentum = 10000000.; fMaxNonBendingSlope = 0.3; fNonBendingVertexDispersion = 10.; fBendingVertexDispersion = 10.; fMaxNonBendingDistanceToTrack = 10.; fMaxBendingDistanceToTrack = 10.; fSigmaCutForTracking = 20.; fSigmaCutForImprovement = 20.; fSigmaCutForTrigger = 8.; fMaxNormChi2MatchTrigger = 16.; fPercentOfFullClusterInESD = 100.; fCombinedClusterTrackReco = kFALSE; fTrackAllTracks = kTRUE; fRecoverTracks = kTRUE; fMakeTrackCandidatesFast = kFALSE; fMakeMoreTrackCandidates = kFALSE; fComplementTracks = kTRUE; fImproveTracks = kTRUE; fUseSmoother = kTRUE; fSaveFullClusterInESD = kTRUE; for (Int_t iCh = 0; iCh < 10; iCh++) fUseChamber[iCh] = kTRUE; for (Int_t iSt = 0; iSt < 5; iSt++) fRequestStation[iSt] = kTRUE; fBypassSt45 = kFALSE; } //_____________________________________________________________________________ void AliMUONRecoParam::Print(Option_t *option) const { /// print reconstruction parameters /// if option = FULL then print also unused parameters cout<