/// This class provides ITS SSD data handling
/// used by DA.
// Author: Oleksandr Borysov
-// Date: 18/07/2008
+// Date: 09/02/2010
///////////////////////////////////////////////////////////////////////////////
using namespace std;
+class AliITSBadChannelsSSDv2;
+class AliITSNoiseSSDv2;
+
class AliITSHandleDaSSD : public TObject {
public :
AliITSHandleDaSSD();
void SetZsDefaul(const Int_t zs) { fZsDefault = zs; }
void SetOffsetDefault(const Int_t offs) { fOffsetDefault = offs; }
- void SetZsMinimum(const Int_t zsm) { fZsMinimum = zsm; }
+ void SetZsMinimum(const Int_t zsm) { if (zsm >= 0) if (static_cast<UInt_t>(zsm) <= fgkZsBitMask) fZsMinimum = zsm; }
void SetMergeBCFlag(const Byte_t mbcf) { fMergeBCLists = mbcf; }
void SetZsFactor(const Float_t zsf) { fZsFactor = zsf; }
void SetPedestalThresholdFactor(const Float_t pthf) { fPedestalThresholdFactor = pthf; }
{if ((fModules) && (index < fNumberOfModules)) return fModules[index]; else return NULL;}
Int_t GetModuleIndex (const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const;
AliITSChannelDaSSD* GetStrip (const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const UShort_t stripID) const;
- AliITSNoiseSSD* GetCalibrationOCDBNoise() const;
- AliITSBadChannelsSSD* GetCalibrationBadChannels() const;
+ AliITSNoiseSSDv2* GetCalibrationOCDBNoise() const;
+ AliITSBadChannelsSSDv2* GetCalibrationBadChannels() const;
Bool_t SaveCalibrationSSDLDC(Char_t*& dafname);
- Int_t MergeBadChannels(AliITSBadChannelsSSD*& bcl) const;
+ Int_t MergeBadChannels(AliITSBadChannelsSSDv2*& bcl) const;
void SetModIndProcessed(Int_t mi) {fModIndProcessed = mi;}
void SetModIndRead (Int_t mr) {fModIndRead = mr;}
Int_t ReadCalibrationDataFile (char* fileName, const Long_t eventsnumber);
virtual Int_t ReadModuleRawData (const Int_t modulesnumber);
- virtual Bool_t CalculatePedestal(AliITSModuleDaSSD *const module);
- virtual Bool_t CalculateNoise(AliITSModuleDaSSD *const module);
+ virtual Bool_t CalculatePedestal(const AliITSModuleDaSSD *const module);
+ virtual Bool_t CalculateNoise(const AliITSModuleDaSSD *const module);
virtual Bool_t CalculateNoiseCM(AliITSModuleDaSSD *const module);
virtual Bool_t CalculateCM(AliITSModuleDaSSD *const module);
- virtual Bool_t AddFeromCm(AliITSModuleDaSSD *const module);
- virtual Bool_t ProcessRawData(const Int_t nmread = fgkNumberOfSSDModulesPerDdl);
+ virtual Bool_t CalculatePedNoiseW(const AliITSModuleDaSSD *const module);
+ virtual Bool_t CalculateCMW(AliITSModuleDaSSD *const module);
+ virtual Bool_t CalculateNoiseCMW(AliITSModuleDaSSD *const module);
+ virtual Bool_t AddFeromCm(const AliITSModuleDaSSD *const module);
+ virtual Bool_t ProcessRawData(const Int_t nmread = fgkNumberOfSSDModulesPerDdl, const Bool_t usewelford = kTRUE);
virtual Bool_t RelocateModules();
virtual Bool_t AllocateSimulatedModules(const Int_t copymodind = 0);
Bool_t AdDataPresent(const Int_t ddl, const Int_t ad) const;
Int_t DdlToEquipmentId (Int_t ddl) const { return (512 + ddl); }
Int_t ChannelIsBad(const UChar_t ddl, const UChar_t ad, const UChar_t adc, const Int_t strn) const;
+ UChar_t EvaluateIfChannelIsBad(const AliITSModuleDaSSD *const module, const Int_t stripn) const;
Int_t LadderIsOff(const UChar_t ddl, const UChar_t ad, const UChar_t adc) const;
Bool_t SaveEqSlotCalibrationData(const Int_t ddl, const Int_t ad, const Char_t *fname) const;
ULong_t OffsetValue(const AliITSChannelDaSSD *strip, const UChar_t ddl = 0, const UChar_t ad = 0,
const UChar_t adc = 0, const Int_t strn = -1) const;
ULong_t OffsetValue(const UChar_t ddl, const UChar_t ad, const UChar_t adc, const Int_t strn) const;
- ULong_t ZsThreshold(AliITSChannelDaSSD *strip) const;
+ ULong_t ZsThreshold(const AliITSChannelDaSSD *strip) const;
ULong_t ZsThreshold(const UChar_t ddl, const UChar_t ad, const UChar_t adc, const Int_t strn) const;
virtual void Reset();
TArrayS fEqIndex; //! index array of equipmnts (DDLs).
Long_t fNumberOfEvents; // Number of physics or calibration events in raw data file fRawDataFileName
- AliITSBadChannelsSSD *fBadChannelsList; //! List of bad channels: static or created on base of calculated noise and pedestal
+ AliITSBadChannelsSSDv2 *fBadChannelsList; //! List of bad channels: static or created on base of calculated noise and pedestal
Int_t *fDDLModuleMap; //! DDL map
TArrayS fALaddersOff; //! Lisst of ladders of side A that are off and should be suppressed
TArrayS fCLaddersOff; //! Lisst of ladders of side C that are off and should be suppressed
(signal <= AliITSChannelDaSSD::GetUnderflowConst())); }
string ConvBase(const unsigned long value, const long base) const;
- ClassDef(AliITSHandleDaSSD, 6)
+ ClassDef(AliITSHandleDaSSD, 8)
};