#include "AliEMCALReconstructor.h"
#include "AliCDBManager.h"
#include "AliCaloCalibPedestal.h"
-
+#include "AliEMCALCalibData.h"
class AliCDBStorage;
#include "AliCDBEntry.h"
fToUnfold(kFALSE),
fNumberOfECAClusters(0),fCalibData(0),fCaloPed(0),
fADCchannelECA(0.),fADCpedestalECA(0.),fECAClusteringThreshold(0.),fECALocMaxCut(0.),
- fECAW0(0.),fTimeCut(0.),fMinECut(0.)
+ fECAW0(0.),fTimeCut(1.),fMinECut(0.)
{
// ctor with the indication of the file where header Tree and digits Tree are stored
fToUnfold(kFALSE),
fNumberOfECAClusters(0),fCalibData(0), fCaloPed(0),
fADCchannelECA(0.),fADCpedestalECA(0.),fECAClusteringThreshold(0.),fECALocMaxCut(0.),
- fECAW0(0.),fTimeCut(0.),fMinECut(0.)
+ fECAW0(0.),fTimeCut(1.),fMinECut(0.)
{
// ctor with the indication of the file where header Tree and digits Tree are stored
// use this contructor to avoid usage of Init() which uses runloader
fToUnfold(kFALSE),
fNumberOfECAClusters(0),fCalibData(calib), fCaloPed(caloped),
fADCchannelECA(0.),fADCpedestalECA(0.),fECAClusteringThreshold(0.),fECALocMaxCut(0.),
-fECAW0(0.),fTimeCut(0.),fMinECut(0.)
+fECAW0(0.),fTimeCut(1.),fMinECut(0.)
{
// ctor, geometry and calibration are initialized elsewhere.
{
// Initializes the parameters for the Clusterizer
fNumberOfECAClusters = 0;
- fTimeCut = 1. ; // Originally 300 ns time cut, in data time found to be between 350 ns and 1500 ns, relax the cut for the moment.
- //Gustavo, 17-12-09
fCalibData = 0 ;
fCaloPed = 0 ;
fToUnfold = recParam->GetUnfold();
if(fToUnfold) AliWarning("Cluster Unfolding ON. Implementing only for eta=0 case!!!");
fECALocMaxCut = recParam->GetLocMaxCut();
-
- AliDebug(1,Form("Reconstruction parameters: fECAClusteringThreshold=%.3f, fECAW=%.3f, fMinECut=%.3f, fToUnfold=%d, fECALocMaxCut=%.3f",
- fECAClusteringThreshold,fECAW0,fMinECut,fToUnfold,fECALocMaxCut));
+ fTimeCut = recParam->GetTimeCut();// Originally 300 ns time cut, in data time found to be between 350 ns and 1500 ns, relax the cut for the moment, 1s.
+
+ AliDebug(1,Form("Reconstruction parameters: fECAClusteringThreshold=%.3f, fECAW=%.3f, fMinECut=%.3f, fToUnfold=%d, fECALocMaxCut=%.3f, fTimeCut=%f",
+ fECAClusteringThreshold,fECAW0,fMinECut,fToUnfold,fECALocMaxCut,fTimeCut));
}
}
double e = 0.0, ehs = 0.0;
TIter nextdigitC(digitsC);
-
while ( (digit = dynamic_cast<AliEMCALDigit *>(nextdigitC())) ) { // clean up digits
e = Calibrate(digit->GetAmp(), digit->GetId());
if ( e < fMinECut || digit->GetTimeR() > fTimeCut )
#include "AliEMCALSDigitizer.h"
#include "AliEMCALGeometry.h"
#include "AliEMCALTick.h"
+#include "AliEMCALCalibData.h"
ClassImp(AliEMCALDigitizer)
// New parameters JLK 14-Apr-2008
fMeanPhotonElectron = 4400; // electrons per GeV
- fPinNoise = 0.012; // pin noise in GEV from analysis test beam data
+ fPinNoise = 0.012; // pin noise in GeV from analysis test beam data
if (fPinNoise == 0. )
Warning("InitParameters", "No noise added\n") ;
- fDigitThreshold = fPinNoise * 4; // 3 * sigma
+ fDigitThreshold = fPinNoise * 3; // 3 * sigma
fTimeResolution = 0.6e-9 ; // 600 psc
fTimeSignalLength = 1.0e-9 ;
-#ifndef ALIEMCALDigitizer_H
-#define ALIEMCALDigitizer_H
+#ifndef ALIEMCALDIGITIZER_H
+#define ALIEMCALDIGITIZER_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
/* $Id$ */
//_________________________________________________________________________
-// Task Class for making Digits in EMCAL from SIMULATED DATA
-//
+// Class that performs digitization of Summable digits from simulated data
+//
+// In addition it performs mixing of summable digits from different events.
+//
+// For each event two branches are created in TreeD:
+// "EMCAL" - list of digits
+// "AliEMCALDigitizer" - AliEMCALDigitizer with all parameters used in digitization
+//
+// Note, that one cset title for new digits branch, and repeat digitization with
+// another set of parameters.
+//
//*-- Author: Sahal Yacoob (LBL)
// based on : AliPHOSDigit
// July 2003 Yves Schutz : NewIO
// --- ROOT system ---
-#include "TObjString.h"
class TClonesArray ;
class TBrowser;
// --- AliRoot header files ---
#include "AliDigitizer.h"
#include "AliConfig.h"
-#include "AliEMCALCalibData.h"
-
+class AliEMCALCalibData ;
class AliEMCALSDigitizer ;
class AliRunDigitizer ;
};
-#endif // AliEMCALDigitizer_H
+#endif // AliEMCALDIGITIZER_H
fW0(4.5),
fMinECut(0.45),
fUnfold(kFALSE),
- fLocMaxCut(0.03), //clustering
+ fLocMaxCut(0.03),
+ fTimeCut(1.),// high value, accept all//clustering
fTrkCutX(6.0),
fTrkCutY(6.0),
fTrkCutZ(6.0),
fW0(rp.fW0),
fMinECut(rp.fMinECut),
fUnfold(rp.fUnfold),
- fLocMaxCut(rp.fLocMaxCut), //clustering
+ fLocMaxCut(rp.fLocMaxCut),
+ fTimeCut(rp.fTimeCut),//clustering
fTrkCutX(rp.fTrkCutX),
fTrkCutY(rp.fTrkCutY),
fTrkCutZ(rp.fTrkCutZ),
fW0 = rp.fW0;
fMinECut = rp.fMinECut;
fUnfold = rp.fUnfold;
- fLocMaxCut = rp.fLocMaxCut; //clustering
+ fLocMaxCut = rp.fLocMaxCut;
+ fTimeCut = rp.fTimeCut;//clustering
fTrkCutX = rp.fTrkCutX;
fTrkCutY = rp.fTrkCutY;
fTrkCutZ = rp.fTrkCutZ;
void AliEMCALRecParam::Print(Option_t *) const
{
// Print reconstruction parameters to stdout
- 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("Clusterization parameters :\n fClusteringThreshold=%.3f,\n fW0=%.3f,\n fMinECut=%.3f,\n fUnfold=%d,\n fLocMaxCut=%.3f,\n fTimeCut=%f \n",
+ fClusteringThreshold,fW0,fMinECut,fUnfold,fLocMaxCut,fTimeCut));
AliInfo(Form("Track-matching cuts :\n x %f, y %f, z %f, R %f \n alphaMin %f, alphaMax %f, Angle %f, NITS %f, NTPC %\n", fTrkCutX, fTrkCutY, fTrkCutZ, fTrkCutR,fTrkCutAlphaMin,fTrkCutAlphaMax, fTrkCutAngle,fTrkCutNITS,fTrkCutNTPC));
Float_t GetW0 () const {return fW0 ;}
Float_t GetMinECut () const {return fMinECut ;}
Float_t GetLocMaxCut () const {return fLocMaxCut ;}
+ Float_t GetTimeCut () const {return fTimeCut ;}
Bool_t GetUnfold () const {return fUnfold ;}
void SetClusteringThreshold(Float_t thrsh) {fClusteringThreshold = thrsh;}
void SetW0 (Float_t w0) {fW0 = w0 ;}
void SetMinECut (Float_t minEcut) {fMinECut = minEcut ;}
void SetLocMaxCut (Float_t locMaxCut) {fLocMaxCut = locMaxCut ;}
+ void SetTimeCut (Float_t timeCut) {fTimeCut = timeCut ;}
void SetUnfold (Bool_t unfold) {fUnfold = unfold ; if(fUnfold) AliWarning("Cluster Unfolding ON. Implementing only for eta=0 case!!!");}
//PID (Guenole)
private:
//Clustering
- Float_t fClusteringThreshold ; // minimum energy to seed a EC digit in a cluster
- Float_t fW0 ; // logarithmic weight for the cluster center of gravity calculation
+ Float_t fClusteringThreshold ; // Minimum energy to seed a EC digit in a cluster
+ Float_t fW0 ; // Logarithmic weight for the cluster center of gravity calculation
Float_t fMinECut; // Minimum energy for a digit to be a member of a cluster
- Bool_t fUnfold; // flag to perform cluster unfolding
- Float_t fLocMaxCut; // minimum energy difference to consider local maxima in a cluster
-
+ Bool_t fUnfold; // Flag to perform cluster unfolding
+ Float_t fLocMaxCut; // Minimum energy difference to consider local maxima in a cluster
+ Float_t fTimeCut ; // Maximum time of digits in EMC cluster
+
//PID (Guenole)
Double_t fGamma[6][6]; // Parameter to Compute PID for photons
Double_t fGamma1to10[6][6]; // Parameter to Compute PID not used
static TObjArray* fgkMaps; // ALTRO mappings for RCU0..RCUX
- ClassDef(AliEMCALRecParam,7) // Reconstruction parameters
+ ClassDef(AliEMCALRecParam,8) // Reconstruction parameters
} ;
-}
\ No newline at end of file
+}