ROOT logo
#ifndef ALI_TPC_INVERSE_CORRECTION_H
#define ALI_TPC_INVERSE_CORRECTION_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// AliTPCInverseCorrection class                                              //
//                                                                            //
// This is a wrapper that inverts an AliTPCCorrection. This is done by        //
// swapping the CalculateCorrection and CalculateInverseCorrection functions. //
// The wrapped correction is supplied as a pointer and the class relies       //
// on the fact, that this pointer keeps pointing to the right object.         //
// However, the ownership is not changed, i.e. the wrapped correction         //
// will not be deleted when this correction is destructed.                    //
//                                                                            //
// date: 27/04/2010                                                           //
// Authors: Magnus Mager, Stefan Rossegger, Jim Thomas                       //
////////////////////////////////////////////////////////////////////////////////

#include "AliTPCCorrection.h"


class AliTPCInverseCorrection : public AliTPCCorrection {
public:
  AliTPCInverseCorrection();
  AliTPCInverseCorrection(AliTPCCorrection *correction);
  virtual ~AliTPCInverseCorrection();

  void SetCorrection(const AliTPCCorrection *correction) {fCorrection=(AliTPCCorrection*) correction;}
  const AliTPCCorrection* GetCorrection() const {return fCorrection;}
  virtual void GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]);
  virtual void GetDistortion(const Float_t x[],const Short_t roc,Float_t dx[]);

  // initialization and update functions
  virtual void Init();
  virtual void Update(const TTimeStamp &timeStamp);

  virtual void SetOmegaTauT1T2(Float_t omegaTau,Float_t t1,Float_t t2);
 
  // convenience functions
  virtual void Print(Option_t* option="") const;
 
private:
  AliTPCCorrection *fCorrection; // The correction to be inverted.

  AliTPCInverseCorrection & operator = (const AliTPCInverseCorrection &);  // dummy assignment operator
  AliTPCInverseCorrection(const AliTPCInverseCorrection&); //dummy copy contructor

  ClassDef(AliTPCInverseCorrection,1);
};

#endif
 AliTPCInverseCorrection.h:1
 AliTPCInverseCorrection.h:2
 AliTPCInverseCorrection.h:3
 AliTPCInverseCorrection.h:4
 AliTPCInverseCorrection.h:5
 AliTPCInverseCorrection.h:6
 AliTPCInverseCorrection.h:7
 AliTPCInverseCorrection.h:8
 AliTPCInverseCorrection.h:9
 AliTPCInverseCorrection.h:10
 AliTPCInverseCorrection.h:11
 AliTPCInverseCorrection.h:12
 AliTPCInverseCorrection.h:13
 AliTPCInverseCorrection.h:14
 AliTPCInverseCorrection.h:15
 AliTPCInverseCorrection.h:16
 AliTPCInverseCorrection.h:17
 AliTPCInverseCorrection.h:18
 AliTPCInverseCorrection.h:19
 AliTPCInverseCorrection.h:20
 AliTPCInverseCorrection.h:21
 AliTPCInverseCorrection.h:22
 AliTPCInverseCorrection.h:23
 AliTPCInverseCorrection.h:24
 AliTPCInverseCorrection.h:25
 AliTPCInverseCorrection.h:26
 AliTPCInverseCorrection.h:27
 AliTPCInverseCorrection.h:28
 AliTPCInverseCorrection.h:29
 AliTPCInverseCorrection.h:30
 AliTPCInverseCorrection.h:31
 AliTPCInverseCorrection.h:32
 AliTPCInverseCorrection.h:33
 AliTPCInverseCorrection.h:34
 AliTPCInverseCorrection.h:35
 AliTPCInverseCorrection.h:36
 AliTPCInverseCorrection.h:37
 AliTPCInverseCorrection.h:38
 AliTPCInverseCorrection.h:39
 AliTPCInverseCorrection.h:40
 AliTPCInverseCorrection.h:41
 AliTPCInverseCorrection.h:42
 AliTPCInverseCorrection.h:43
 AliTPCInverseCorrection.h:44
 AliTPCInverseCorrection.h:45
 AliTPCInverseCorrection.h:46
 AliTPCInverseCorrection.h:47
 AliTPCInverseCorrection.h:48
 AliTPCInverseCorrection.h:49
 AliTPCInverseCorrection.h:50
 AliTPCInverseCorrection.h:51
 AliTPCInverseCorrection.h:52
 AliTPCInverseCorrection.h:53
 AliTPCInverseCorrection.h:54