//____________________________________________________________________________
AliEMCALClusterizerNxN::AliEMCALClusterizerNxN()
-: AliEMCALClusterizer(), fNRowDiff(1), fNColDiff(1)
+ : AliEMCALClusterizer(), fNRowDiff(1), fNColDiff(1), fEnergyGrad(0)
{
// ctor with the indication of the file where header Tree and digits Tree are stored
}
//____________________________________________________________________________
AliEMCALClusterizerNxN::AliEMCALClusterizerNxN(AliEMCALGeometry* geometry)
- : AliEMCALClusterizer(geometry), fNRowDiff(1), fNColDiff(1)
+ : AliEMCALClusterizer(geometry), fNRowDiff(1), fNColDiff(1), fEnergyGrad(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
//____________________________________________________________________________
AliEMCALClusterizerNxN::AliEMCALClusterizerNxN(AliEMCALGeometry* geometry, AliEMCALCalibData * calib, AliCaloCalibPedestal * caloped)
-: AliEMCALClusterizer(geometry, calib, caloped), fNRowDiff(1), fNColDiff(1)
+: AliEMCALClusterizer(geometry, calib, caloped), fNRowDiff(1), fNColDiff(1), fEnergyGrad(0)
{
// ctor, geometry and calibration are initialized elsewhere.
}
// The order of d1 and d2 is important: first (d1) should be a digit already in a cluster
// which is compared to a digit (d2) not yet in a cluster
+ if (fEnergyGrad) { //false by default
+ if (d2->GetCalibAmp()>d1->GetCalibAmp())
+ return 3; // energy of neighboring cell should be smaller in order to become a neighbor
+ }
+
Int_t nSupMod1=0, nModule1=0, nIphi1=0, nIeta1=0, iphi1=0, ieta1=0;
Int_t nSupMod2=0, nModule2=0, nIphi2=0, nIeta2=0, iphi2=0, ieta2=0;
Int_t rowdiff=0, coldiff=0;
{ // scan over the list of digitsC
Float_t dEnergyCalibrated = digit->GetCalibAmp();
- if (fGeom->CheckAbsCellId(digit->GetId()) && dEnergyCalibrated > 0.0) // no threshold!
- {
+ if (fGeom->CheckAbsCellId(digit->GetId()) && dEnergyCalibrated > fMinECut) // no threshold by default!
+ { // needs to be set in OCDB!
if (dEnergyCalibrated > dMaxEnergyDigit)
{
dMaxEnergyDigit = dEnergyCalibrated;
void SetNColDiff(Int_t nd) { fNColDiff = nd; }
Int_t GetNRowDiff() const { return fNRowDiff; }
Int_t GetNColDiff() const { return fNColDiff; }
+ void SetEnergyGrad(Bool_t b) { fEnergyGrad= b; }
+ Bool_t GetEnergyGrad() const { return fEnergyGrad; }
protected:
Int_t fNRowDiff; //how many neighbors to consider along row (phi)
Int_t fNColDiff; //how many neighbors to consider along col (eta)
+ Bool_t fEnergyGrad; //if true only cluster if neighboring cell has less energy
- ClassDef(AliEMCALClusterizerNxN,3) // Clusterizer implementation version 1
+ ClassDef(AliEMCALClusterizerNxN,4) // Clusterizer implementation version 1
};
#endif // AliEMCALCLUSTERIZERNXN_H