class AliITSDriftSpeedSDD : public TObject {
public:
AliITSDriftSpeedSDD();
- AliITSDriftSpeedSDD(Int_t ev, UInt_t timest, Int_t deg, Float_t *coeff);
+ AliITSDriftSpeedSDD(Int_t ev, UInt_t timest, Int_t deg, Double_t *coeff);
AliITSDriftSpeedSDD(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; }
void PrintDriftSpeedParameters() const;
+ Int_t GetDegreeofPoly() const {return fPolDeg;}
Int_t GetEventNumber() const {return fEvNum;}
UInt_t GetEventTimestamp() const {return fTimestamp;}
Float_t GetDriftSpeedParameter(Int_t i) const {return fDriftSpeedParam[i];}
- Float_t GetDriftSpeedAtAnode(Float_t nAnode) const{
- Float_t drSpeed=0;
- for(Int_t i=0; i<fgkMaxPolDeg+1; i++) drSpeed+=fDriftSpeedParam[i]*TMath::Power(nAnode,i);
+ 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;
}
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
+ 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,1);
+ ClassDef(AliITSDriftSpeedSDD,4);
};
#endif