]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/Alieve/TPCSectorData.h
fixed typo in ESDListNames
[u/mrichter/AliRoot.git] / EVE / Alieve / TPCSectorData.h
index 0a1b36691111da8338180c2d0ece030d0a79e2c6..9d8465c57c50037d280edda36b3fc480404ffa21 100644 (file)
@@ -15,6 +15,9 @@ namespace Alieve {
 
 class TPCSectorData : public TObject
 {
+  TPCSectorData(const TPCSectorData&);            // Not implemented
+  TPCSectorData& operator=(const TPCSectorData&); // Not implemented
+
 public:
 
   class PadData
@@ -26,6 +29,10 @@ public:
   public:
     PadData(Short_t* d=0, Short_t l=0) : fData(d), fLength(l) {}
 
+    PadData(const PadData& p) : fData(p.fData), fLength(p.fLength) {}
+    PadData& operator=(const PadData& p)
+    { fData = p.fData; fLength = p.fLength; return *this; }
+
     Short_t* Data()   const { return fData; }
     Short_t  Length() const { return fLength; }
 
@@ -47,6 +54,17 @@ public:
       fBeg(pd.Data()), fEnd(pd.Data() + pd.Length()), fPos(pd.Data()),
       fTime(-1), fSignal(-1), fThreshold(thr), fNChunk(0)
     {}
+    PadIterator(const PadIterator& i) :
+      fBeg(i.fBeg), fEnd(i.fEnd), fPos(i.fPos),
+      fTime(i.fTime), fSignal(i.fSignal), fThreshold(i.fThreshold), fNChunk(i.fNChunk)
+    {}
+    virtual ~PadIterator() {}
+
+    PadIterator& operator=(const PadIterator& i) {
+      fBeg = i.fBeg; fEnd = i.fEnd; fPos = i.fPos;
+      fTime = i.fTime; fSignal = i.fSignal; fThreshold = i.fThreshold; fNChunk = i.fNChunk;
+      return *this;
+    }
 
     Bool_t Next();
     void   Reset();
@@ -74,6 +92,15 @@ public:
       fPadArray(first), fNPads(npads),
       fPad(-1)
     {}
+    RowIterator(const RowIterator& i) :
+      PadIterator(i),
+      fPadArray(i.fPadArray), fNPads(i.fNPads), fPad(i.fPad)
+    {}
+
+    RowIterator& operator=(const RowIterator& i) {
+      fPadArray = i.fPadArray; fNPads = i.fNPads; fPad = i.fPad;
+      return *this;
+    }
 
     Bool_t NextPad();
     void   ResetRow();
@@ -117,6 +144,7 @@ public:
 
 private:
   static AliTPCParam *fgParam;
+  static Float_t      fgZLength;
   static Int_t        fgNAllRows;
   static Int_t        fgNAllPads;
   static Int_t       *fgRowBegs;
@@ -168,8 +196,9 @@ public:
   // --- Static functions
 
   static const AliTPCParam& GetParam() { return *fgParam; }
-  static Int_t GetNAllRows() { return fgNAllRows; }
-  static Int_t GetNAllPads() { return fgNAllPads; }
+  static Float_t GetZLength()  { return fgZLength;  }
+  static Int_t   GetNAllRows() { return fgNAllRows; }
+  static Int_t   GetNAllPads() { return fgNAllPads; }
 
   static Int_t GetNPadsInRow(Int_t row);
 
@@ -181,6 +210,33 @@ public:
   
   static void InitStatics();
 
+
+  //----------------------------------------------------------------
+  // Hack for noisy pad-row removal
+  //----------------------------------------------------------------
+
+  class PadRowHack
+  {
+  public:
+    Int_t   fRow, fPad;
+    Int_t   fThrExt;
+    Float_t fThrFac; // Actual threshold = fThrExt + fThrFac*thr
+
+    PadRowHack(Int_t r, Int_t p, Int_t te=0, Float_t tf=1) :
+      fRow(r), fPad(p), fThrExt(te), fThrFac(tf) {}
+    bool operator<(const PadRowHack& a) const
+    { return (fRow == a.fRow) ? fPad < a.fPad : fRow < a.fRow; }
+  };
+
+  PadRowHack* GetPadRowHack(Int_t r, Int_t p);
+  void AddPadRowHack(Int_t r, Int_t p, Int_t te=0, Float_t tf=1);
+  void RemovePadRowHack(Int_t r, Int_t p);
+  void DeletePadRowHack();
+
+protected:
+  void* fPadRowHackSet;
+  
+
   ClassDef(TPCSectorData, 0);
 }; // endclass TPCSectorData