X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=PHOS%2FAliPHOSRecoParam.cxx;h=be3ad2b63d4132669afcf46ab3680bd923bccd88;hp=8b37915da225156846ed5039fa03e9f5b751b3dc;hb=f9223476c1758e9109c8a971ded5a47ee32739e7;hpb=737c795fa948d1841a5e7618c5e5ac13717067d1 diff --git a/PHOS/AliPHOSRecoParam.cxx b/PHOS/AliPHOSRecoParam.cxx index 8b37915da22..be3ad2b63d4 100644 --- a/PHOS/AliPHOSRecoParam.cxx +++ b/PHOS/AliPHOSRecoParam.cxx @@ -28,22 +28,30 @@ ClassImp(AliPHOSRecoParam) TObjArray* AliPHOSRecoParam::fgkMaps =0; //ALTRO mappings +TObject* AliPHOSRecoParam::fgkTrigParams =0; // Trigger parameters //----------------------------------------------------------------------------- AliPHOSRecoParam::AliPHOSRecoParam() : AliDetectorRecoParam(), + fNonLinearityParams(3), fEMCClusteringThreshold(0.2), fEMCLocMaxCut(0.03), - fEMCMinE(2.), + fEMCRawDigitThreshold(2), + fEMCMinE(0.012), fEMCW0(4.5), fEMCSampleQualityCut(1.), + fTimeGateAmpThresh(10.), + fTimeGateLow(1.e-6), + fTimeGateHigh(1.e-6), fEMCEcoreRadius(3.), fEMCEcore2ESD(kFALSE), fEMCSubtractPedestals(kTRUE), fEMCUnfold(kTRUE), fEMCEnergyCorrectionOn(kTRUE), - fEMCDecoderVersion(""), + fEMCFitterVersion(""), + fNonlinearityCorrVersion(""), fGlobalAltroOffset(0), + fGlobalAltroThreshold(0), fCPVClusteringThreshold(0.0), fCPVLocMaxCut(0.03), fCPVMinE(0.0), @@ -51,23 +59,31 @@ AliPHOSRecoParam::AliPHOSRecoParam() : fCPVUnfold(kTRUE) { //Default constructor. + SetNonlinearityCorrectionVersion("Gustavo2005") ; } //----------------------------------------------------------------------------- AliPHOSRecoParam::AliPHOSRecoParam(const AliPHOSRecoParam& ): AliDetectorRecoParam(), + fNonLinearityParams(3), fEMCClusteringThreshold(0.2), fEMCLocMaxCut(0.03), - fEMCMinE(2.), + fEMCRawDigitThreshold(2), + fEMCMinE(0.012), fEMCW0(4.5), fEMCSampleQualityCut(1.), + fTimeGateAmpThresh(10.), + fTimeGateLow(1.e-6), + fTimeGateHigh(1.e-6), fEMCEcoreRadius(3.), fEMCEcore2ESD(kFALSE), fEMCSubtractPedestals(kTRUE), fEMCUnfold(kTRUE), fEMCEnergyCorrectionOn(kTRUE), - fEMCDecoderVersion(""), + fEMCFitterVersion(""), + fNonlinearityCorrVersion(""), fGlobalAltroOffset(0), + fGlobalAltroThreshold(0), fCPVClusteringThreshold(0.0), fCPVLocMaxCut(0.03), fCPVMinE(0.0), @@ -83,23 +99,31 @@ AliPHOSRecoParam& AliPHOSRecoParam::operator = (const AliPHOSRecoParam& recoPara //Assignment operator. if(this != &recoParam) { + fNonLinearityParams = recoParam.fNonLinearityParams; fEMCClusteringThreshold = recoParam.fEMCClusteringThreshold; fEMCLocMaxCut = recoParam.fEMCLocMaxCut; + fEMCRawDigitThreshold = recoParam.fEMCRawDigitThreshold; fEMCMinE = recoParam.fEMCMinE; fEMCW0 = recoParam.fEMCW0; fEMCSampleQualityCut = recoParam.fEMCSampleQualityCut; + fTimeGateAmpThresh = recoParam.fTimeGateAmpThresh ; + fTimeGateLow = recoParam.fTimeGateLow ; + fTimeGateHigh = recoParam.fTimeGateHigh ; fEMCEcoreRadius = recoParam.fEMCEcoreRadius; fEMCEcore2ESD = recoParam.fEMCEcore2ESD; fEMCSubtractPedestals = recoParam.fEMCSubtractPedestals; fEMCUnfold = recoParam.fEMCUnfold; fEMCEnergyCorrectionOn = recoParam.fEMCEnergyCorrectionOn; - fEMCDecoderVersion = recoParam.fEMCDecoderVersion; + fEMCFitterVersion = recoParam.fEMCFitterVersion; + fNonlinearityCorrVersion= recoParam.fNonlinearityCorrVersion; fGlobalAltroOffset = recoParam.fGlobalAltroOffset; + fGlobalAltroThreshold = recoParam.fGlobalAltroThreshold; fCPVClusteringThreshold = recoParam.fCPVClusteringThreshold; fCPVLocMaxCut = recoParam.fCPVLocMaxCut; fCPVMinE = recoParam.fCPVMinE; fCPVW0 = recoParam.fCPVW0; fCPVUnfold = recoParam.fCPVUnfold; + fNonLinearityParams = recoParam.fNonLinearityParams ; } return *this; @@ -111,6 +135,7 @@ void AliPHOSRecoParam::Print(Option_t * /*option*/) const AliDebug(2,Form("PHOS reconstruction parameters:\n" "\tEMCClusteringThreshold = %f\n" "\tEMCLocMaxCut = %f\n" + "\tEMCRawDigitThreshold = %f\n" "\tEMCMinE = %f\n" "\tEMCW0 = %f\n" "\tEMCSampleQualityCut = %f\n" @@ -119,10 +144,12 @@ void AliPHOSRecoParam::Print(Option_t * /*option*/) const "\tEMCSubtractPedestals = %d\n" "\tEMCUnfold = %d\n" "\tEMCEnergyCorrectionOn = %d\n" - "\tEMCDecoderVersion = \"%s\"\n" - "\tGlobalAltroOffset = %d", + "\tEMCFitterVersion = \"%s\"\n" + "\tGlobalAltroOffset = %d\n" + "\tGlobalAltroThreshold = %d", fEMCClusteringThreshold, fEMCLocMaxCut, + fEMCRawDigitThreshold, fEMCMinE, fEMCW0, fEMCSampleQualityCut, @@ -131,8 +158,9 @@ void AliPHOSRecoParam::Print(Option_t * /*option*/) const fEMCSubtractPedestals, fEMCUnfold, fEMCEnergyCorrectionOn, - fEMCDecoderVersion.Data(), - fGlobalAltroOffset)); + fEMCFitterVersion.Data(), + fGlobalAltroOffset, + fGlobalAltroThreshold)); } @@ -152,7 +180,7 @@ const TObjArray* AliPHOSRecoParam::GetMappings() //If not found, read it from OCDB. //Quick check as follows: - // root [0] AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT"); + // root [0] AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB"); // root [1] AliCDBManager::Instance()->SetRun(1); // root [2] TObjArray* maps = AliPHOSRecoParam::GetMappings(); // root [3] maps->Print(); @@ -166,3 +194,50 @@ const TObjArray* AliPHOSRecoParam::GetMappings() return fgkMaps; } +//----------------------------------------------------------------------------- +void AliPHOSRecoParam::SetNonlinearityCorrectionVersion(const char * ver){ + //Set non-linearity correction version and adjust parameters + + if(strcmp(ver,"NoCorrection")==0){ + fNonLinearityParams.Set(1) ; + fNonLinearityParams.AddAt(0.,0) ; + fNonlinearityCorrVersion=ver ; + return ; + } + if(strcmp(ver,"Henrik2010")==0){ + Float_t pars[7]={1.051,2.54e-003,-1.737e-002,5.69e-002,3.3e-001,1.42e-001,1.50e-002} ; + fNonLinearityParams.Set(7,pars) ; + fNonlinearityCorrVersion=ver ; + return ; + } + if(strcmp(ver,"Gustavo2005")==0){ + Float_t pars[3]={0.0241, 1.0504, 0.000249} ; + fNonLinearityParams.Set(3,pars) ; + fNonlinearityCorrVersion=ver ; + return ; + } + AliError(Form("Non known correction version: %s, still using default \n",ver)) ; + + +} + +//----------------------------------------------------------------------------- +const TObject* AliPHOSRecoParam::GetTriggerParameters() +{ + //Returns trigger parameters. + + //Quick check as follows: + // root [0] AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB"); + // root [1] AliCDBManager::Instance()->SetRun(158171); + // root [2] TObject* parameters = AliPHOSRecoParam::GetTriggerParameters(); + // root [3] parameters->Print(); + + if(fgkTrigParams) return fgkTrigParams; + + AliCDBEntry* entry = AliCDBManager::Instance()->Get("PHOS/Trigger/Parameters"); + if(entry) + fgkTrigParams = entry->GetObject(); + + return fgkTrigParams; + +}