#ifndef TPCParam_H #define TPCParam_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ /* $Id$ */ //////////////////////////////////////////////// // Manager class for TPC parameters // //////////////////////////////////////////////// #include "TObject.h" // the last things from AliTPCSecGeo //const Float_t z_end = 250.; //const Float_t alpha_low=0.523598775; // 30 degrees //const Float_t alpha_up=0.261799387; // 15 degrees //const Float_t q_el = 1.602e-19; // elementary charge //const Float_t adc_sat = 1023; // dynamic range (10 bits) //const Float_t dyn_range = 2000.; // output dynamic range (mV) class AliTPCParam : public TObject { ////////////////////////////////////////////////////// ////////////////////////////////////////////////////// //ALITPCParam object to be possible change //geometry and some other parameters of TPC //used by AliTPC and AliTPCSector public: AliTPCParam(); virtual ~AliTPCParam() {;} //dummy destructor void XYZtoCRXYZ(Float_t *xyz, Int_t §or, Int_t &padrow, Int_t option=3); //transform global position to the position relative to the sector padrow //if option=0 X calculate absolute calculate sector //if option=1 X absolute use input sector //if option=2 X relative to pad row calculate sector //if option=3 X relative use input sector void CRXYZtoXYZ(Float_t *xyz, const Int_t §or, const Int_t & padrow, Int_t option=3) const; //transform relative position to the gloabal position void CRTimePadtoYZ(Float_t &y, Float_t &z, const Float_t &time, const Float_t &pad, Int_t sector, Int_t padrow ); //transform position in digit units (time slices and pads) to "normal" //units (cm) void CRYZtoTimePad(const Float_t &y, const Float_t &z, Float_t &time, Float_t &pad, Int_t sector, Int_t padrow); //transform position in cm to position in digit unit Double_t GetLowMaxY(Int_t irow) const {return irow*0.;} Double_t GetUpMaxY(Int_t irow) const {return irow*0;} //additional geometrical function Int_t GetPadRow(Int_t isec, Float_t &x); //return pad row for given sector and position x //if res=-1 it is out of sector Int_t GetWire(Float_t &x); Int_t GetIndex(Int_t sector, Int_t row); //give index of the given sector and pad row Bool_t AdjustSectorRow(Int_t index, Int_t & sector, Int_t &row); //return sector and padrow //for given index Int_t GetNRowsTotal(){return fNtRows;} //get total nuber of rows void SetDefault(); //set defaut TPCparam Bool_t Update(); //recalculate and check geometric parameters Bool_t GetStatus(); //get information about object consistency void AdjustAngles(Int_t isec, Float_t &cos, Float_t &sin) const; //set cosinus and sinus of rotation angles for sector isec Int_t GetNRowLow() const; //get the number of pad rows in low sector Int_t GetNRowUp() const; //get the number of pad rows in up sector Int_t GetNRow(Int_t isec) {return ((isec