]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSDriftSpeedSDD.h
macros developed by Luca Barioglio for patterns analysis
[u/mrichter/AliRoot.git] / ITS / AliITSDriftSpeedSDD.h
index 79695cd645f2e5f49ba078788a66d61bf07d56f1..aace54c93f9fc23867872718a2dcae31171ab239 100644 (file)
@@ -22,8 +22,10 @@ class AliITSDriftSpeedSDD : public TObject {
   AliITSDriftSpeedSDD();
   AliITSDriftSpeedSDD(Int_t ev, UInt_t timest, Int_t deg, Double_t *coeff);
   AliITSDriftSpeedSDD(const AliITSDriftSpeedSDD& drSpeed);
+  AliITSDriftSpeedSDD& operator=(const AliITSDriftSpeedSDD& drSpeed); 
   virtual ~AliITSDriftSpeedSDD(){};
 
+  static Float_t DefaultDriftSpeed() {return fgkDriftSpeedDefault;}
   virtual Bool_t IsEqual(const TObject *obj) const 
     {return fEvNum == ((AliITSDriftSpeedSDD*)obj)->fEvNum;}
   virtual Bool_t      IsSortable() const { return kTRUE; }
@@ -33,22 +35,28 @@ class AliITSDriftSpeedSDD : public TObject {
     else return 0; }
 
   void PrintDriftSpeedParameters() const;
-
+  void SetDegreeofPoly(Int_t deg) {fPolDeg = deg>fgkMaxPolDeg ? fgkMaxPolDeg : deg;}
+  Int_t GetDegreeofPoly() const {return fPolDeg;}
   Int_t GetEventNumber() const {return fEvNum;}
   UInt_t GetEventTimestamp() const {return fTimestamp;}
-  Double_t GetDriftSpeedParameter(Int_t i) const {return fDriftSpeedParam[i];}
+  Float_t GetDriftSpeedParameter(Int_t i) const {return fDriftSpeedParam[i];}
+  void    SetDriftSpeedParameter(Int_t i,Float_t par)  {if (i<=fPolDeg) fDriftSpeedParam[i] = par;}
   Double_t GetDriftSpeedAtAnode(Double_t nAnode) const{
     Double_t drSpeed=fDriftSpeedParam[fgkMaxPolDeg];
     for(Int_t i=fgkMaxPolDeg-1; i>=0; --i) drSpeed=fDriftSpeedParam[i]+nAnode*drSpeed;
     return drSpeed;
   }
+  static UShort_t GetMaxPolDeg() {return fgkMaxPolDeg;}
 
  protected:
-  static const Int_t fgkMaxPolDeg=5; // max. degree of the poly fit
+  static const Float_t fgkDriftSpeedDefault; // default for drift speed
+  static const UShort_t fgkMaxPolDeg=5; // max. degree of the poly fit
+
   Int_t fEvNum;  // event number of injector event
   UInt_t fTimestamp; // event timestamp
-  Int_t fPolDeg;    // degree of the ploy fit to drift speed vs. anode
-  Double32_t fDriftSpeedParam[fgkMaxPolDeg+1];  // coefficients of the poly fit
-  ClassDef(AliITSDriftSpeedSDD,2);
+  Char_t fPolDeg;    // degree of the ploy fit to drift speed vs. anode
+                     // saved as char since 1 byte is enough
+  Float_t fDriftSpeedParam[fgkMaxPolDeg+1];  // coefficients of the poly fit
+  ClassDef(AliITSDriftSpeedSDD,4);
 };
 #endif