]>
Commit | Line | Data |
---|---|---|
18da6e54 | 1 | #ifndef ALIITSDRIFTSPEEDSDD_H |
2 | #define ALIITSDRIFTSPEEDSDD_H | |
3 | /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | /////////////////////////////////////////////////////////////////// | |
9 | // // | |
10 | // Class for SDD drift speed extracted from injector triggers // | |
11 | // drift speed dependence on anode number is parametrized via // | |
12 | // a polynomial function (3rd degree by default, max. 5th degree)// | |
13 | // Origin: F.Prino, Torino, prino@to.infn.it // | |
14 | // // | |
15 | /////////////////////////////////////////////////////////////////// | |
16 | ||
17 | #include<TObject.h> | |
18 | #include<TMath.h> | |
19 | ||
20 | class AliITSDriftSpeedSDD : public TObject { | |
21 | public: | |
22 | AliITSDriftSpeedSDD(); | |
4c1bcb5e | 23 | AliITSDriftSpeedSDD(Int_t ev, UInt_t timest, Int_t deg, Double_t *coeff); |
18da6e54 | 24 | AliITSDriftSpeedSDD(const AliITSDriftSpeedSDD& drSpeed); |
25 | virtual ~AliITSDriftSpeedSDD(){}; | |
26 | ||
253e68a0 | 27 | static Float_t DefaultDriftSpeed() {return fgkDriftSpeedDefault;} |
18da6e54 | 28 | virtual Bool_t IsEqual(const TObject *obj) const |
29 | {return fEvNum == ((AliITSDriftSpeedSDD*)obj)->fEvNum;} | |
30 | virtual Bool_t IsSortable() const { return kTRUE; } | |
31 | virtual Int_t Compare(const TObject *obj) const | |
32 | {if(fEvNum<((AliITSDriftSpeedSDD*)obj)->fEvNum) return -1; | |
33 | else if(fEvNum>((AliITSDriftSpeedSDD*)obj)->fEvNum) return 1; | |
34 | else return 0; } | |
35 | ||
36 | void PrintDriftSpeedParameters() const; | |
37 | ||
38 | Int_t GetEventNumber() const {return fEvNum;} | |
39 | UInt_t GetEventTimestamp() const {return fTimestamp;} | |
ab516493 | 40 | Float_t GetDriftSpeedParameter(Int_t i) const {return fDriftSpeedParam[i];} |
4c1bcb5e | 41 | Double_t GetDriftSpeedAtAnode(Double_t nAnode) const{ |
42 | Double_t drSpeed=fDriftSpeedParam[fgkMaxPolDeg]; | |
43 | for(Int_t i=fgkMaxPolDeg-1; i>=0; --i) drSpeed=fDriftSpeedParam[i]+nAnode*drSpeed; | |
18da6e54 | 44 | return drSpeed; |
45 | } | |
46 | ||
47 | protected: | |
253e68a0 | 48 | static const Float_t fgkDriftSpeedDefault; // default for drift speed |
ab516493 | 49 | static const UShort_t fgkMaxPolDeg=5; // max. degree of the poly fit |
253e68a0 | 50 | |
18da6e54 | 51 | Int_t fEvNum; // event number of injector event |
52 | UInt_t fTimestamp; // event timestamp | |
ab516493 | 53 | Char_t fPolDeg; // degree of the ploy fit to drift speed vs. anode |
54 | // saved as char since 1 byte is enough | |
55 | Float_t fDriftSpeedParam[fgkMaxPolDeg+1]; // coefficients of the poly fit | |
253e68a0 | 56 | ClassDef(AliITSDriftSpeedSDD,4); |
18da6e54 | 57 | }; |
58 | #endif |