- fix for the streaming of the output
[u/mrichter/AliRoot.git] / TPC / AliTPCInverseCorrection.cxx
CommitLineData
0116859c 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16////////////////////////////////////////////////////////////////////////////////
17// //
18// AliTPCInverseCorrection class //
19// //
20// This is a wrapper that inverts an AliTPCCorrection. This is done by //
21// swapping the CalculateCorrection and CalculateInverseCorrection functions. //
22// The wrapped correction is supplied as a pointer and the class relies //
23// on the fact, that this pointer keeps pointing to the right object. //
24// However, the ownership is not changed, i.e. the wrapped correction //
25// will not be deleted when this correction is destructed. //
26// //
27// date: 27/04/2010 //
28// Authors: Magnus Mager, Stefan Rossegger, Jim Thomas //
29////////////////////////////////////////////////////////////////////////////////
30
31#include <TString.h>
32#include "AliTPCInverseCorrection.h"
e527a1b9 33#include <TTimeStamp.h>
34
0116859c 35
36AliTPCInverseCorrection::AliTPCInverseCorrection()
37 : fCorrection(0) {
38 //
39 // default constructor
40 // (only meant for ROOT I/O)
41 //
42}
43
44AliTPCInverseCorrection::AliTPCInverseCorrection(AliTPCCorrection *correction)
45 : fCorrection(correction) {
46 //
47 // Constructor that is creating the inverse of the supplied correction.
48 // It automatically sets the name ("inv_[correction name]") and tile
49 // ("Inverse of [correction title]").
50 //
51 TString name,title;
52 name ="inv_";
53 name +=correction->GetName();
54 title ="Inverse of ";
55 title+=correction->GetTitle();
56 SetName(name.Data());
57 SetTitle(title.Data());
58}
59
60AliTPCInverseCorrection::~AliTPCInverseCorrection() {
61 //
62 // virtual destructor
63 //
64}
65
e527a1b9 66
67void AliTPCInverseCorrection::Init() {
68 //
69 // Initialization funtion (not used at the moment)
70 //
71 if (fCorrection) fCorrection->Init();
72
73}
74
75void AliTPCInverseCorrection::Update(const TTimeStamp &timeStamp) {
76 //
77 // Update function
78 //
79 if (fCorrection) fCorrection->Update(timeStamp);
80
81}
82
0116859c 83void AliTPCInverseCorrection::GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]) {
84 //
85 // This is just calling the CalculateInverseCorrection of the wrapped
86 // correction -- or puts dr=0 if the latter is 0.
87 //
88 if (fCorrection)
89 fCorrection->GetDistortion(x,roc,dx);
90 else
91 for (Int_t j=0;j<3;++j) dx[j]=0.;
92}
93
94void AliTPCInverseCorrection::GetDistortion(const Float_t x[],const Short_t roc,Float_t dx[]) {
95 //
96 // This is just calling the CalculateCorrection of the wrapped
97 // correction -- or puts dr=0 if the latter is 0.
98 //
99 if (fCorrection)
100 fCorrection->GetCorrection(x,roc,dx);
101 else
102 for (Int_t j=0;j<3;++j) dx[j]=0.;
103}
104
105ClassImp(AliTPCInverseCorrection)