fTimeMin(-1.),// small value, accept all
fTimeMax(1.),// high value, accept all//clustering
fClusterizerFlag(AliEMCALRecParam::kClusterizerv1),
+ fNRowDiff(1),
+ fNColDiff(1),
fMthCutEta(0.025),
fMthCutPhi(0.05),
fStep(50),
fTimeMin(rp.fTimeMin),
fTimeMax(rp.fTimeMax),//clustering
fClusterizerFlag(rp.fClusterizerFlag),
+ fNRowDiff(rp.fNRowDiff),
+ fNColDiff(rp.fNColDiff),
fMthCutEta(rp.fMthCutEta),
fMthCutPhi(rp.fMthCutPhi),
fStep(rp.fStep),
fTimeMax = rp.fTimeMax;
fTimeMin = rp.fTimeMin;//clustering
fClusterizerFlag = rp.fClusterizerFlag;
+ fNRowDiff = rp.fNRowDiff;
+ fNColDiff = rp.fNColDiff;
fMthCutEta = rp.fMthCutEta;
fMthCutPhi = rp.fMthCutPhi;
fStep = rp.fStep;
{
kClusterizerv1 = 0,
kClusterizerNxN = 1,
- kClusterizer3x3 = 1, // consider to remove kClusterizerNxN
kClusterizerv2 = 2,
- kClusterizer5x5 = 3,
- kClusterizerFW = 4
+ kClusterizerFW = 3
};
AliEMCALRecParam() ;
Float_t GetTimeMin () const {return fTimeMin ;}
Float_t GetTimeMax () const {return fTimeMax ;}
Bool_t GetUnfold () const {return fUnfold ;}
-
+ Int_t GetNRowDiff () const {return fNRowDiff ;}
+ Int_t GetNColDiff () const {return fNColDiff ;}
+
void SetClusteringThreshold(Float_t thrsh) {fClusteringThreshold = thrsh;}
void SetW0 (Float_t w0) {fW0 = w0 ;}
void SetMinECut (Float_t ecut) {fMinECut = ecut ;}
void SetTimeCut (Float_t t) {fTimeCut = t ;}
void SetTimeMin (Float_t t) {fTimeMin = t ;}
void SetTimeMax (Float_t t) {fTimeMax = t ;}
- void SetUnfold (Bool_t unfold) {fUnfold = unfold ;}
-
+ void SetUnfold (Bool_t unfold) {fUnfold = unfold ;}
+ void SetNxM(Int_t rdiff, Int_t cdiff) {fNRowDiff=rdiff; fNColDiff = cdiff; }
+
//PID (Guenole)
Double_t GetGamma(Int_t i, Int_t j) const {return fGamma[i][j];}
Double_t GetGammaEnergyProb(Int_t i) const {return fGammaEnergyProb[i];}
void SetPar5(Int_t i, Double_t param ) {fPar5[i]=param;}
void SetPar6(Int_t i, Double_t param ) {fPar6[i]=param;}
-
- virtual void Print(Option_t * option="") const ;
+ virtual void Print(Option_t * option="") const;
static AliEMCALRecParam* GetDefaultParameters();
static AliEMCALRecParam* GetLowFluxParam();
Float_t fTimeMin ; // Minimum time of digits
Float_t fTimeMax ; // Maximum time of digits
Short_t fClusterizerFlag ; // Choice of the clusterizer; Default selection (v1) is zero
+ Int_t fNRowDiff; // NxN: How many neighbors to consider along row (phi)
+ Int_t fNColDiff; // NxN: How many neighbors to consider along col (eta)
//PID (Guenole)
Double_t fGamma[6][6]; // Parameter to Compute PID for photons
static TObjArray* fgkMaps; // ALTRO mappings for RCU0..RCUX
- ClassDef(AliEMCALRecParam,15) // Reconstruction parameters
-
- } ;
+ ClassDef(AliEMCALRecParam,16) // Reconstruction parameters
+};
#endif // ALIEMCALRECPARAM_H
fNewClusterArrayName("newCaloClusters"),
fNPhi(4),
fNEta(4),
- fshiftPhi(2),
- fshiftEta(2),
- fTRUshift(0),
+ fShiftPhi(2),
+ fShiftEta(2),
+ fTRUShift(0),
fStoreAdditionalInformation(0)
{
// Constructor
fNewClusterArrayName("newCaloClusters"),
fNPhi(4),
fNEta(4),
- fshiftPhi(2),
- fshiftEta(2),
- fTRUshift(0),
+ fShiftPhi(2),
+ fShiftEta(2),
+ fTRUShift(0),
fStoreAdditionalInformation(0)
{
// Constructor
delete fClusterizer;
if (fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerv1)
fClusterizer = new AliEMCALClusterizerv1(geometry);
- else if(fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerNxN)
- fClusterizer = new AliEMCALClusterizerNxN(geometry);
- else if(fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerv2)
- fClusterizer = new AliEMCALClusterizerv2(geometry);
- else if(fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizer5x5) {
+ else if(fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerNxN) {
AliEMCALClusterizerNxN *clusterizer = new AliEMCALClusterizerNxN(geometry);
- clusterizer->SetNRowDiff(2);
- clusterizer->SetNColDiff(2);
- fClusterizer = clusterizer;
- }
+ clusterizer->SetNRowDiff(fRecParam->GetNRowDiff());
+ clusterizer->SetNColDiff(fRecParam->GetNColDiff());
+ fClusterizer = clusterizer;
+ } else if(fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerv2)
+ fClusterizer = new AliEMCALClusterizerv2(geometry);
else if(fRecParam->GetClusterizerFlag() == AliEMCALRecParam::kClusterizerFW){
AliEMCALClusterizerFixedWindow *clusterizer = new AliEMCALClusterizerFixedWindow(geometry);
clusterizer->SetnPhi(fNPhi);
clusterizer->SetnEta(fNEta);
- clusterizer->SetshiftPhi(fshiftPhi);
- clusterizer->SetshiftEta(fshiftEta);
- clusterizer->SetTRUshift(fTRUshift);
+ clusterizer->SetshiftPhi(fShiftPhi);
+ clusterizer->SetshiftEta(fShiftEta);
+ clusterizer->SetTRUshift(fTRUShift);
fClusterizer = clusterizer;
}
else{
void SetPedestalData(AliCaloCalibPedestal *d) { fPedestalData = d ; }
void SetRecalibrateCellsOnly(Bool_t b) { fRecalibOnly = b ; }
void SetSubBackground(Bool_t b) { fSubBackground = b ; }
- void SetCreatePattern(Bool_t yes) { fCreatePattern = yes ; if (yes) fOverwrite = kTRUE;}
- void SetOverwrite(Bool_t yes) { fOverwrite = yes ; if (fCreatePattern) fOverwrite = kTRUE;}
+ void SetCreatePattern(Bool_t yes) { fCreatePattern = yes ; if (yes) fOverwrite = kTRUE; }
+ void SetOverwrite(Bool_t yes) { fOverwrite = yes ; if (yes) fOverwrite = kTRUE; }
void SetNewClusterArrayName(TString name) { fNewClusterArrayName = name ; }
void SetnPhi(Int_t n) { fNPhi = n ; }
void SetnEta(Int_t n) { fNEta = n ; }
- void SetshiftPhi(Int_t n) { fshiftPhi = n ; }
- void SetshiftEta(Int_t n) { fshiftEta = n ; }
- void SetTRUshift(Bool_t yes) { fTRUshift = yes ; }
+ void SetShiftPhi(Int_t n) { fShiftPhi = n ; }
+ void SetShiftEta(Int_t n) { fShiftEta = n ; }
+ void SetTRUShift(Bool_t yes) { fTRUShift = yes ; }
void SetStoreAdditionalInformation(Bool_t yes) { fStoreAdditionalInformation = yes; }
protected:
TString fNewClusterArrayName; // If not overwriting, name of the new cluster array
Int_t fNPhi; // nPhi (for FixedWindowsClusterizer)
Int_t fNEta; // nEta (for FixedWinoswsClusterizer)
- Int_t fshiftPhi; // shiftPhi (for FixedWindowsClusterizer)
- Int_t fshiftEta; // shiftEta (for FixedWindowsClusterizer)
- Bool_t fTRUshift; // Shifting inside a TRU (true) or through the whole calorimeter (false) (for FixedWindowsClusterizer)
+ Int_t fShiftPhi; // ShiftPhi (for FixedWindowsClusterizer)
+ Int_t fShiftEta; // ShiftEta (for FixedWindowsClusterizer)
+ Bool_t fTRUShift; // Shifting inside a TRU (true) or through the whole calorimeter (false) (for FixedWindowsClusterizer)
Bool_t fStoreAdditionalInformation; // Store additional information (for FixedWindowsClusterizer)
private: