]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSRecoParam.cxx
trigger class added (M.Ivanov)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSRecoParam.cxx
index 9b5aed093d1527bce64ec7ffb03b25c5e14c72a2..be3ad2b63d4132669afcf46ab3680bd923bccd88 100644 (file)
 // --- AliRoot header files ---
 #include "AliCDBManager.h"
 #include "AliCDBEntry.h"
+#include "AliLog.h"
 #include "AliPHOSRecoParam.h"
 
 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(0.01),
+  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),
-  fEMCDecoderVersion(""),
+  fEMCEnergyCorrectionOn(kTRUE),
+  fEMCFitterVersion(""),
+  fNonlinearityCorrVersion(""),
+  fGlobalAltroOffset(0),
+  fGlobalAltroThreshold(0),
   fCPVClusteringThreshold(0.0),
   fCPVLocMaxCut(0.03),
   fCPVMinE(0.0),
@@ -48,21 +59,31 @@ AliPHOSRecoParam::AliPHOSRecoParam() :
   fCPVUnfold(kTRUE)
 {
   //Default constructor.
+  SetNonlinearityCorrectionVersion("Gustavo2005") ;
 }
 
 //-----------------------------------------------------------------------------
 AliPHOSRecoParam::AliPHOSRecoParam(const AliPHOSRecoParam& ):
   AliDetectorRecoParam(),
+  fNonLinearityParams(3),
   fEMCClusteringThreshold(0.2),
   fEMCLocMaxCut(0.03),
-  fEMCMinE(0.01),
+  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),
-  fEMCDecoderVersion(""),
+  fEMCEnergyCorrectionOn(kTRUE),
+  fEMCFitterVersion(""),
+  fNonlinearityCorrVersion(""),
+  fGlobalAltroOffset(0),
+  fGlobalAltroThreshold(0),
   fCPVClusteringThreshold(0.0),
   fCPVLocMaxCut(0.03),
   fCPVMinE(0.0),
@@ -78,26 +99,71 @@ 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;
-    fEMCDecoderVersion      = recoParam.fEMCDecoderVersion;
+    fEMCEnergyCorrectionOn  = recoParam.fEMCEnergyCorrectionOn;
+    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;
 }
 
+//-----------------------------------------------------------------------------
+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()
 {
@@ -114,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();
@@ -128,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;
+  
+}