#ifndef ALITPCTRANSFORMATION_H
#define ALITPCTRANSFORMATION_H
+//-------------------------------------------------------
+// TPC transformations
+//
+//
+// Origin: marian.ivanov@cern.ch
+// Code is not used anymore for the TPC corrections
+// Obsolete - will be removed soon
+//
+//-------------------------------------------------------
+
+
#include "TNamed.h"
#include "TMatrixD.h"
#include "TVectorD.h"
~AliTPCTransformation();
//
virtual Double_t GetDeltaXYZ(Int_t coord, Int_t volID, Double_t param, Double_t x, Double_t y, Double_t z);
- void SetParams(Double_t param, Double_t sigma, Double_t sigma2Time, TVectorD* fixedParams);
+ void SetParams(Double_t param, Double_t sigma, Double_t sigma2Time, const TVectorD *const fixedParams);
Bool_t Init();
void SetActive(Bool_t flag){ fIsActive = flag;}
- Bool_t IsActive(){return fIsActive;}
+ Bool_t IsActive() const {return fIsActive;}
//
+ Double_t GetParam() const {return fParam;}
+ void SetParam(Double_t param) {fParam=param;}
+ Double_t GetSigma() const {return fSigma;}
+ Double_t GetSigmaMax() const {return fSigmaMax;}
+ Double_t GetSigma2Time() const {return fSigma2Time;}
//
static TBits * BitsSide(Bool_t aside);
static TBits * BitsAll();
static void RegisterFormula(const char * name, GenFuncG formula);
static AliTPCTransformation::GenFuncG FindFormula(const char * name);
static Double_t Eval(const char * name, const Double_t*x,const Double_t*par);
-public:
+
+ private:
//
TString * fNameX; // x formula
TString * fNameY; // y formula
Int_t fCoordSystem; // coord system of output deltas
Double_t fParam; // free parameter of transformation
Double_t fSigma; // error of the parameter
+ Double_t fSigmaMax; // maximal sigma (Not allowed to increase in propagate time by bigger factor)
Double_t fSigma2Time; // change of the error in time (per hour) - (For kalman filter)
TVectorD *fFixedParam; // fixed parameters of tranformation
Bool_t fIsActive; // switch - is transformation active
// predefined formulas
//
static Int_t BuildBasicFormulas(); //build list of basic formulas
- static Double_t TPCscalingRPol(Double_t *xyz, Double_t * param);
- static Double_t TPCscalingZDr(Double_t *xyz, Double_t * param);
- static Double_t TPCscalingZDrGy(Double_t *xyz, Double_t * param);
- static Double_t TPCscalingPhiLocal(Double_t *xyz, Double_t * param);
+ static Double_t TPCscalingRPol(Double_t *xyz, const Double_t * const param);
+ static Double_t TPCscalingZDrift(Double_t *xyz, const Double_t * const param);
+ static Double_t TPCscalingZDriftGy(Double_t *xyz, const Double_t * const param);
+ static Double_t TPCscalingZDriftT0(Double_t *xyz, const Double_t * const param);
+ static Double_t TPCscalingPhiLocal(Double_t *xyz, const Double_t * const param);
+ static Double_t TPClocalRPhiEdge(Double_t *xyz, const Double_t *const param);
//
// TPC Field cage + ROC misalingment induced distortion
//
- static Double_t TPCscalingRIFC(Double_t *xyz, Double_t * param); // inner field cage r distorion
- static Double_t TPCscalingROFC(Double_t *xyz, Double_t * param); // outer field cage r distorion
+ static Double_t TPCscalingRIFC(Double_t *xyz, const Double_t * const param); // inner field cage r distorion
+ static Double_t TPCscalingROFC(Double_t *xyz, const Double_t * const param); // outer field cage r distorion
+ //
+ // TPC field cage + ROC misalignemnt induced distortion
+ //
+ static Double_t TPCdeltaFCROC(Double_t *xyz, const Double_t *const param);
+ static Double_t TPCdeltaFCCE(Double_t *xyz, const Double_t *const param);
+
//
// TPC local misalignment
//
- static Double_t TPClocaldLxdGX(Double_t *xyz, Double_t * param);
- static Double_t TPClocaldLxdGY(Double_t *xyz, Double_t * param);
- static Double_t TPClocaldLydGX(Double_t *xyz, Double_t * param);
- static Double_t TPClocaldLydGY(Double_t *xyz, Double_t * param);
- static Double_t TPClocaldRzdGX(Double_t *xyz, Double_t * param);
- static Double_t TPClocaldRzdGY(Double_t *xyz, Double_t * param);
+ static Double_t TPClocaldLxdGX(Double_t *xyz, const Double_t *const param);
+ static Double_t TPClocaldLxdGY(Double_t *xyz, const Double_t *const param);
+ static Double_t TPClocaldLydGX(Double_t *xyz, const Double_t *const param);
+ static Double_t TPClocaldLydGY(Double_t *xyz, const Double_t *const param);
+ static Double_t TPClocaldRzdGX(Double_t *xyz, const Double_t *const param);
+ static Double_t TPClocaldRzdGY(Double_t *xyz, const Double_t *const param);
//
// TPC quadrant misalignment
//
// Z shift -
//
- static Double_t TPCDeltaZ(Double_t *xyz, Double_t * param);
+ static Double_t TPCDeltaZ(Double_t *xyz, const Double_t *const param);
static Double_t TPCDeltaZMediumLong(Double_t *xyz, Double_t * param);
- static Double_t TPCTiltingZ(Double_t *xyz, Double_t * param);
+ static Double_t TPCTiltingZ(Double_t *xyz, const Double_t *const param);
//
Bool_t fInit; // initialization flag
GenFuncG fFormulaX; //! x formula
GenFuncG fFormulaZ; //! z formula
static GenFuncG fgFormulas[10000]; //! array of pointers to formula
static TObjArray* fgFormulasName; //! array of formalas name
-private:
+
AliTPCTransformation &operator=(const AliTPCTransformation&); // not implemented
- ClassDef(AliTPCTransformation,1);
+ ClassDef(AliTPCTransformation,2);
};
#endif