1 #ifndef ALI_TPC_COMPOSED_CORRECTION_H
2 #define ALI_TPC_COMPOSED_CORRECTION_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 ////////////////////////////////////////////////////////////////////////////////
9 // AliTPCComposedCorrection class //
11 // This class is creating a correction that is composed out of smaller //
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+... //
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 //
25 // date: 27/04/2010 //
26 // Authors: Magnus Mager, Stefan Rossegger, Jim Thomas //
27 ////////////////////////////////////////////////////////////////////////////////
29 #include "AliTPCCorrection.h"
34 class AliTPCComposedCorrection : public AliTPCCorrection {
36 enum CompositionType {kParallel,kQueue};
38 AliTPCComposedCorrection();
39 AliTPCComposedCorrection(TCollection *corrections,CompositionType mode);
40 virtual ~AliTPCComposedCorrection();
42 void SetOmegaTauT1T2(Float_t omegaTau,Float_t t1,Float_t t2);
44 TCollection* GetCorrections() const {return fCorrections;}
45 void SetCorrections(const TCollection *corrections) {fCorrections=(TCollection*)corrections;}
46 CompositionType GetMode() const {return fMode;}
47 void SetMode(CompositionType mode) {fMode=mode;}
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[]);
52 virtual void Print(Option_t* option="") const;
54 // initialization and update functions
56 virtual void Update(const TTimeStamp &timeStamp);
60 TCollection *fCorrections; // The corrections this one is composed of.
61 CompositionType fMode; // The way to apply the corrections (see general class documentation)
63 AliTPCComposedCorrection & operator = (const AliTPCComposedCorrection);
64 AliTPCComposedCorrection(const AliTPCComposedCorrection&); //dummy copy contructor
66 ClassDef(AliTPCComposedCorrection,1);