// @(#) $Id$ // Original: AliHLTTransform.h,v 1.37 2005/06/14 10:55:21 cvetan //* This file is property of and copyright by the ALICE HLT Project * //* ALICE Experiment at CERN, All rights reserved. * //* See cxx source for full Copyright notice * #ifndef ALIHLTTPCTRANSFORM_H #define ALIHLTTPCTRANSFORM_H #ifdef use_aliroot class AliRunLoader; #endif #include "Rtypes.h" class AliHLTTPCTransform { public: AliHLTTPCTransform(); enum VersionType { kVdefault=0, kVdeprecated=1, kValiroot=10, kVcosmics=100}; private: static const Double_t fgkBFACT; //bfield static const Double_t fgkPi; //pi static const Double_t fgkPi2; //2pi static const Double_t fgk2Pi; //pi/2 static const Double_t fgkAnodeWireSpacing; //anode wire spacing static const Double_t fgkToDeg; //rad to deg static Int_t fgNPatches; //6 (dont change this) static Int_t fgRows[6][2]; //rows per patch static Int_t fgNRows[6]; //rows per patch static Double_t fgBField; //field static Double_t fgBFieldFactor; //field static Double_t fgSolenoidBField; //field static Int_t fgNTimeBins; //ntimebins static Int_t fgNRowLow; //nrows static Int_t fgNRowUp; //nrows static Int_t fgNRowUp1; //nrows static Int_t fgNRowUp2; //nrows static Int_t fgNSectorLow; //nsector static Int_t fgNSectorUp; //nsector static Int_t fgSlice2Sector[36][2]; //nslice static Int_t fgSector2Slice[72]; //nslice static Int_t fgSectorLow[72]; //nsector static Double_t fgPadPitchWidthLow; //pad pitch static Double_t fgPadPitchWidthUp; //pad pitch static Double_t fgZWidth; //width static Double_t fgZSigma; //sigma static Double_t fgZLength; //length static Double_t fgZOffset; //offset static Int_t fgNSector; //72 (dont change this) static Int_t fgNSlice; //36 (dont change this) static Int_t fgNRow; //159 (dont change this) static Double_t fgNRotShift; //Rotation shift (eg. 0.5 for 10 degrees) static Int_t fgNPads[159]; //fill this following Init and fVersion static Double_t fgX[159]; //X position in local coordinates static Int_t fgVersion; //flags the version static Double_t fgDiffT; //Transversal diffusion constant static Double_t fgDiffL; //Longitudinal diffusion constant static Double_t fgOmegaTau; //ExB effects static Double_t fgInnerPadLength; //innner pad length static Double_t fgOuter1PadLength; //outer pad length static Double_t fgOuter2PadLength; //outer pad length static Double_t fgInnerPRFSigma; //inner pad response function static Double_t fgOuter1PRFSigma; //outer pad response function static Double_t fgOuter2PRFSigma; //outer pad response function static Double_t fgTimeSigma; //Minimal longitudinal width static Int_t fgADCSat; //ADC Saturation (1024 = 10 bit) static Int_t fgZeroSup; //Zero suppression threshold static Double_t fgCos[36]; //stores the cos value for local to global rotations static Double_t fgSin[36]; //stores the sin value for local to global rotations public: virtual ~AliHLTTPCTransform() {} //setters static void SetNPatches(Int_t i){fgNPatches = i;} static void SetNRows(Int_t s[6]){for(Int_t i=0;i0) {fgZWidth = fgZLength / (Double_t)fgNTimeBins;}} static void SetNRowLow(Int_t i){fgNRowLow = i;} static void SetNRowUp(Int_t i){fgNRowUp = i;} static void SetNRowUp1(Int_t i){fgNRowUp1 = i;} static void SetNRowUp2(Int_t i){fgNRowUp2 = i;} static void SetSlice2Sector(Int_t s[36][2]){ for(Int_t i=0;i