LCOV - code coverage report
Current view: top level - EMCAL/EMCALbase - AliEMCALRecParam.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 160 431 37.1 %
Date: 2016-06-14 17:26:59 Functions: 6 15 40.0 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       3             :  *                                                                        *
       4             :  * Author: The ALICE Off-line Project.                                    *
       5             :  * Contributors are mentioned in the code where appropriate.              *
       6             :  *                                                                        *
       7             :  * Permission to use, copy, modify and distribute this software and its   *
       8             :  * documentation strictly for non-commercial purposes is hereby granted   *
       9             :  * without fee, provided that the above copyright notice appears in all   *
      10             :  * copies and that both the copyright notice and this permission notice   *
      11             :  * appear in the supporting documentation. The authors make no claims     *
      12             :  * about the suitability of this software for any purpose. It is          *
      13             :  * provided "as is" without express or implied warranty.                  *
      14             :  **************************************************************************/
      15             : 
      16             : // --- AliRoot header files ---
      17             : #include "AliCDBManager.h"
      18             : #include "AliCDBEntry.h"
      19             : #include "AliEMCALRecParam.h"
      20             : 
      21             : /// \cond CLASSIMP
      22          42 : ClassImp(AliEMCALRecParam) ;
      23             : /// \endcond
      24             : 
      25             : TObjArray* AliEMCALRecParam::fgkMaps =0; //ALTRO mappings 
      26             : 
      27             : ///
      28             : /// Constructor
      29             : /// Set Default reco values.
      30             : ///
      31             : //-----------------------------------------------------------------------------
      32             : AliEMCALRecParam::AliEMCALRecParam() :
      33          10 : AliDetectorRecoParam(),
      34          10 : fClusteringThreshold(0.1), 
      35          10 : fW0(4.5),
      36          10 : fMinECut(0.05), 
      37          10 : fUnfold(kFALSE), 
      38          10 : fLocMaxCut(0.03), 
      39          10 : fTimeCut(1.),// high value, accept all
      40          10 : fTimeMin(-1.),// small value, accept all
      41          10 : fTimeMax(1.),// high value, accept all//clustering
      42          10 : fTimeCalibration(0),
      43          10 : fClusterizerFlag(AliEMCALRecParam::kClusterizerv1),
      44          10 : fNRowDiff(1),
      45          10 : fNColDiff(1),
      46          10 : fMthCutEta(0.025), 
      47          10 : fMthCutPhi(0.05),
      48          10 : fStep(20),
      49          10 : fTrkCutPt(0.0),
      50          10 : fTrkCutNITS(1.0),
      51          10 : fTrkCutNTPC(20.0), //track matching
      52          10 : fHighLowGainFactor(16.0), 
      53          10 : fOrderParameter(2), 
      54          10 : fTau(2.35), 
      55          10 : fNoiseThreshold(3), 
      56          10 : fNPedSamples(5), 
      57          10 : fRemoveBadChannels(kFALSE),
      58          10 : fFittingAlgorithm(0), 
      59          10 : fUseFALTRO(kTRUE), 
      60          10 : fFitLEDEvents(kFALSE),
      61          10 : fUseL1Phase(kTRUE),// Run1 setting //raw signal
      62          10 : fRejectBelowThreshold(0),
      63          10 : fTrkInITS(kFALSE) // Run1 setting 
      64          50 : {  
      65          10 :   InitPIDParametersForHighFlux();
      66             :   
      67          10 :   InitUnfoldingParameters();  
      68          20 : }
      69             : 
      70             : ///
      71             : /// Copy constructor.
      72             : ///
      73             : //-----------------------------------------------------------------------------
      74             : AliEMCALRecParam::AliEMCALRecParam(const AliEMCALRecParam& rp) :
      75           0 : AliDetectorRecoParam(),
      76           0 : fClusteringThreshold(rp.fClusteringThreshold),
      77           0 : fW0(rp.fW0),
      78           0 : fMinECut(rp.fMinECut), 
      79           0 : fUnfold(rp.fUnfold), 
      80           0 : fLocMaxCut(rp.fLocMaxCut), 
      81           0 : fTimeCut(rp.fTimeCut), 
      82           0 : fTimeMin(rp.fTimeMin),
      83           0 : fTimeMax(rp.fTimeMax),
      84           0 : fTimeCalibration(rp.fTimeCalibration),//clustering
      85           0 : fClusterizerFlag(rp.fClusterizerFlag),
      86           0 : fNRowDiff(rp.fNRowDiff),
      87           0 : fNColDiff(rp.fNColDiff),
      88           0 : fMthCutEta(rp.fMthCutEta), 
      89           0 : fMthCutPhi(rp.fMthCutPhi),
      90           0 : fStep(rp.fStep),
      91           0 : fTrkCutPt(rp.fTrkCutPt),
      92           0 : fTrkCutNITS(rp.fTrkCutNITS),
      93           0 : fTrkCutNTPC(rp.fTrkCutNTPC), // track matching
      94           0 : fHighLowGainFactor(rp.fHighLowGainFactor), 
      95           0 : fOrderParameter(rp.fOrderParameter), 
      96           0 : fTau(rp.fTau), 
      97           0 : fNoiseThreshold(rp.fNoiseThreshold), 
      98           0 : fNPedSamples(rp.fNPedSamples),  
      99           0 : fRemoveBadChannels(rp.fRemoveBadChannels),
     100           0 : fFittingAlgorithm(rp.fFittingAlgorithm),  
     101           0 : fUseFALTRO(rp.fUseFALTRO),
     102           0 : fFitLEDEvents(rp.fFitLEDEvents), 
     103           0 : fUseL1Phase(rp.fUseL1Phase),//raw signal
     104           0 : fRejectBelowThreshold(rp.fRejectBelowThreshold),
     105           0 : fTrkInITS(rp.fTrkInITS)
     106           0 : {  
     107             :   // PID values
     108             :   Int_t i=0, j=0;
     109           0 :   for (i = 0; i < 6; i++) 
     110             :   {
     111           0 :     for (j = 0; j < 6; j++) 
     112             :     {
     113           0 :       fGamma[i][j]       = rp.fGamma[i][j];
     114           0 :       fGamma1to10[i][j]  = rp.fGamma1to10[i][j];
     115           0 :       fHadron[i][j]      = rp.fHadron[i][j];
     116           0 :       fHadron1to10[i][j] = rp.fHadron1to10[i][j];
     117           0 :       fPiZero[i][j]      = rp.fPiZero[i][j];
     118             :     }
     119             :   
     120           0 :     fGammaEnergyProb[i]  = rp.fGammaEnergyProb[i];
     121           0 :     fPiZeroEnergyProb[i] = rp.fPiZeroEnergyProb[i];
     122           0 :     fHadronEnergyProb[i] = rp.fHadronEnergyProb[i];  
     123             :   }
     124             :   
     125             :   // Unfolding  
     126           0 :   for (i = 0; i < 8; i++) 
     127             :   {
     128           0 :     fSSPars[i] = rp.fSSPars[i];
     129             :   }
     130             : 
     131           0 :   for (i = 0; i < 3; i++) 
     132             :   {
     133           0 :     fPar5[i] = rp.fPar5[i];
     134           0 :     fPar6[i] = rp.fPar6[i];
     135             :   }
     136           0 : }
     137             : 
     138             : ///
     139             : /// Assignment operator.
     140             : ///
     141             : //-----------------------------------------------------------------------------
     142             : AliEMCALRecParam& AliEMCALRecParam::operator = (const AliEMCALRecParam& rp)
     143             : {  
     144           0 :   if(this != &rp) 
     145             :   {
     146             :     // clustering
     147           0 :     fClusteringThreshold = rp.fClusteringThreshold;
     148           0 :     fW0        = rp.fW0;
     149           0 :     fMinECut   = rp.fMinECut;
     150           0 :     fUnfold    = rp.fUnfold;
     151           0 :     fLocMaxCut = rp.fLocMaxCut; 
     152           0 :     fTimeCut   = rp.fTimeCut;
     153           0 :     fTimeMax   = rp.fTimeMax;
     154           0 :     fTimeMin   = rp.fTimeMin;
     155           0 :     fTimeCalibration = rp.fTimeCalibration;
     156           0 :     fClusterizerFlag = rp.fClusterizerFlag;
     157           0 :     fNRowDiff  = rp.fNRowDiff;
     158           0 :     fNColDiff  = rp.fNColDiff;
     159             :     // clustering
     160             :     
     161             :     // track matching
     162           0 :     fMthCutEta         = rp.fMthCutEta;
     163           0 :     fMthCutPhi         = rp.fMthCutPhi;
     164           0 :     fStep              = rp.fStep;
     165           0 :     fTrkCutPt          = rp.fTrkCutPt;
     166           0 :     fTrkCutNITS        = rp.fTrkCutNITS;
     167           0 :     fTrkCutNTPC        = rp.fTrkCutNTPC; 
     168           0 :     fTrkInITS          = rp.fTrkInITS;
     169             :     // track matching
     170             :     
     171             :     // raw signal
     172           0 :     fHighLowGainFactor = rp.fHighLowGainFactor; 
     173           0 :     fOrderParameter    = rp.fOrderParameter;
     174           0 :     fTau               = rp.fTau;
     175           0 :     fNoiseThreshold    = rp.fNoiseThreshold;
     176           0 :     fNPedSamples       = rp.fNPedSamples; 
     177           0 :     fRemoveBadChannels = rp.fRemoveBadChannels;
     178           0 :     fFittingAlgorithm  = rp.fFittingAlgorithm;
     179           0 :     fUseFALTRO         = rp.fUseFALTRO;
     180           0 :     fFitLEDEvents      = rp.fFitLEDEvents;
     181           0 :     fUseL1Phase        = rp.fUseL1Phase;
     182             :           // raw signal
     183             :     
     184             :     // PID values
     185             :     Int_t i=0, j=0;
     186           0 :     for (i = 0; i < 6; i++) 
     187             :     {
     188           0 :       for (j = 0; j < 6; j++) 
     189             :       {
     190           0 :         fGamma[i][j]       = rp.fGamma[i][j];
     191           0 :         fGamma1to10[i][j]  = rp.fGamma1to10[i][j];
     192           0 :         fHadron[i][j]      = rp.fHadron[i][j];
     193           0 :         fHadron1to10[i][j] = rp.fHadron1to10[i][j];
     194           0 :         fPiZero[i][j]      = rp.fPiZero[i][j];
     195             :       }
     196           0 :       fGammaEnergyProb[i]  = rp.fGammaEnergyProb[i];
     197           0 :       fPiZeroEnergyProb[i] = rp.fPiZeroEnergyProb[i];
     198           0 :       fHadronEnergyProb[i] = rp.fHadronEnergyProb[i];
     199             :     }
     200             : 
     201             :     // unfolding  
     202           0 :     fRejectBelowThreshold =rp.fRejectBelowThreshold;//unfolding
     203             : 
     204           0 :     for (i = 0; i < 8; i++) 
     205           0 :       fSSPars[i] = rp.fSSPars[i];
     206             :     
     207           0 :     for (i = 0; i < 3; i++) 
     208             :     {
     209           0 :       fPar5[i] = rp.fPar5[i];
     210           0 :       fPar6[i] = rp.fPar6[i];
     211             :     }
     212           0 :   }    
     213             :   
     214           0 :   return *this;
     215             :   
     216             : }
     217             : 
     218             : ///
     219             : /// PID parameters for Pb Pb from Lambda0 distributions fitted by  
     220             : /// a landau inverted + Gaussian for Gammas
     221             : /// and a Landau +Gaussian for Pi0 and hadrons 
     222             : /// New parametrisation for 
     223             : /// lambda0^2 (=x): f(x) = normLandau*TMath::Landau(((1-mpvlandau)-x),mpvLandau,widthLandau)+normgaus*TMath::Gaus(x,meangaus,sigmagaus) for gammas
     224             : /// lambda0^2 (=x): f(x) = normLandau*TMath::Landau(x,mpvLandau,widthLandau)+normgaus*TMath::Gaus(x,meangaus,sigmagaus) for pi0 & hadrons
     225             : ///
     226             : /// See AliEMCALPid 
     227             : /// (index i) refers to each parameters of the f(lambda0^2) 
     228             : /// i=0: normGaus
     229             : /// i=1: meanGaus
     230             : /// i=2: sigmaGaus
     231             : /// i=3: normLandau
     232             : /// i=4: mpvLandau
     233             : /// i=5: sigmaLanda
     234             : /// (index j) refers to the polynomial parameters of the fit of each parameter vs energy
     235             : /// Pb Pb
     236             : ///
     237             : //-----------------------------------------------------------------------------
     238             : void AliEMCALRecParam::InitPIDParametersForHighFlux()
     239             : {
     240             :   // As a first step, all array elements are initialized to 0.0
     241             :   Int_t i=0, j=0;
     242         150 :   for (i = 0; i < 6; i++) {
     243         840 :     for (j = 0; j < 6; j++) {      
     244         360 :       fGamma[i][j] =  fPiZero[i][j] = fHadron[i][j] = 0.; 
     245         360 :       fGamma1to10[i][j] =  fHadron1to10[i][j]= 0.;
     246             :     }
     247             :     
     248          60 :     fGammaEnergyProb[i] =0.; // not yet implemented
     249          60 :     fHadronEnergyProb[i]=0.; 
     250          60 :     fPiZeroEnergyProb[i]=0.; // not yet implemented
     251             :     
     252             :   }
     253             :   
     254             :   // Set here default parameters for Pb+Pb (high flux)
     255             :   
     256          10 :   fGamma[0][0] = -7.656908e-01; 
     257          10 :   fGamma[0][1] =  2.352536e-01; 
     258          10 :   fGamma[0][2] =  1.555996e-02;
     259          10 :   fGamma[0][3] =  2.243525e-04;
     260          10 :   fGamma[0][4] = -2.560087e-06;
     261             :   
     262          10 :   fGamma[1][0] =  6.500216e+00;
     263          10 :   fGamma[1][1] = -2.564958e-01;
     264          10 :   fGamma[1][2] =  1.967894e-01;
     265          10 :   fGamma[1][3] = -3.982273e-04;
     266          10 :   fGamma[1][4] =  2.797737e-06;
     267             :   
     268          10 :   fGamma[2][0] =  2.416489e+00;
     269          10 :   fGamma[2][1] = -1.601258e-01;
     270          10 :   fGamma[2][2] =  3.126839e-02;
     271          10 :   fGamma[2][3] =  3.387532e-04;
     272          10 :   fGamma[2][4] = -4.089145e-06;
     273             :   
     274             :   
     275          10 :   fGamma[3][0] =  0.;
     276          10 :   fGamma[3][1] = -2.696008e+00;
     277          10 :   fGamma[3][2] =  6.920305e-01;
     278          10 :   fGamma[3][3] = -2.281122e-03;
     279          10 :   fGamma[3][4] =  0.;
     280             :   
     281          10 :   fGamma[4][0] =  2.281564e-01;
     282          10 :   fGamma[4][1] = -7.575040e-02;
     283          10 :   fGamma[4][2] =  3.813423e-01;
     284          10 :   fGamma[4][3] = -1.243854e-04;
     285          10 :   fGamma[4][4] =  1.232045e-06;
     286             :   
     287          10 :   fGamma[5][0] = -3.290107e-01;
     288          10 :   fGamma[5][1] =  3.707545e-02;
     289          10 :   fGamma[5][2] =  2.917397e-03;
     290          10 :   fGamma[5][3] =  4.695306e-05;
     291          10 :   fGamma[5][4] = -3.572981e-07;
     292             :   
     293             :   
     294          10 :   fHadron[0][0] =   1.519112e-01;
     295          10 :   fHadron[0][1] = -8.267603e-02;
     296          10 :   fHadron[0][2] =  1.914574e-02;
     297          10 :   fHadron[0][3] = -2.677921e-04;
     298          10 :   fHadron[0][4] =  5.447939e-06;
     299             :   
     300             :   
     301          10 :   fHadron[1][0] = 0.;
     302          10 :   fHadron[1][1] = -7.549870e-02; 
     303          10 :   fHadron[1][2] = 3.930087e-01;
     304          10 :   fHadron[1][3] = -2.368500e-03; 
     305          10 :   fHadron[1][4] = 0.;
     306             :   
     307          10 :   fHadron[2][0] = 0.;
     308          10 :   fHadron[2][1] =  -2.463152e-02;
     309          10 :   fHadron[2][2] = 1.349257e-01;
     310          10 :   fHadron[2][3] = -1.089440e-03;
     311          10 :   fHadron[2][4] = 0.;
     312             :   
     313          10 :   fHadron[3][0] = 0.;
     314          10 :   fHadron[3][1] = 5.101560e-01;
     315          10 :   fHadron[3][2] = 1.458679e-01;
     316          10 :   fHadron[3][3] = 4.903068e-04;
     317          10 :   fHadron[3][4] = 0.;
     318             :   
     319          10 :   fHadron[4][0] = 0.;
     320          10 :   fHadron[4][1] = -6.693943e-03; 
     321          10 :   fHadron[4][2] =  2.444753e-01;
     322          10 :   fHadron[4][3] = -5.553749e-05;
     323          10 :   fHadron[4][4] = 0.;
     324             :   
     325          10 :   fHadron[5][0] = -4.414030e-01;
     326          10 :   fHadron[5][1] = 2.292277e-01;
     327          10 :   fHadron[5][2] = -2.433737e-02;
     328          10 :   fHadron[5][3] =  1.758422e-03;
     329          10 :   fHadron[5][4] = -3.001493e-05;
     330             :   
     331             :   
     332          10 :   fPiZero[0][0] =  5.072157e-01;
     333          10 :   fPiZero[0][1] = -5.352747e-01;
     334          10 :   fPiZero[0][2] =  8.499259e-02;
     335          10 :   fPiZero[0][3] = -3.687401e-03;
     336          10 :   fPiZero[0][4] =  5.482280e-05;
     337             :   
     338             :   
     339          10 :   fPiZero[1][0] =  4.590137e+02; 
     340          10 :   fPiZero[1][1] = -7.079341e+01;
     341          10 :   fPiZero[1][2] =  4.990735e+00;
     342          10 :   fPiZero[1][3] = -1.241302e-01;
     343          10 :   fPiZero[1][4] =  1.065772e-03;
     344             :   
     345             :   
     346          10 :   fPiZero[2][0] =  1.376415e+02;
     347          10 :   fPiZero[2][1] = -3.031577e+01;
     348          10 :   fPiZero[2][2] =  2.474338e+00;
     349          10 :   fPiZero[2][3] = -6.903410e-02;
     350          10 :   fPiZero[2][4] =  6.244089e-04;
     351             :   
     352          10 :   fPiZero[3][0] = 0.;
     353          10 :   fPiZero[3][1] =  1.145983e+00;
     354          10 :   fPiZero[3][2] = -2.476052e-01;
     355          10 :   fPiZero[3][3] =  1.367373e-02;
     356          10 :   fPiZero[3][4] = 0.;
     357             :   
     358          10 :   fPiZero[4][0] = -2.097586e+02;
     359          10 :   fPiZero[4][1] =  6.300800e+01;
     360          10 :   fPiZero[4][2] = -4.038906e+00;
     361          10 :   fPiZero[4][3] =  1.088543e-01;
     362          10 :   fPiZero[4][4] = -9.362485e-04;
     363             :   
     364          10 :   fPiZero[5][0] = -1.671477e+01; 
     365          10 :   fPiZero[5][1] =  2.995415e+00;
     366          10 :   fPiZero[5][2] = -6.040360e-02;
     367          10 :   fPiZero[5][3] = -6.137459e-04;
     368          10 :   fPiZero[5][4] =  1.847328e-05;
     369             :   
     370          10 :   fHadronEnergyProb[0]= 0.;
     371          10 :   fHadronEnergyProb[1]= 0.;
     372          10 :   fHadronEnergyProb[2]=  6.188452e-02;
     373          10 :   fHadronEnergyProb[3]=  2.030230e+00;
     374          10 :   fHadronEnergyProb[4]= -6.402242e-02;
     375          10 : }
     376             : 
     377             : ///
     378             : /// Init parameters used in unfolding
     379             : ///
     380             : //-----------------------------------------------------------------------------
     381             : void AliEMCALRecParam::InitUnfoldingParameters()
     382             : {
     383          20 :   fSSPars[0] = 0.9262;
     384          10 :   fSSPars[1] = 3.365;
     385          10 :   fSSPars[2] = 1.548;
     386          10 :   fSSPars[3] = 0.1625;
     387          10 :   fSSPars[4] = -0.4195;
     388          10 :   fSSPars[5] = 0.;
     389          10 :   fSSPars[6] = 0.;
     390          10 :   fSSPars[7] = 2.332;
     391          10 :   fPar5[0] = 12.31;
     392          10 :   fPar5[1] = -0.007381;
     393          10 :   fPar5[2] = -0.06936;
     394          10 :   fPar6[0] = 0.05452; 
     395          10 :   fPar6[1] = 0.0001228; 
     396          10 :   fPar6[2] = 0.001361; 
     397          10 : }
     398             : 
     399             : ///
     400             : /// Default parameters for the reconstruction.
     401             : //-----------------------------------------------------------------------------
     402             : AliEMCALRecParam* AliEMCALRecParam::GetDefaultParameters()
     403             : {
     404           0 :   AliEMCALRecParam* params = GetLowFluxParam();
     405           0 :   params->SetName("Default - p+p");
     406           0 :   params->SetTitle("Default - p+p");
     407           0 :   return params;  
     408             : }
     409             : 
     410             : ///
     411             : /// Parameters for the reconstruction of calibration runs.
     412             : ///
     413             : //-----------------------------------------------------------------------------
     414             : AliEMCALRecParam* AliEMCALRecParam::GetCalibParam()
     415             : {
     416           0 :   AliEMCALRecParam* params = GetLowFluxParam();
     417             :   //params->SetClusteringThreshold(0.1); // 100 MeV                                             
     418             :   //params->SetMinECut(0.01);  //10 MeV       
     419           0 :   params->SetName("Calibration - LED");
     420           0 :   params->SetTitle("Calibration - LED");
     421           0 :   params->SetEventSpecie(AliRecoParam::kCalib);
     422             :   
     423           0 :   return params;
     424             : }
     425             : 
     426             : ///
     427             : /// Parameters for the reconstruction of cosmic runs.
     428             : ///
     429             : //-----------------------------------------------------------------------------
     430             : AliEMCALRecParam* AliEMCALRecParam::GetCosmicParam()
     431             : {
     432           0 :   AliEMCALRecParam* params = GetLowFluxParam();
     433             :   //params->SetClusteringThreshold(0.1); // 100 MeV                                             
     434             :   //params->SetMinECut(0.01);  //10 MeV       
     435           0 :   params->SetName("Cosmic");
     436           0 :   params->SetTitle("Cosmic");
     437           0 :   params->SetEventSpecie(AliRecoParam::kCosmic);
     438             :   
     439           0 :   return params;
     440             : }
     441             : 
     442             : ///
     443             : /// Low flux/multiplicity ("p+p") parameters for the reconstruction.
     444             : ///
     445             : //-----------------------------------------------------------------------------
     446             : AliEMCALRecParam* AliEMCALRecParam::GetLowFluxParam()
     447             : {
     448           0 :   AliEMCALRecParam* params = new AliEMCALRecParam();
     449           0 :   params->SetClusteringThreshold(0.1); // 100 MeV                                             
     450           0 :   params->SetMinECut(0.01);  //10 MeV       
     451           0 :   params->SetName("Low Flux - p+p");
     452           0 :   params->SetTitle("Low Flux - p+p");
     453           0 :   params->SetEventSpecie(AliRecoParam::kLowMult);
     454           0 :   params->SetExtrapolateStep(1);
     455             :   
     456             :   // PID parameters for pp  implemented 
     457             :   // as a first step, all array elements are initialized to 0.0
     458             :   Int_t i=0, j=0;
     459           0 :   for (i = 0; i < 6; i++) 
     460             :   {
     461           0 :     for (j = 0; j < 6; j++) 
     462             :     {
     463           0 :       params->SetGamma(i,j,0.);
     464           0 :       params->SetGamma1to10(i,j,0.);
     465           0 :       params->SetHadron(i,j,0.);
     466           0 :       params->SetHadron1to10(i,j,0.);
     467           0 :       params->SetPiZero(i,j,0.);
     468             :     }
     469             : 
     470           0 :     params->SetGammaEnergyProb(i,0.); // not yet implemented
     471           0 :     params->SetHadronEnergyProb(i,0.);
     472           0 :     params->SetPiZeroEnergyProb(i,0.); // not yet implemented
     473             :   }
     474             :   
     475           0 :   params->SetGamma(0,0,-7.656908e-01);
     476           0 :   params->SetGamma(0,1,2.352536e-01);
     477           0 :   params->SetGamma(0,2,1.555996e-02);
     478           0 :   params->SetGamma(0,3,2.243525e-04);
     479           0 :   params->SetGamma(0,4,-2.560087e-06);
     480             :   
     481           0 :   params->SetGamma(1,0,6.500216e+00);
     482           0 :   params->SetGamma(1,1,-2.564958e-01);
     483           0 :   params->SetGamma(1,2,1.967894e-01);
     484           0 :   params->SetGamma(1,3,-3.982273e-04);
     485           0 :   params->SetGamma(1,4,2.797737e-06);
     486             :   
     487           0 :   params->SetGamma(2,0,2.416489e+00);
     488           0 :   params->SetGamma(2,1,-1.601258e-01);
     489           0 :   params->SetGamma(2,2,3.126839e-02);
     490           0 :   params->SetGamma(2,3,3.387532e-04);
     491           0 :   params->SetGamma(2,4,-4.089145e-06);
     492             :   
     493           0 :   params->SetGamma(3,0,0.);
     494           0 :   params->SetGamma(3,1,-2.696008e+00); 
     495           0 :   params->SetGamma(3,2, 6.920305e-01);
     496           0 :   params->SetGamma(3,3,-2.281122e-03);
     497           0 :   params->SetGamma(3,4,0.);
     498             :   
     499           0 :   params->SetGamma(4,0,2.281564e-01); 
     500           0 :   params->SetGamma(4,1,-7.575040e-02);
     501           0 :   params->SetGamma(4,2,3.813423e-01);
     502           0 :   params->SetGamma(4,3,-1.243854e-04);
     503           0 :   params->SetGamma(4,4,1.232045e-06);
     504             :   
     505           0 :   params->SetGamma(5,0,-3.290107e-01);
     506           0 :   params->SetGamma(5,1,3.707545e-02);
     507           0 :   params->SetGamma(5,2,2.917397e-03);
     508           0 :   params->SetGamma(5,3,4.695306e-05);
     509           0 :   params->SetGamma(5,4,-3.572981e-07);
     510             :   
     511           0 :   params->SetHadron(0,0,9.482243e-01); 
     512           0 :   params->SetHadron(0,1,-2.780896e-01);
     513           0 :   params->SetHadron(0,2, 2.223507e-02);
     514           0 :   params->SetHadron(0,3,7.294263e-04);
     515           0 :   params->SetHadron(0,4,-5.665872e-06); 
     516             :   
     517           0 :   params->SetHadron(1,0,0.);
     518           0 :   params->SetHadron(1,1,0.);
     519           0 :   params->SetHadron(1,2,2.483298e-01);
     520           0 :   params->SetHadron(1,3,0.);
     521           0 :   params->SetHadron(1,4,0.);
     522             :   
     523           0 :   params->SetHadron(2,0,-5.601199e+00);
     524           0 :   params->SetHadron(2,1,2.097382e+00);
     525           0 :   params->SetHadron(2,2,-2.307965e-01);
     526           0 :   params->SetHadron(2,3,9.206871e-03);
     527           0 :   params->SetHadron(2,4,-8.887548e-05);
     528             :   
     529           0 :   params->SetHadron(3,0,6.543101e+00);
     530           0 :   params->SetHadron(3,1,-2.305203e+00);
     531           0 :   params->SetHadron(3,2,2.761673e-01);
     532           0 :   params->SetHadron(3,3,-5.465855e-03);
     533           0 :   params->SetHadron(3,4,2.784329e-05);
     534             :   
     535           0 :   params->SetHadron(4,0,-2.443530e+01);
     536           0 :   params->SetHadron(4,1,8.902578e+00);
     537           0 :   params->SetHadron(4,2,-5.265901e-01);
     538           0 :   params->SetHadron(4,3,2.549111e-02);
     539           0 :   params->SetHadron(4,4,-2.196801e-04);
     540             :   
     541           0 :   params->SetHadron(5,0,2.102007e-01);
     542           0 :   params->SetHadron(5,1,-3.844418e-02);
     543           0 :   params->SetHadron(5,2,1.234682e-01);
     544           0 :   params->SetHadron(5,3,-3.866733e-03);
     545           0 :   params->SetHadron(5,4,3.362719e-05);
     546             :   
     547           0 :   params->SetPiZero(0,0,5.07215e-01);
     548           0 :   params->SetPiZero(0,1,-5.35274e-01);
     549           0 :   params->SetPiZero(0,2,8.49925e-02);
     550           0 :   params->SetPiZero(0,3,-3.68740e-03);
     551           0 :   params->SetPiZero(0,4,5.48228e-05);
     552             :   
     553           0 :   params->SetPiZero(1,0,4.590137e+02);
     554           0 :   params->SetPiZero(1,1,-7.079341e+01);
     555           0 :   params->SetPiZero(1,2,4.990735e+00);
     556           0 :   params->SetPiZero(1,3,-1.241302e-01);
     557           0 :   params->SetPiZero(1,4,1.065772e-03);
     558             :   
     559           0 :   params->SetPiZero(2,0,1.376415e+02); 
     560           0 :   params->SetPiZero(2,1,-3.031577e+01);
     561           0 :   params->SetPiZero(2,2,2.474338e+00);
     562           0 :   params->SetPiZero(2,3,-6.903410e-02); 
     563           0 :   params->SetPiZero(2,4,6.244089e-04);
     564             :   
     565           0 :   params->SetPiZero(3,0,0.);
     566           0 :   params->SetPiZero(3,1,1.145983e+00);
     567           0 :   params->SetPiZero(3,2,-2.476052e-01);
     568           0 :   params->SetPiZero(3,3,1.367373e-02);
     569           0 :   params->SetPiZero(3,4,0.);
     570             :   
     571           0 :   params->SetPiZero(4,0,-2.09758e+02);
     572           0 :   params->SetPiZero(4,1,6.30080e+01);
     573           0 :   params->SetPiZero(4,2,-4.03890e+00);
     574           0 :   params->SetPiZero(4,3,1.08854e-01);
     575           0 :   params->SetPiZero(4,4,-9.36248e-04);
     576             :   
     577           0 :   params->SetPiZero(5,0,-1.671477e+01);
     578           0 :   params->SetPiZero(5,1,2.995415e+00);
     579           0 :   params->SetPiZero(5,2,-6.040360e-02);
     580           0 :   params->SetPiZero(5,3,-6.137459e-04);
     581           0 :   params->SetPiZero(5,4,1.847328e-05);
     582             :   
     583             :   
     584             :   //     params->SetHadronEnergyProb(0,0.);
     585             :   //     params->SetHadronEnergyProb(1,0.);
     586             :   //     params->SetHadronEnergyProb(2,1.);
     587             :   //     params->SetHadronEnergyProb(3,0.);
     588             :   //     params->SetHadronEnergyProb(4,0.);
     589             :   
     590           0 :   params->SetHadronEnergyProb(0, 4.767543e-02);
     591           0 :   params->SetHadronEnergyProb(1,-1.537523e+00);
     592           0 :   params->SetHadronEnergyProb(2,2.956727e-01);
     593           0 :   params->SetHadronEnergyProb(3,-3.051022e+01);
     594           0 :   params->SetHadronEnergyProb(4,-6.036931e-02);
     595             :   
     596             :   //   Int_t ii= 0;
     597             :   //   Int_t jj= 3;
     598             :   //    AliDebug(1,Form("PID parameters (%d, %d): fGamma=%.3f, fPi=%.3f, fHadron=%.3f",
     599             :   //                    ii,jj, params->GetGamma(ii,jj), params->GetPiZero(ii,jj), params->GetHadron(ii,jj)));
     600             :   //    cout << " Low Flux Parameters fGamma [2][2] = " << params->GetGamma(2,2) << endl;
     601             :   //    cout << " Low Flux Parameters fHadron [2][2] = " << params->GetHadron(2,2) << endl;
     602             :   
     603           0 :   return params; 
     604           0 : }
     605             : 
     606             : ///
     607             : /// High flux/multiplicity ("Pb+Pb") parameters for the reconstruction.
     608             : ///
     609             : //-----------------------------------------------------------------------------
     610             : AliEMCALRecParam* AliEMCALRecParam::GetHighFluxParam()
     611             : {
     612           0 :   AliEMCALRecParam* params = new AliEMCALRecParam();
     613             : 
     614             :   //For now, same as default
     615             :   //if later these need to be modified, here's where it is done
     616           0 :   params->SetName("High Flux - Pb+Pb");
     617           0 :   params->SetTitle("High Flux - Pb+Pb");
     618           0 :   params->SetEventSpecie(AliRecoParam::kHighMult);
     619           0 :   params->SetTrkCutPt(0.15);//This value can be higher if necessary
     620             :   
     621           0 :   return params;
     622           0 : }
     623             : 
     624             : ///
     625             : /// Print reconstruction parameters to stdout.
     626             : /// if nothing is specified print all, if "reco" just clusterization/track matching,
     627             : /// if "pid", just PID parameters, if "raw", just raw utils parameters.
     628             : ///
     629             : //-----------------------------------------------------------------------------
     630             : void AliEMCALRecParam::Print(Option_t * opt) const
     631             : {
     632           0 :   if(!strcmp("",opt) || !strcmp("reco",opt))
     633             :   {
     634           0 :     AliInfo(Form("Clusterizer selected: %d", fClusterizerFlag));
     635           0 :     AliInfo(Form("Clusterization parameters :\n fClusteringThreshold=%.3f,\n fW0=%.3f,\n fMinECut=%.3f,\n fUnfold=%d,\n fLocMaxCut=%.3f,\n fTimeCut=%2.1f ns\n fTimeMin=%2.1f ns\n fTimeMax=%2.1f ns\n fTimeCalibration=%d\n ",
     636             :                  fClusteringThreshold,fW0,fMinECut,fUnfold,fLocMaxCut,fTimeCut*1.e9,fTimeMin*1e9,fTimeMax*1e9,fTimeCalibration));
     637             :     
     638           0 :     AliInfo(Form("Track-matching cuts :\n dEta<%2.3f, dPhi<%2.3f, step=%2.1f[cm], pT>%2.1f, NITS>%2.0f, NTPC>%2.0f; In ITS %d\n", 
     639             :                  fMthCutEta, fMthCutPhi, fStep, fTrkCutPt, fTrkCutNITS,fTrkCutNTPC,fTrkInITS));
     640             :     
     641           0 :     AliInfo(Form("Unfolding parameters, Shower shape function :\n")); 
     642           0 :     for(Int_t i = 0; i < 8; i++){
     643           0 :       printf(" %f, ", fSSPars[i]);
     644             :     }
     645           0 :     printf("\n Parameter 5 : ");
     646           0 :     for(Int_t i = 0; i < 3; i++){
     647           0 :       printf(" %f, ", fPar5[i]);
     648             :     }
     649           0 :     printf("\n Parameter 6 : ");
     650           0 :     for(Int_t i = 0; i < 3; i++){
     651           0 :       printf(" %f, ", fPar6[i]);
     652             :     }
     653           0 :     printf("\n");
     654           0 :     AliInfo(Form("Unfolding fRejectBelowThreshold, 0-split,1-reject: %d\n",fRejectBelowThreshold)); 
     655           0 :   }
     656             :   
     657           0 :   if(!strcmp("",opt) || !strcmp("pid",opt))
     658             :   {
     659           0 :     AliInfo(Form("PID parameters, Gamma :\n"));
     660           0 :     for(Int_t i = 0; i < 6; i++){
     661           0 :       for(Int_t j = 0; j < 6; j++){
     662           0 :         printf(" %f, ", fGamma[i][j]);
     663             :       }
     664           0 :       printf("\n");
     665             :     }
     666             :       
     667           0 :     AliInfo(Form("PID parameters, Hadron :\n"));
     668           0 :     for(Int_t i = 0; i < 6; i++){
     669           0 :       for(Int_t j = 0; j < 6; j++){
     670           0 :         printf(" %f, ", fHadron[i][j]);
     671             :       }
     672           0 :       printf("\n");
     673             :     }
     674             :     
     675           0 :     printf("\n");
     676             :     
     677           0 :     AliInfo(Form("PID parameters, Pi0zero :\n"));
     678           0 :     for(Int_t i = 0; i < 6; i++){
     679           0 :       for(Int_t j = 0; j < 6; j++){
     680           0 :         printf(" %f, ", fPiZero[i][j]);
     681             :       }
     682           0 :       printf("\n");
     683             :     }
     684             :     
     685           0 :     printf("\n");
     686           0 :   }
     687             :   
     688           0 :   if(!strcmp("",opt) || !strcmp("raw",opt))
     689             :   {
     690           0 :     AliInfo(Form("Raw signal parameters: \n gain factor=%f, order=%d, tau=%f, noise threshold=%d, nped samples=%d \n",
     691             :                  fHighLowGainFactor,fOrderParameter,fTau,fNoiseThreshold,fNPedSamples));
     692           0 :     AliInfo(Form("Raw signal: remove bad channels? %d, \n \t with fitting algorithm %d, \n \t Use FALTRO %d, Fit LED events %d, use L1Phase %d\n",
     693             :                  fRemoveBadChannels, fFittingAlgorithm, fUseFALTRO, fFitLEDEvents,fUseL1Phase));
     694           0 :   }
     695           0 : }
     696             : 
     697             : ///
     698             : /// \return array of AliAltroMappings for RCU0..RCUX.
     699             : /// If not found, read it from OCDB.                                           
     700             : ///  
     701             : /// Quick check as follows:                                                   
     702             : ///  root [0] AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT"
     703             : ///  root [1] AliCDBManager::Instance()->SetRun(1);                             
     704             : ///  root [2] TObjArray* maps = AliEMCALRecParam::GetMappings();                
     705             : ///  root [3] maps->Print();      
     706             : ///   
     707             : //-----------------------------------------------------------------------------
     708             : const TObjArray* AliEMCALRecParam::GetMappings()
     709             : {                                            
     710          15 :   if(fgkMaps) return fgkMaps;
     711             :   
     712           6 :   AliCDBEntry* entry = AliCDBManager::Instance()->Get("EMCAL/Calib/Mapping");
     713           3 :   if(entry)
     714           3 :     fgkMaps = (TObjArray*)entry->GetObject();
     715             :   
     716           3 :   return fgkMaps;
     717           6 : }
     718             : 

Generated by: LCOV version 1.11