<commit_before>/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

//-----------------------------------------------------------------------------
// Container of EMCAL reconstruction parameters
// The purpose of this object is to store it to OCDB
// and retrieve it in the corresponding reconstruction class:
// AliEMCALClusterizer, AliEMCALPID, AliEMCALTracker ...
//
// Author: <NAME>
//-----------------------------------------------------------------------------

// --- Root header files
//#include "TObjArray.h"

// --- AliRoot header files ---
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "AliEMCALRecParam.h"

ClassImp(AliEMCALRecParam)
  
  TObjArray* AliEMCALRecParam::fgkMaps =0; //ALTRO mappings 

AliEMCALRecParam::AliEMCALRecParam() :
  AliDetectorRecoParam(),
  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),
  fTrkCutAlphaMin(-50.0), 
  fTrkCutAlphaMax(50.0), 
  fTrkCutAngle(10000.0),
  fTrkCutNITS(3.0),
  fTrkCutNTPC(20.0), //track matching
  fHighLowGainFactor(16.0), 
  fOrderParameter(2), 
  fTau(2.35), 
  fNoiseThreshold(3), 
  fNPedSamples(5) //raw signal
{
  // default reco values
  
  // PID parameters for Pb Pb from Lambda0 distributions fitted by  
  // a landau inverted + Gaussian for Gammas
  // and a Landau +Gaussian for Pi0 and hadrons 
  // New parametrisation for 
  // lambda0^2 (=x): f(x) = normLandau*TMath::Landau(((1-mpvlandau)-x),mpvLandau,widthLandau)+normgaus*TMath::Gaus(x,meangaus,sigmagaus) for gammas
  // lambda0^2 (=x): f(x) = normLandau*TMath::Landau(x,mpvLandau,widthLandau)+normgaus*TMath::Gaus(x,meangaus,sigmagaus) for pi0 & hadrons
  
  // See AliEMCALPid 
  // (index i) refers to each parameters of the f(lambda0^2) 
  // i=0: normGaus
  // i=1: meanGaus
  // i=2: sigmaGaus
  // i=3: normLandau
  // i=4: mpvLandau
  // i=5: sigmaLanda
  // (index j) refers to the polynomial parameters of the fit of each parameter vs energy
  // Pb Pb
  
  // 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] =  fPiZero[i][j] = fHadron[i][j] = 0.; 
      fGamma1to10[i][j] =  fHadron1to10[i][j]= 0.;
    }
    fGammaEnergyProb[i]=0.; // not yet implemented
    fHadronEnergyProb[i]=0.; 
    fPiZeroEnergyProb[i]=0.; // not yet implemented
    
    
  }
  // Pb Pb 
  
  fGamma[0][0] = -7.656908e-01; 
  fGamma[0][1] =  2.352536e-01; 
  fGamma[0][2] =  1.555996e-02;
  fGamma[0][3] =  2.243525e-04;
  fGamma[0][4] = -2.560087e-06;
  
  fGamma[1][0] =  6.500216e+00;
  fGamma[1][1] = -2.564958e-01;
  fGamma[1][2] =  1.967894e-01;
  fGamma[1][3] = -3.982273e-04;
  fGamma[1][4] =  2.797737e-06;
  
  fGamma[2][0] =  2.416489e+00;
  fGamma[2][1] = -1.601258e-01;
  fGamma[2][2] =  3.126839e-02;
  fGamma[2][3] =  3.387532e-04;
  fGamma[2][4] = -4.089145e-06;
  
  
  fGamma[3][0] =  0.;
  fGamma[3][1] = -2.696008e+00;
  fGamma[3][2] =  6.920305e-01;
  fGamma[3][3] = -2.281122e-03;
  fGamma[3][4] =  0.;
  
  fGamma[4][0] =  2.281564e-01;
  fGamma[4][1] = -7.575040e-02;
  fGamma[4][2] =  3.813423e-01;
  fGamma[4][3] = -1.243854e-04;
  fGamma[4][4] =  1.232045e-06;
  
  fGamma[5][0] = -3.290107e-01;
  fGamma[5][1] =  3.707545e-02;
  fGamma[5][2] =  2.917397e-03;
  fGamma[5][3] =  4.695306e-05;
  fGamma[5][4] = -3.572981e-07;
  
  
  fHadron[0][0] =   1.519112e-01;
  fHadron[0][1] = -8.267603e-02;
  fHadron[0][2] =  1.914574e-02;
  fHadron[0][3] = -2.677921e-04;
  fHadron[0][4] =  5.447939e-06;
  
  
  fHadron[1][0] = 0.;
  fHadron[1][1] = -7.549870e-02; 
  fHadron[1][2] = 3.930087e-01;
  fHadron[1][3] = -2.368500e-03; 
  fHadron[1][4] = 0.;
  
  
  fHadron[2][0] = 0.;
  fHadron[2][1] =  -2.463152e-02;
  fHadron[2][2] = 1.349257e-01;
  fHadron[2][3] = -1.089440e-03;
  fHadron[2][4] = 0.;
  
  
  
  fHadron[3][0] = 0.;
  fHadron[3][1] = 5.101560e-01;
  fHadron[3][2] = 1.458679e-01;
  fHadron[3][3] = 4.903068e-04;
  fHadron[3][4] = 0.;
  
  fHadron[4][0] = 0.;
  fHadron[4][1] = -6.693943e-03; 
  fHadron[4][2] =  2.444753e-01;
  fHadron[4][3] = -5.553749e-05;
  fHadron[4][4] = 0.;
  
  fHadron[5][0] = -4.414030e-01;
  fHadron[5][1] = 2.292277e-01;
  fHadron[5][2] = -2.433737e-02;
  fHadron[5][3] =  1.758422e-03;
  fHadron[5][4] = -3.001493e-05;
  
  
  fPiZero[0][0] =  5.072157e-01;
  fPiZero[0][1] = -5.352747e-01;
  fPiZero[0][2] =  8.499259e-02;
  fPiZero[0][3] = -3.687401e-03;
  fPiZero[0][4] =  5.482280e-05;
  
  
  fPiZero[1][0] =  4.590137e+02; 
  fPiZero[1][1] = -7.079341e+01;
  fPiZero[1][2] =  4.990735e+00;
  fPiZero[1][3] = -1.241302e-01;
  fPiZero[1][4] =  1.065772e-03;
  
  
  fPiZero[2][0] =  1.376415e+02;
  fPiZero[2][1] = -3.031577e+01;
  fPiZero[2][2] =  2.474338e+00;
  fPiZero[2][3] = -6.903410e-02;
  fPiZero[2][4] =  6.244089e-04;
  
  fPiZero[3][0] = 0.;
  fPiZero[3][1] =  1.145983e+00;
  fPiZero[3][2] = -2.476052e-01;
  fPiZero[3][3] =  1.367373e-02;
  fPiZero[3][4] = 0.;
  
  fPiZero[4][0] = -2.097586e+02;
  fPiZero[4][1] =  6.300800e+01;
  fPiZero[4][2] = -4.038906e+00;
  fPiZero[4][3] =  1.088543e-01;
  fPiZero[4][4] = -9.362485e-04;
  
  fPiZero[5][0] = -1.671477e+01; 
  fPiZero[5][1] =  2.995415e+00;
  fPiZero[5][2] = -6.040360e-02;
  fPiZero[5][3] = -6.137459e-04;
  fPiZero[5][4] =  1.847328e-05;
  
  // High flux ones pp 
  
  fHadronEnergyProb[0]= 0.;
  fHadronEnergyProb[1]= 0.;
  fHadronEnergyProb[2]=  6.188452e-02;
  fHadronEnergyProb[3]=  2.030230e+00;
  fHadronEnergyProb[4]= -6.402242e-02;
  
  
}



//-----------------------------------------------------------------------------
AliEMCALRecParam::AliEMCALRecParam(const AliEMCALRecParam& rp) :
  AliDetectorRecoParam(),
  fClusteringThreshold(rp.fClusteringThreshold),
  fW0(rp.fW0),
  fMinECut(rp.fMinECut), 
  fUnfold(rp.fUnfold), 
  fLocMaxCut(rp.fLocMaxCut), //clustering
  fTrkCutX(rp.fTrkCutX), 
  fTrkCutY(rp.fTrkCutY), 
  fTrkCutZ(rp.fTrkCutZ),  
  fTrkCutR(rp.fTrkCutR),
  fTrkCutAlphaMin(rp.fTrkCutAlphaMin), 
  fTrkCutAlphaMax(rp.fTrkCutAlphaMax), 
  fTrkCutAngle(rp.fTrkCutAngle), 
  fTrkCutNITS(rp.fTrkCutNITS),
  fTrkCutNTPC(rp.fTrkCutNTPC), // track matching
  fHighLowGainFactor(rp.fHighLowGainFactor), 
  fOrderParameter(rp.fOrderParameter), 
  fTau(rp.fTau), 
  fNoiseThreshold(rp.fNoiseThreshold), 
  fNPedSamples(rp.fNPedSamples) //raw signal
{
  //copy constructor
  
  //PID values
  Int_t i, j;
  for (i = 0; i < 6; i++) {
    for (j = 0; j < 6; j++) {
      fGamma[i][j] = rp.fGamma[i][j];
      fGamma1to10[i][j] = rp.fGamma1to10[i][j];
      fHadron[i][j] = rp.fHadron[i][j];
      fHadron1to10[i][j] = rp.fHadron1to10[i][j];
      fPiZero[i][j] = rp.fPiZero[i][j];
    }
    fGammaEnergyProb[i] = rp.fGammaEnergyProb[i];
    fPiZeroEnergyProb[i] = rp.fPiZeroEnergyProb[i];
    fHadronEnergyProb[i] = rp.fHadronEnergyProb[i];
    
  }
  
}

//-----------------------------------------------------------------------------
AliEMCALRecParam& AliEMCALRecParam::operator = (const AliEMCALRecParam& rp)
{
  //assignment operator
  
  if(this != &rp) {
    fClusteringThreshold = rp.fClusteringThreshold;
    fW0 = rp.fW0;
    fMinECut = rp.fMinECut;
    fUnfold = rp.fUnfold;
    fLocMaxCut = rp.fLocMaxCut; //clustering
    fTrkCutX = rp.fTrkCutX;
    fTrkCutY = rp.fTrkCutY;
    fTrkCutZ = rp.fTrkCutZ;
    fTrkCutR = rp.fTrkCutR;
    fTrkCutAlphaMin = rp.fTrkCutAlphaMin;
    fTrkCutAlphaMax = rp.fTrkCutAlphaMax;
    fTrkCutAngle = rp.fTrkCutAngle; 
    fTrkCutNITS = rp.fTrkCutNITS;
    fTrkCutNTPC = rp.fTrkCutNTPC; //track matching
    fHighLowGainFactor = rp.fHighLowGainFactor; 
    fOrderParameter = rp.fOrderParameter;
    fTau = rp.fTau;
    fNoiseThreshold = rp.fNoiseThreshold;
    fNPedSamples = rp.fNPedSamples; //raw signal
    
    //PID values
    Int_t i, j;
    for (i = 0; i < 6; i++) {
      for (j = 0; j < 6; j++) {
	fGamma[i][j] = rp.fGamma[i][j];
	fGamma1to10[i][j] = rp.fGamma1to10[i][j];
	fHadron[i][j] = rp.fHadron[i][j];
	fHadron1to10[i][j] = rp.fHadron1to10[i][j];
	fPiZero[i][j] = rp.fPiZero[i][j];
      }
      fGammaEnergyProb[i] = rp.fGammaEnergyProb[i];
      fPiZeroEnergyProb[i] = rp.fPiZeroEnergyProb[i];
      fHadronEnergyProb[i] = rp.fHadronEnergyProb[i];
    }
    
  }    
  
  return *this;
  
}

//-----------------------------------------------------------------------------
AliEMCALRecParam* AliEMCALRecParam::GetDefaultParameters()
{
  //default parameters for the reconstruction
  AliEMCALRecParam* params = new AliEMCALRecParam();
  params->SetName("Default - Pb+Pb");
  params->SetTitle("Default - Pb+Pb");
  return params;
  
}

//-----------------------------------------------------------------------------
AliEMCALRecParam* AliEMCALRecParam::GetCalibParam()
{
  //parameters for the reconstruction of calibration runs
  AliEMCALRecParam* params = GetLowFluxParam();
  //params->SetClusteringThreshold(0.2); // 200 MeV                                             
  //params->SetMinECut(0.01);  //10 MeV       
  params->SetName("Calibration - LED");
  params->SetTitle("Calibration - LED");
  params->SetEventSpecie(AliRecoParam::kCalib);
  
  return params;
  
}

//-----------------------------------------------------------------------------
AliEMCALRecParam* AliEMCALRecParam::GetCosmicParam()
{
  //parameters for the reconstruction of cosmic runs
  AliEMCALRecParam* params = GetLowFluxParam();
  //params->SetClusteringThreshold(0.2); // 200 MeV                                             
  //params->SetMinECut(0.01);  //10 MeV       
  params->SetName("Cosmic");
  params->SetTitle("Cosmic");
  params->SetEventSpecie(AliRecoParam::kCosmic);
  
  return params;
  
}


//-----------------------------------------------------------------------------
AliEMCALRecParam* AliEMCALRecParam::GetLowFluxParam()
{
  //low flux/multiplicity ("p+p") parameters for the reconstruction
  AliEMCALRecParam* params = new AliEMCALRecParam();
  params->SetClusteringThreshold(0.2); // 200 MeV                                             
  params->SetMinECut(0.01);  //10 MeV       
  params->SetName("Low Flux - p+p");
  params->SetTitle("Low Flux - p+p");
  params->SetEventSpecie(AliRecoParam::kLowMult);
  
  
  //PID parameters for pp  implemented 
  // 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++) {
      params->SetGamma(i,j,0.);
      params->SetGamma1to10(i,j,0.);
      params->SetHadron(i,j,0.);
      params->SetHadron1to10(i,j,0.);
      params->SetPiZero(i,j,0.);
      
    }
    params->SetGammaEnergyProb(i,0.); // not yet implemented
    params->SetHadronEnergyProb(i,0.);
    params->SetPiZeroEnergyProb(i,0.); // not yet implemented
  }
  
  <commit_msg>Decrease cluster threshold for low flux-cosmic-calib from 200 MeV to 100 MeV<commit_after>/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

//-----------------------------------------------------------------------------
// Container of EMCAL reconstruction parameters
// The purpose of this object is to store it to OCDB
// and retrieve it in the corresponding reconstruction class:
// AliEMCALClusterizer, AliEMCALPID, AliEMCALTracker ...
//
// Author: <NAME>
//-----------------------------------------------------------------------------

// --- Root header files
//#include "TObjArray.h"

// --- AliRoot header files ---
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "AliEMCALRecParam.h"

ClassImp(AliEMCALRecParam)
  
  TObjArray* AliEMCALRecParam::fgkMaps =0; //ALTRO mappings 

AliEMCALRecParam::AliEMCALRecParam() :
  AliDetectorRecoParam(),
  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),
  fTrkCutAlphaMin(-50.0), 
  fTrkCutAlphaMax(50.0), 
  fTrkCutAngle(10000.0),
  fTrkCutNITS(3.0),
  fTrkCutNTPC(20.0), //track matching
  fHighLowGainFactor(16.0), 
  fOrderParameter(2), 
  fTau(2.35), 
  fNoiseThreshold(3), 
  fNPedSamples(5) //raw signal
{
  // default reco values
  
  // PID parameters for Pb Pb from Lambda0 distributions fitted by  
  // a landau inverted + Gaussian for Gammas
  // and a Landau +Gaussian for Pi0 and hadrons 
  // New parametrisation for 
  // lambda0^2 (=x): f(x) = normLandau*TMath::Landau(((1-mpvlandau)-x),mpvLandau,widthLandau)+normgaus*TMath::Gaus(x,meangaus,sigmagaus) for gammas
  // lambda0^2 (=x): f(x) = normLandau*TMath::Landau(x,mpvLandau,widthLandau)+normgaus*TMath::Gaus(x,meangaus,sigmagaus) for pi0 & hadrons
  
  // See AliEMCALPid 
  // (index i) refers to each parameters of the f(lambda0^2) 
  // i=0: normGaus
  // i=1: meanGaus
  // i=2: sigmaGaus
  // i=3: normLandau
  // i=4: mpvLandau
  // i=5: sigmaLanda
  // (index j) refers to the polynomial parameters of the fit of each parameter vs energy
  // Pb Pb
  
  // 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] =  fPiZero[i][j] = fHadron[i][j] = 0.; 
      fGamma1to10[i][j] =  fHadron1to10[i][j]= 0.;
    }
    fGammaEnergyProb[i]=0.; // not yet implemented
    fHadronEnergyProb[i]=0.; 
    fPiZeroEnergyProb[i]=0.; // not yet implemented
    
    
  }
  // Pb Pb 
  
  fGamma[0][0] = -7.656908e-01; 
  fGamma[0][1] =  2.352536e-01; 
  fGamma[0][2] =  1.555996e-02;
  fGamma[0][3] =  2.243525e-04;
  fGamma[0][4] = -2.560087e-06;
  
  fGamma[1][0] =  6.500216e+00;
  fGamma[1][1] = -2.564958e-01;
  fGamma[1][2] =  1.967894e-01;
  fGamma[1][3] = -3.982273e-04;
  fGamma[1][4] =  2.797737e-06;
  
  fGamma[2][0] =  2.416489e+00;
  fGamma[2][1] = -1.601258e-01;
  fGamma[2][2] =  3.126839e-02;
  fGamma[2][3] =  3.387532e-04;
  fGamma[2][4] = -4.089145e-06;
  
  
  fGamma[3][0] =  0.;
  fGamma[3][1] = -2.696008e+00;
  fGamma[3][2] =  6.920305e-01;
  fGamma[3][3] = -2.281122e-03;
  fGamma[3][4] =  0.;
  
  fGamma[4][0] =  2.281564e-01;
  fGamma[4][1] = -7.575040e-02;
  fGamma[4][2] =  3.813423e-01;
  fGamma[4][3] = -1.243854e-04;
  fGamma[4][4] =  1.232045e-06;
  
  fGamma[5][0] = -3.290107e-01;
  fGamma[5][1] =  3.707545e-02;
  fGamma[5][2] =  2.917397e-03;
  fGamma[5][3] =  4.695306e-05;
  fGamma[5][4] = -3.572981e-07;
  
  
  fHadron[0][0] =   1.519112e-01;
  fHadron[0][1] = -8.267603e-02;
  fHadron[0][2] =  1.914574e-02;
  fHadron[0][3] = -2.677921e-04;
  fHadron[0][4] =  5.447939e-06;
  
  
  fHadron[1][0] = 0.;
  fHadron[1][1] = -7.549870e-02; 
  fHadron[1][2] = 3.930087e-01;
  fHadron[1][3] = -2.368500e-03; 
  fHadron[1][4] = 0.;
  
  
  fHadron[2][0] = 0.;
  fHadron[2][1] =  -2.463152e-02;
  fHadron[2][2] = 1.349257e-01;
  fHadron[2][3] = -1.089440e-03;
  fHadron[2][4] = 0.;
  
  
  
  fHadron[3][0] = 0.;
  fHadron[3][1] = 5.101560e-01;
  fHadron[3][2] = 1.458679e-01;
  fHadron[3][3] = 4.903068e-04;
  fHadron[3][4] = 0.;
  
  fHadron[4][0] = 0.;
  fHadron[4][1] = -6.693943e-03; 
  fHadron[4][2] =  2.444753e-01;
  fHadron[4][3] = -5.553749e-05;
  fHadron[4][4] = 0.;
  
  fHadron[5][0] = -4.414030e-01;
  fHadron[5][1] = 2.292277e-01;
  fHadron[5][2] = -2.433737e-02;
  fHadron[5][3] =  1.758422e-03;
  fHadron[5][4] = -3.001493e-05;
  
  
  fPiZero[0][0] =  5.072157e-01;
  fPiZero[0][1] = -5.352747e-01;
  fPiZero[0][2] =  8.499259e-02;
  fPiZero[0][3] = -3.687401e-03;
  fPiZero[0][4] =  5.482280e-05;
  
  
  fPiZero[1][0] =  4.590137e+02; 
  fPiZero[1][1] = -7.079341e+01;
  fPiZero[1][2] =  4.990735e+00;
  fPiZero[1][3] = -1.241302e-01;
  fPiZero[1][4] =  1.065772e-03;
  
  
  fPiZero[2][0] =  1.376415e+02;
  fPiZero[2][1] = -3.031577e+01;
  fPiZero[2][2] =  2.474338e+00;
  fPiZero[2][3] = -6.903410e-02;
  fPiZero[2][4] =  6.244089e-04;
  
  fPiZero[3][0] = 0.;
  fPiZero[3][1] =  1.145983e+00;
  fPiZero[3][2] = -2.476052e-01;
  fPiZero[3][3] =  1.367373e-02;
  fPiZero[3][4] = 0.;
  
  fPiZero[4][0] = -2.097586e+02;
  fPiZero[4][1] =  6.300800e+01;
  fPiZero[4][2] = -4.038906e+00;
  fPiZero[4][3] =  1.088543e-01;
  fPiZero[4][4] = -9.362485e-04;
  
  fPiZero[5][0] = -1.671477e+01; 
  fPiZero[5][1] =  2.995415e+00;
  fPiZero[5][2] = -6.040360e-02;
  fPiZero[5][3] = -6.137459e-04;
  fPiZero[5][4] =  1.847328e-05;
  
  // High flux ones pp 
  
  fHadronEnergyProb[0]= 0.;
  fHadronEnergyProb[1]= 0.;
  fHadronEnergyProb[2]=  6.188452e-02;
  fHadronEnergyProb[3]=  2.030230e+00;
  fHadronEnergyProb[4]= -6.402242e-02;
  
  
}



//-----------------------------------------------------------------------------
AliEMCALRecParam::AliEMCALRecParam(const AliEMCALRecParam& rp) :
  AliDetectorRecoParam(),
  fClusteringThreshold(rp.fClusteringThreshold),
  fW0(rp.fW0),
  fMinECut(rp.fMinECut), 
  fUnfold(rp.fUnfold), 
  fLocMaxCut(rp.fLocMaxCut), //clustering
  fTrkCutX(rp.fTrkCutX), 
  fTrkCutY(rp.fTrkCutY), 
  fTrkCutZ(rp.fTrkCutZ),  
  fTrkCutR(rp.fTrkCutR),
  fTrkCutAlphaMin(rp.fTrkCutAlphaMin), 
  fTrkCutAlphaMax(rp.fTrkCutAlphaMax), 
  fTrkCutAngle(rp.fTrkCutAngle), 
  fTrkCutNITS(rp.fTrkCutNITS),
  fTrkCutNTPC(rp.fTrkCutNTPC), // track matching
  fHighLowGainFactor(rp.fHighLowGainFactor), 
  fOrderParameter(rp.fOrderParameter), 
  fTau(rp.fTau), 
  fNoiseThreshold(rp.fNoiseThreshold), 
  fNPedSamples(rp.fNPedSamples) //raw signal
{
  //copy constructor
  
  //PID values
  Int_t i, j;
  for (i = 0; i < 6; i++) {
    for (j = 0; j < 6; j++) {
      fGamma[i][j] = rp.fGamma[i][j];
      fGamma1to10[i][j] = rp.fGamma1to10[i][j];
      fHadron[i][j] = rp.fHadron[i][j];
      fHadron1to10[i][j] = rp.fHadron1to10[i][j];
      fPiZero[i][j] = rp.fPiZero[i][j];
    }
    fGammaEnergyProb[i] = rp.fGammaEnergyProb[i];
    fPiZeroEnergyProb[i] = rp.fPiZeroEnergyProb[i];
    fHadronEnergyProb[i] = rp.fHadronEnergyProb[i];
    
  }
  
}

//-----------------------------------------------------------------------------
AliEMCALRecParam& AliEMCALRecParam::operator = (const AliEMCALRecParam& rp)
{
  //assignment operator
  
  if(this != &rp) {
    fClusteringThreshold = rp.fClusteringThreshold;
    fW0 = rp.fW0;
    fMinECut = rp.fMinECut;
    fUnfold = rp.fUnfold;
    fLocMaxCut = rp.fLocMaxCut; //clustering
    fTrkCutX = rp.fTrkCutX;
    fTrkCutY = rp.fTrkCutY;
    fTrkCutZ = rp.fTrkCutZ;
    fTrkCutR = rp.fTrkCutR;
    fTrkCutAlphaMin = rp.fTrkCutAlphaMin;
    fTrkCutAlphaMax = rp.fTrkCutAlphaMax;
    fTrkCutAngle = rp.fTrkCutAngle; 
    fTrkCutNITS = rp.fTrkCutNITS;
    fTrkCutNTPC = rp.fTrkCutNTPC; //track matching
    fHighLowGainFactor = rp.fHighLowGainFactor; 
    fOrderParameter = rp.fOrderParameter;
    fTau = rp.fTau;
    fNoiseThreshold = rp.fNoiseThreshold;
    fNPedSamples = rp.fNPedSamples; //raw signal
    
    //PID values
    Int_t i, j;
    for (i = 0; i < 6; i++) {
      for (j = 0; j < 6; j++) {
	fGamma[i][j] = rp.fGamma[i][j];
	fGamma1to10[i][j] = rp.fGamma1to10[i][j];
	fHadron[i][j] = rp.fHadron[i][j];
	fHadron1to10[i][j] = rp.fHadron1to10[i][j];
	fPiZero[i][j] = rp.fPiZero[i][j];
      }
      fGammaEnergyProb[i] = rp.fGammaEnergyProb[i];
      fPiZeroEnergyProb[i] = rp.fPiZeroEnergyProb[i];
      fHadronEnergyProb[i] = rp.fHadronEnergyProb[i];
    }
    
  }    
  
  return *this;
  
}

//-----------------------------------------------------------------------------
AliEMCALRecParam* AliEMCALRecParam::GetDefaultParameters()
{
  //default parameters for the reconstruction
  AliEMCALRecParam* params = new AliEMCALRecParam();
  params->SetName("Default - Pb+Pb");
  params->SetTitle("Default - Pb+Pb");
  return params;
  
}

//-----------------------------------------------------------------------------
AliEMCALRecParam* AliEMCALRecParam::GetCalibParam()
{
  //parameters for the reconstruction of calibration runs
  AliEMCALRecParam* params = GetLowFluxParam();
  //params->SetClusteringThreshold(0.2); // 200 MeV                                             
  //params->SetMinECut(0.01);  //10 MeV       
  params->SetName("Calibration - LED");
  params->SetTitle("Calibration - LED");
  params->SetEventSpecie(AliRecoParam::kCalib);
  
  return params;
  
}

//-----------------------------------------------------------------------------
AliEMCALRecParam* AliEMCALRecParam::GetCosmicParam()
{
  //parameters for the reconstruction of cosmic runs
  AliEMCALRecParam* params = GetLowFluxParam();
  //params->SetClusteringThreshold(0.2); // 200 MeV                                             
  //params->SetMinECut(0.01);  //10 MeV       
  params->SetName("Cosmic");
  params->SetTitle("Cosmic");
  params->SetEventSpecie(AliRecoParam::kCosmic);
  
  return params;
  
}


//-----------------------------------------------------------------------------
AliEMCALRecParam* AliEMCALRecParam::GetLowFluxParam()
{
  //low flux/multiplicity ("p+p") parameters for the reconstruction
  AliEMCALRecParam* params = new AliEMCALRecParam();
  params->SetClusteringThreshold(0.1); // 200 MeV                                             
  params->SetMinECut(0.01);  //10 MeV       
  params->SetName("Low Flux - p+p");
  params->SetTitle("Low Flux - p+p");
  params->SetEventSpecie(AliRecoParam::kLowMult);
  
  
  //PID parameters for pp  implemented 
  // 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++) {
      params->SetGamma(i,j,0.);
      params->SetGamma1to10(i,j,0.);
      params->SetHadron(i,j,0.);
      params->SetHadron1to10(i,j,0.);
      params->SetPiZero(i,j,0.);
      
    }
    params->SetGammaEnergyProb(i,0.); // not yet implemented
    params->SetHadronEnergyProb(i,0.);
    params->SetPiZeroEnergyProb(i,0.); // not yet implemented
  }
  
  
{'fraction_non_alphanumeric': 0.22164883042172498, 'fraction_numerical': 0.09348166321221607, 'mean_word_length': 2.3611032129655958, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 55, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 26, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7557457', 'n_tokens_mistral': 11140, 'n_tokens_neox': 9765, 'n_words': 1563}