]>
Commit | Line | Data |
---|---|---|
0116859c | 1 | #ifndef ALI_TPC_COMPOSED_CORRECTION_H |
2 | #define ALI_TPC_COMPOSED_CORRECTION_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //////////////////////////////////////////////////////////////////////////////// | |
8 | // // | |
9 | // AliTPCComposedCorrection class // | |
10 | // // | |
11 | // This class is creating a correction that is composed out of smaller // | |
12 | // corrections. // | |
13 | // There are two ways the sub-corrections can be combined into this one: // | |
14 | // 1. kParallel: All corrections are applied at the given position x and // | |
15 | // the dx terms are summed up (this commutes). // | |
16 | // 2. kQueue: The corrections are called in order. The first one at the // | |
17 | // given position x resulting in dx1, the second one is called at // | |
18 | // the corrected position (x+dx1) resulting in dx2, the third one // | |
19 | // is then called at position (x+dx1+dx2) and so forth. dx=dx1+dx2+... // | |
20 | // is returned. // | |
21 | // For the inverse of the correction this is taken into account by reversing // | |
22 | // the order the corrections are applied in the kQueue case (no issue for // | |
23 | // kParallel). // | |
24 | // // | |
25 | // date: 27/04/2010 // | |
26 | // Authors: Magnus Mager, Stefan Rossegger, Jim Thomas // | |
27 | //////////////////////////////////////////////////////////////////////////////// | |
28 | ||
29 | #include "AliTPCCorrection.h" | |
30 | ||
31 | class TCollection; | |
b1f0a2a5 | 32 | class TTimeStamp; |
0116859c | 33 | |
34 | class AliTPCComposedCorrection : public AliTPCCorrection { | |
35 | public: | |
36 | enum CompositionType {kParallel,kQueue}; | |
37 | ||
38 | AliTPCComposedCorrection(); | |
39 | AliTPCComposedCorrection(TCollection *corrections,CompositionType mode); | |
40 | virtual ~AliTPCComposedCorrection(); | |
41 | ||
42 | void SetOmegaTauT1T2(Float_t omegaTau,Float_t t1,Float_t t2); | |
43 | ||
44 | TCollection* GetCorrections() const {return fCorrections;} | |
b1f0a2a5 | 45 | void SetCorrections(const TCollection *corrections) {fCorrections=(TCollection*)corrections;} |
0116859c | 46 | CompositionType GetMode() const {return fMode;} |
47 | void SetMode(CompositionType mode) {fMode=mode;} | |
48 | ||
49 | virtual void GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]); | |
50 | virtual void GetDistortion(const Float_t x[],const Short_t roc,Float_t dx[]); | |
51 | ||
52 | virtual void Print(Option_t* option="") const; | |
53 | ||
e527a1b9 | 54 | // initialization and update functions |
55 | virtual void Init(); | |
56 | virtual void Update(const TTimeStamp &timeStamp); | |
57 | ||
58 | ||
0116859c | 59 | private: |
60 | TCollection *fCorrections; // The corrections this one is composed of. | |
61 | CompositionType fMode; // The way to apply the corrections (see general class documentation) | |
62 | ||
63 | AliTPCComposedCorrection & operator = (const AliTPCComposedCorrection); | |
64 | AliTPCComposedCorrection(const AliTPCComposedCorrection&); //dummy copy contructor | |
65 | ||
66 | ClassDef(AliTPCComposedCorrection,1); | |
67 | }; | |
68 | ||
69 | #endif |