]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSHandleDaSSD.h
Commented unnecessary include AliLog
[u/mrichter/AliRoot.git] / ITS / AliITSHandleDaSSD.h
index 49aac469f8fee85db850350d6e59894a0c2607ac..ff66c79b8232c31a158a2fc8b550647fd8624956 100644 (file)
 /// 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();
@@ -34,7 +37,7 @@ class AliITSHandleDaSSD : public TObject {
 
     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; }
@@ -64,10 +67,10 @@ class AliITSHandleDaSSD : public TObject {
                                {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;}
@@ -78,24 +81,28 @@ class AliITSHandleDaSSD : public TObject {
     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();
@@ -137,7 +144,7 @@ class AliITSHandleDaSSD : public TObject {
     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
@@ -158,7 +165,7 @@ class AliITSHandleDaSSD : public TObject {
                                                                      (signal <= AliITSChannelDaSSD::GetUnderflowConst())); }
     string   ConvBase(const unsigned long value, const long base) const;
 
-    ClassDef(AliITSHandleDaSSD, 6)
+    ClassDef(AliITSHandleDaSSD, 8)
 
 };