]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALRecParam.cxx
Minor fixes.
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALRecParam.cxx
index efe4f74b595f30ad6e1934bd459aae810f774a19..e4c314e43ed2cb4305f25ec7d57a286a442df38a 100644 (file)
 
 /* $Id$ */
 // --- AliRoot header files ---
+#include "TObjArray.h"
+#include "AliCDBManager.h"
+#include "AliCDBEntry.h"
 #include "AliEMCALRecParam.h"
 #include "AliLog.h"
 
 ClassImp(AliEMCALRecParam)
 
+TObjArray* AliEMCALRecParam::fgkMaps =0; //ALTRO mappings 
+
 //-----------------------------------------------------------------------------
 // Container of EMCAL reconstruction parameters
 // The purpose of this object is to store it to OCDB
@@ -28,15 +33,198 @@ ClassImp(AliEMCALRecParam)
 //-----------------------------------------------------------------------------
 
 AliEMCALRecParam::AliEMCALRecParam():
-  fClusteringThreshold(0),fW0(0),fMinECut(0)
-{}
+  fClusteringThreshold(0.5),fW0(4.5),fMinECut(0.45), fUnfold(kFALSE), fLocMaxCut(0.03), //clustering
+  fTrkCutX(6.0), fTrkCutY(6.0), fTrkCutZ(6.0),  fTrkCutR(10.0),//track matching
+  fTrkCutAlphaMin(-50.0), fTrkCutAlphaMax(50.0), fTrkCutAngle(10000.0), //track matching
+  fHighLowGainFactor(16.0), fOrderParameter(2), fTau(2.35), fNoiseThreshold(3), fNPedSamples(5) //raw signal
+{
+  // default reco values
+
+  //PID parameters (Guenole)
+
+  // as a first step, all array elements are initialized to 0.0
+  Int_t i, j;
+  for (i = 0; i < 6; i++) {
+    for (j = 0; j < 6; j++) {
+      fGamma[i][j] = fHadron[i][j] = fPiZero5to10[i][j] = fPiZero10to60[i][j] = 0.;
+    }
+  }
+
+  // then, only the ones which must be not zero are initialized
+  // while the others will remain to the value 0.0
+
+  fGamma[0][0] =  0.038022;
+  fGamma[0][1] = -0.0001883;
+  fGamma[0][2] =  5.449e-06;
+
+  fGamma[1][0] =  0.207313;
+  fGamma[1][1] = -0.000978;
+  fGamma[1][2] =  0.00001634;
+
+  fGamma[2][0] =  0.043364;
+  fGamma[2][1] = -0.0002048;
+  fGamma[2][2] =  8.661e-06;
+  fGamma[2][3] = -1.353e-07;
+
+  fGamma[3][0] =  0.265004;
+  fGamma[3][1] =  0.061298;
+  fGamma[3][2] = -0.003203;
+  fGamma[3][3] =  4.73e-05;
+
+  fGamma[4][0] =  0.243579;
+  fGamma[4][1] = -1.614e-05;
+
+  fGamma[5][0] =  0.002942;
+  fGamma[5][1] = -3.976e-05;
+
+  fHadron[0][0] =  0.011945 / 3.;
+  fHadron[0][1] =  0.000386 / 3.;
+  fHadron[0][2] = -0.000014 / 3.;
+  fHadron[0][3] =  1.336e-07 / 3.;
+
+  fHadron[1][0] =  0.496544;
+  fHadron[1][1] = -0.003226;
+  fHadron[1][2] =  0.00001678;
+
+  fHadron[2][0] =  0.144838;
+  fHadron[2][1] = -0.002954;
+  fHadron[2][2] =  0.00008754;
+  fHadron[2][3] = -7.587e-07;
+
+  fHadron[3][0] =  1.264461 / 7.;
+  fHadron[3][1] =  0.002097 / 7.;
+
+  fHadron[4][0] =  0.261950;
+  fHadron[4][1] = -0.001078;
+  fHadron[4][2] =  0.00003237;
+  fHadron[4][3] = -3.241e-07;
+  fHadron[4][4] =  0.;
+  fHadron[4][5] =  0.;
+  fHadron[5][0] =  0.010317;
+  fHadron[5][1] =  0.;
+  fHadron[5][2] =  0.;
+  fHadron[5][3] =  0.;
+  fHadron[5][4] =  0.;
+  fHadron[5][5] =  0.;
+
+  fPiZero5to10[0][0] = 0.009138;
+  fPiZero5to10[0][1] = 0.0006377;
+
+  fPiZero5to10[1][0] = 0.08;
+
+  fPiZero5to10[2][0] = -0.061119;
+  fPiZero5to10[2][1] =  0.019013;
+
+  fPiZero5to10[3][0] =  0.2;
+
+  fPiZero5to10[4][0] =  0.252044;
+  fPiZero5to10[4][1] = -0.002315;
+
+  fPiZero5to10[5][0] =  0.002942;
+  fPiZero5to10[5][1] = -3.976e-05;
+  
+  fPiZero10to60[0][0] =  0.009138;
+  fPiZero10to60[0][1] =  0.0006377;
+
+  fPiZero10to60[1][0] =  1.272837;
+  fPiZero10to60[1][1] = -0.069708;
+  fPiZero10to60[1][2] =  0.001568;
+  fPiZero10to60[1][3] = -1.162e-05;
+
+  fPiZero10to60[2][0] =  0.139703;
+  fPiZero10to60[2][1] =  0.003687;
+  fPiZero10to60[2][2] = -0.000568;
+  fPiZero10to60[2][3] =  1.498e-05;
+  fPiZero10to60[2][4] = -1.174e-07;
+
+  fPiZero10to60[3][0] = -0.826367;
+  fPiZero10to60[3][1] =  0.096951;
+  fPiZero10to60[3][2] = -0.002215;
+  fPiZero10to60[3][3] =  2.523e-05;
+
+  fPiZero10to60[4][0] =  0.249890;
+  fPiZero10to60[4][1] = -0.000063;
+
+  fPiZero10to60[5][0] =  0.002942;
+  fPiZero10to60[5][1] = -3.976e-05;
+
+}
 
 //-----------------------------------------------------------------------------
 void AliEMCALRecParam::Print(Option_t *) const
 {
   printf("AliEMCALRecParam::Print()\n");
   // Print reconstruction parameters to stdout
-  AliInfo(Form("Reconstruction parameters:\n fClusteringThreshold=%.3f,\n fW0=%.3f,\n fMinECut=%.3f",
-              fClusteringThreshold,fW0,fMinECut));
+  AliInfo(Form("Clusterization parameters :\n fClusteringThreshold=%.3f,\n fW0=%.3f,\n fMinECut=%.3f,\n fUnfold=%d,\n fLocMaxCut=%.3f \n",
+              fClusteringThreshold,fW0,fMinECut,fUnfold,fLocMaxCut));
+
+  AliInfo(Form("Track-matching cuts :\n x %f, y %f, z %f, R %f \n alphaMin %f, alphaMax %f, Angle %f\n", fTrkCutX, fTrkCutY, fTrkCutZ, fTrkCutR,fTrkCutAlphaMin,fTrkCutAlphaMax, fTrkCutAngle));
+
+  AliInfo(Form("PID parameters, Gamma :\n"));
+  for(Int_t i = 0; i < 6; i++){
+    for(Int_t j = 0; j < 6; j++){
+      printf(" %f, ", fGamma[i][j]);
+    }
+    printf("\n");
+  }
+
+  printf("\n");
+
+  AliInfo(Form("PID parameters, Hadron :\n"));
+  for(Int_t i = 0; i < 6; i++){
+    for(Int_t j = 0; j < 6; j++){
+      printf(" %f, ", fHadron[i][j]);
+    }
+    printf("\n");
+  }
+
+  printf("\n");
+
+  AliInfo(Form("PID parameters, Pi0zero5to10 :\n"));
+  for(Int_t i = 0; i < 6; i++){
+    for(Int_t j = 0; j < 6; j++){
+      printf(" %f, ", fPiZero5to10[i][j]);
+    }
+    printf("\n");
+  }
+
+  printf("\n");
+
+  AliInfo(Form("PID parameters, Pi0zero10to60 :\n"));
+  for(Int_t i = 0; i < 6; i++){
+    for(Int_t j = 0; j < 6; j++){
+      printf(" %f, ", fPiZero10to60[i][j]);
+    }
+    printf("\n");
+  }
+
+  printf("\n");
+
+  AliInfo(Form("Raw signal parameters: \n gain factor=%f, order=%d, tau=%f, noise threshold=%d, nped samples=%d \n",
+              fHighLowGainFactor,fOrderParameter,fTau,fNoiseThreshold,fNPedSamples));
+
+}
+
+//-----------------------------------------------------------------------------                           
+const TObjArray* AliEMCALRecParam::GetMappings()
+{
+  //Returns array of AliAltroMappings for RCU0..RCUX.                                                     
+  //If not found, read it from OCDB.                                                                      
+
+  //Quick check as follows:                                                                               
+  //  root [0]
+  //AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");                       
+  //  root [1] AliCDBManager::Instance()->SetRun(1);                                                      
+  //  root [2] TObjArray* maps = AliEMCALRecParam::GetMappings();                                      
+  //  root [3] maps->Print();                                                                             
+
+  if(fgkMaps) return fgkMaps;
+
+  AliCDBEntry* entry = AliCDBManager::Instance()->Get("EMCAL/Calib/Mapping");
+  if(entry)
+    fgkMaps = (TObjArray*)entry->GetObject();
+
+  return fgkMaps;
 
 }
+