+
+//-----------------------------------------------------------------------------
+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"
+ "\tEMCEcoreRadius = %f\n"
+ "\tEMCEcore2ESD = %d\n"
+ "\tEMCSubtractPedestals = %d\n"
+ "\tEMCUnfold = %d\n"
+ "\tEMCEnergyCorrectionOn = %d\n"
+ "\tEMCFitterVersion = \"%s\"\n"
+ "\tGlobalAltroOffset = %d\n"
+ "\tGlobalAltroThreshold = %d",
+ fEMCClusteringThreshold,
+ fEMCLocMaxCut,
+ fEMCRawDigitThreshold,
+ fEMCMinE,
+ fEMCW0,
+ fEMCSampleQualityCut,
+ fEMCEcoreRadius,
+ fEMCEcore2ESD,
+ fEMCSubtractPedestals,
+ fEMCUnfold,
+ fEMCEnergyCorrectionOn,
+ fEMCFitterVersion.Data(),
+ fGlobalAltroOffset,
+ fGlobalAltroThreshold));
+
+}
+
+//-----------------------------------------------------------------------------
+AliPHOSRecoParam* AliPHOSRecoParam::GetDefaultParameters()
+{
+ //Default parameters for the reconstruction
+
+ AliPHOSRecoParam* params = new AliPHOSRecoParam();
+ return params;
+}
+
+//-----------------------------------------------------------------------------
+const TObjArray* AliPHOSRecoParam::GetMappings()
+{
+ //Returns array of AliAltroMappings for RCU0..RCU3.
+ //If not found, read it from OCDB.
+
+ //Quick check as follows:
+ // 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();
+
+ if(fgkMaps) return fgkMaps;
+
+ AliCDBEntry* entry = AliCDBManager::Instance()->Get("PHOS/Calib/Mapping");
+ if(entry)
+ fgkMaps = (TObjArray*)entry->GetObject();
+
+ 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;
+
+}