#include "TF1.h"
#include "TGraph.h"
+#include <TRandom.h>
class TSystem;
class AliLog;
// Signal shape parameters
Double_t AliEMCALRawUtils::fgTimeBinWidth = 100E-9 ; // each sample is 100 ns
-Double_t AliEMCALRawUtils::fgTimeTrigger = 1.5E-6 ; // 15 time bins ~ 1.5 musec
+Double_t AliEMCALRawUtils::fgTimeTrigger = 1.5E-6 ; // 15 time bins ~ 1.5 musec
+Int_t AliEMCALRawUtils::fgkTimeBins = 50; // number of sampling bins of the raw RO signal
// some digitization constants
Int_t AliEMCALRawUtils::fgThreshold = 1;
for (Int_t i=0; i < nDDL; i++)
buffers[i] = 0;
- Int_t adcValuesLow[fgkTimeBins];
- Int_t adcValuesHigh[fgkTimeBins];
+ // Int_t adcValuesLow[fgkTimeBins];
+ //Int_t adcValuesHigh[fgkTimeBins];
+ Int_t* adcValuesLow = new Int_t[fgkTimeBins];
+ Int_t* adcValuesHigh = new Int_t [fgkTimeBins];
// loop over digits (assume ordered digits)
for (Int_t iDigit = 0; iDigit < digits->GetEntries(); iDigit++) {
buffers[iDDL]->WriteChannel(ieta,iphi, 1, GetRawFormatTimeBins(), adcValuesHigh, fgThreshold);
}
}
+ delete [] adcValuesLow;
+ delete [] adcValuesHigh;
// write headers and close files
for (Int_t i=0; i < nDDL; i++) {
//According to Terry Awes, 13-Apr-2008
//add gaussian noise in quadrature to each sample
- //Double_t noise = gRandom->Gaus(0.,fgFEENoise);
+ Double_t noise = gRandom->Gaus(0.,fgFEENoise);
+ signal += noise; // March 17,09
//signal = sqrt(signal*signal + noise*noise);
adcH[iTime] = static_cast<Int_t>(signal + 0.5) ;
// Signal shape parameters
Double_t GetRawFormatHighLowGainFactor() const { return fHighLowGainFactor ;}
- Int_t GetRawFormatOrder() const { return fOrder ; }
+ Int_t GetRawFormatOrder() const { return fOrder ; }
Double_t GetRawFormatTau() const { return fTau ; }
- Int_t GetNoiseThreshold() const { return fNoiseThreshold; }
- Int_t GetNPedSamples() const { return fNPedSamples; }
+ Int_t GetNoiseThreshold() const { return fNoiseThreshold; }
+ Int_t GetNPedSamples() const { return fNPedSamples; }
void SetRawFormatHighLowGainFactor(Double_t val) {fHighLowGainFactor=val;}
void SetRawFormatOrder(Int_t val) {fOrder=val; }
void SetRawFormatTau(Double_t val) {fTau=val; }
void SetNoiseThreshold(Int_t val) {fNoiseThreshold=val; }
void SetNPedSamples(Int_t val) {fNPedSamples=val; }
-
+ void SetFEENoise(Double_t val) {fgFEENoise = val;}
+ void SetRawFormatTimeBins(Int_t val) {fgkTimeBins = val;}
+
static Int_t GetRawFormatTimeBins() { return fgkTimeBins ; }
static Double_t GetRawFormatTimeMax() { return fgkTimeBins*fgTimeBinWidth; }
static Double_t GetRawFormatTimeBinWidth() { return fgTimeBinWidth; }
Int_t GetRawFormatThreshold() const { return fgThreshold ; }
Int_t GetRawFormatDDLPerSuperModule() const { return fgDDLPerSuperModule ; }
+ Double_t GetPedestalValue() {return fgPedestalValue;}
+ Double_t GetFEENoise() {return fgFEENoise;}
+
virtual Option_t* GetOption() const { return fOption.Data(); }
void SetOption(Option_t* opt) { fOption = opt; }
Int_t fNPedSamples; // number of samples to use in pedestal calculation
static const Int_t fgkOverflowCut = 950; // cut to discriminate overflowed channels
- static const Int_t fgkTimeBins = 256 ; // number of sampling bins of the raw RO signal
static const Int_t fgkRawSignalOverflow = 0x3FF; // maximum signal (10 bits)
+ static Int_t fgkTimeBins; // number of sampling bins of the raw RO signal
static Double_t fgTimeTrigger ; // time of the trigger for the RO signal
static Double_t fgTimeBinWidth; // maximum sampled time of the raw RO signal