fUseFALTRO(kTRUE),
fRawAnalyzer(0),
fTriggerRawDigitMaker(0x0)
-{ // ctor; set up fit algo etc
+{
+ // ctor; set up fit algo etc
+
SetFittingAlgorithm(fitAlgo);
+
const TObjArray* maps = AliEMCALRecParam::GetMappings();
+
if(!maps) AliFatal("Cannot retrieve ALTRO mappings!!");
- for(Int_t i = 0; i < 4; i++)
- {
- fMapping[i] = (AliAltroMapping*)maps->At(i);
- }
+
+ for(Int_t i = 0; i < 4; i++)
+ {
+ fMapping[i] = (AliAltroMapping*)maps->At(i);
+ }
AliRunLoader *rl = AliRunLoader::Instance();
- if (rl && rl->GetAliRun())
- {
+ if (rl && rl->GetAliRun())
+ {
AliEMCAL * emcal = dynamic_cast<AliEMCAL*>(rl->GetAliRun()->GetDetector("EMCAL"));
if(emcal)
- {
- fGeom = emcal->GetGeometry();
- }
- else
- {
- AliDebug(1, Form("Using default geometry in raw reco"));
- fGeom = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaultGeometryName());
- }
- }
- else
+ {
+ fGeom = emcal->GetGeometry();
+ }
+ else
{
AliDebug(1, Form("Using default geometry in raw reco"));
fGeom = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaultGeometryName());
}
+ }
+ else
+ {
+ AliDebug(1, Form("Using default geometry in raw reco"));
+ fGeom = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaultGeometryName());
+ }
if(!fGeom) AliFatal(Form("Could not get geometry!"));
fTriggerRawDigitMaker = new AliEMCALTriggerRawDigitMaker();
}
-AliEMCALRawUtils::~AliEMCALRawUtils()
+AliEMCALRawUtils::~AliEMCALRawUtils()
{
//dtor
delete fRawAnalyzer;
void AliEMCALRawUtils::Raw2Digits(AliRawReader* reader,TClonesArray *digitsArr, const AliCaloCalibPedestal* pedbadmap, TClonesArray *digitsTRG, AliEMCALTriggerData* trgData)
{
//conversion of raw data to digits
- if(digitsArr) digitsArr->Clear("C");
+ if ( digitsArr) digitsArr->Clear("C");
if (!digitsArr) { Error("Raw2Digits", "no digits found !");return;}
if (!reader) {Error("Raw2Digits", "no raw reader found !");return;}
AliEMCALTriggerSTURawStream inSTU(reader);
class AliEMCALGeometry;
class AliCaloCalibPedestal;
class AliCaloRawAnalyzer;
-class AliCaloRawAnalyzerLMSOffline;
class AliEMCALTriggerRawDigitMaker;
class AliEMCALTriggerData;
#include "AliCaloConstants.h"
-
class AliEMCALRawUtils : public TObject {
- public:
+
+public:
+
AliEMCALRawUtils(Algo::fitAlgorithm fitAlgo = Algo::kStandard);
+
virtual ~AliEMCALRawUtils();
+
void Digits2Raw();
+
void Raw2Digits(AliRawReader *reader, TClonesArray *digitsArr, const AliCaloCalibPedestal* pedbadmap,
TClonesArray *digitsTRG=0x0, AliEMCALTriggerData* trgData = 0x0);
+
void AddDigit(TClonesArray *digitsArr, Int_t id, Int_t lowGain, Float_t amp, Float_t time, Float_t chi2, Int_t ndf);
+
void TrimDigits(TClonesArray *digitsArr);
+
Int_t GetNoiseThreshold() const { return fNoiseThreshold; }
Int_t GetNPedSamples() const { return fNPedSamples; }
Bool_t GetRemoveBadChannels() const {return fRemoveBadChannels;}
Float_t GetTimeMax() const {return fTimeMax ;}
Float_t GetTimeMin() const {return fTimeMin ;}
Bool_t UseFALTRO() const {return fUseFALTRO; }
- void SetNoiseThreshold(Int_t val) {fNoiseThreshold=val; }
- void SetNPedSamples(Int_t val) {fNPedSamples=val; }
- void SetRemoveBadChannels(Bool_t val) {fRemoveBadChannels=val; }
- void SetFittingAlgorithm(Int_t val) ;
- void SetTimeMin(Float_t t) {fTimeMin = t ;}
- void SetTimeMax(Float_t t) {fTimeMax = t ;}
- void SetFALTROUsage(Bool_t val) {fUseFALTRO=val; }
+
+ void SetNoiseThreshold(Int_t val) {fNoiseThreshold=val; }
+ void SetNPedSamples(Int_t val) {fNPedSamples=val; }
+ void SetRemoveBadChannels(Bool_t val) {fRemoveBadChannels=val; }
+ void SetFittingAlgorithm(Int_t val) ;
+ void SetTimeMin(Float_t t) {fTimeMin = t ;}
+ void SetTimeMax(Float_t t) {fTimeMax = t ;}
+ void SetFALTROUsage(Bool_t val) {fUseFALTRO=val; }
+
AliCaloRawAnalyzer *GetRawAnalyzer() const { return fRawAnalyzer;}
+
virtual Option_t* GetOption() const { return fOption.Data(); }
void SetOption(const Option_t* opt) { fOption = opt; }
private:
- AliEMCALRawUtils(const AliEMCALRawUtils& rawUtils); //copy ctor
+ AliEMCALRawUtils (const AliEMCALRawUtils& rawUtils); //copy ctor
AliEMCALRawUtils& operator =(const AliEMCALRawUtils& rawUtils);
+
Int_t fNoiseThreshold; // threshold to consider signal or noise
Int_t fNPedSamples; // number of samples to use in pedestal calculation
AliEMCALGeometry* fGeom; // geometry