#include "AliPMDCalibData.h"
#include "AliPMDPedestal.h"
#include "AliPMDddldata.h"
+#include "AliPMDHotData.h"
#include "AliPMDRecoParam.h"
#include "AliPMDReconstructor.h"
fPMDLoader(0),
fCalibGain(GetCalibGain()),
fCalibPed(GetCalibPed()),
+ fCalibHot(GetCalibHot()),
fRecoParam(0x0),
fTreeD(0),
fTreeR(0),
fPMDLoader(runLoader->GetLoader("PMDLoader")),
fCalibGain(GetCalibGain()),
fCalibPed(GetCalibPed()),
+ fCalibHot(GetCalibHot()),
fRecoParam(0x0),
fTreeD(0),
fTreeR(0),
fPMDLoader(0),
fCalibGain(GetCalibGain()),
fCalibPed(GetCalibPed()),
+ fCalibHot(GetCalibHot()),
fRecoParam(0x0),
fTreeD(0),
fTreeR(0),
xpos, ypos));
continue;
}
+
+ // Hot cell - set the cell adc = 0
+ Float_t hotflag = fCalibHot->GetHotChannel(det,smn,xpos,ypos);
+ if (hotflag == 1) adc = 0;
// CALIBRATION
Float_t gain = fCalibGain->GetGainFact(det,smn,xpos,ypos);
// printf("adc = %d gain = %f\n",adc,gain);
Float_t adc1 = adc - (pedmean + 3.0*pedrms);
+ // Hot cell - set the cell adc = 0
+ Float_t hotflag = fCalibHot->GetHotChannel(det,smn,xpos,ypos);
+ if (hotflag == 1) adc1 = 0;
+
// CALIBRATION
Float_t gain = fCalibGain->GetGainFact(det,smn,xpos,ypos);
// printf("adc = %d gain = %f\n",adc,gain);
// Float_t sig1 = (Float_t) sig;
Float_t sig1 = (Float_t) sig - (pedmean + 3.0*pedrms);
+ // Hot cell - set the cell adc = 0
+ Float_t hotflag = fCalibHot->GetHotChannel(det,smn,row,col);
+ if (hotflag == 1) sig1 = 0;
+
// CALIBRATION
Float_t gain = fCalibGain->GetGainFact(det,smn,row,col);
//printf("sig = %d gain = %f\n",sig,gain);
Int_t pedrms1 = (Int_t) pedmeanrms%100;
Float_t pedrms = (Float_t)pedrms1/10.;
Float_t pedmean = (Float_t) (pedmeanrms - pedrms1)/1000.0;
-
//printf("%f %f\n",pedmean, pedrms);
-
- //Float_t sig1 = (Float_t) sig;
Float_t sig1 = (Float_t) sig - (pedmean + 3.0*pedrms);
+
+ // Hot cell - set the cell adc = 0
+ Float_t hotflag = fCalibHot->GetHotChannel(det,smn,row,col);
+ if (hotflag == 1) sig1 = 0;
+
// CALIBRATION
Float_t gain = fCalibGain->GetGainFact(det,smn,row,col);
return pedestal;
}
+//--------------------------------------------------------------------//
+AliPMDHotData* AliPMDClusterFinder::GetCalibHot() const
+{
+ // The run number will be centralized in AliCDBManager,
+ // you don't need to set it here!
+ AliCDBEntry *entry = AliCDBManager::Instance()->Get("PMD/Calib/Hot");
+
+ if(!entry) AliFatal("HotData object retrieval failed!");
+
+ AliPMDHotData *hot = 0;
+ if (entry) hot = (AliPMDHotData*) entry->GetObject();
+
+ if (!hot) AliFatal("No hot data from database !");
+
+ return hot;
+}
+
class AliRawReader;
class AliPMDCalibData;
class AliPMDPedestal;
+class AliPMDHotData;
class AliPMDRecoParam;
class AliPMDClusterFinder : public TObject
AliPMDCalibData *GetCalibGain() const;
AliPMDPedestal *GetCalibPed() const;
+ AliPMDHotData *GetCalibHot() const;
protected:
AliRunLoader *fRunLoader; // Pointer to Run Loader
AliPMDCalibData *fCalibGain; //! Gain calibration data
AliPMDPedestal *fCalibPed; //! Pedestal calibration data
+ AliPMDHotData *fCalibHot; //! Hot data
const AliPMDRecoParam *fRecoParam; // reconstruction parameter
Int_t fCellTrack[fgkRow][fgkCol]; // Array containing individual cell tr
Int_t fCellPid[fgkRow][fgkCol]; // Array containing individual cell pid
- ClassDef(AliPMDClusterFinder,15) // To run PMD clustering
+ ClassDef(AliPMDClusterFinder,16) // To run PMD clustering
};
#endif