//-*- Mode: C++ -*- // @(#) $Id: AliHLTTPCCAParam.h,v 1.4 2011/10/01 00:23:44 perev Exp $ // ************************************************************************ // 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 ALIHLTTPCCAPARAM_H #define ALIHLTTPCCAPARAM_H #include "AliHLTTPCCADef.h" #include "AliHLTVector.h" #include "AliHLTTPCCAMath.h" #include "AliHLTTPCCATrackParam.h" #include "AliHLTTPCCAParameters.h" #include "L1Station.h" #include namespace std { template struct char_traits; template class basic_istream; typedef basic_istream > istream; template class basic_ostream; typedef basic_ostream > ostream; } // namespace std /** * @class ALIHLTTPCCAParam * parameters of the AliHLTTPCCATracker, including geometry information * and some reconstructon constants. * * The class is under construction. * */ class AliHLTTPCCAParam { friend std::istream &operator>>( std::istream &, AliHLTTPCCAParam & ); // friend std::ostream &operator<<( std::ostream &, const AliHLTTPCCAParam & ); public: AliHLTTPCCAParam(); ~AliHLTTPCCAParam(){ if(fStations) delete [] fStations; } int NStations() const { return fNStations;} int NMvdStations() const { return fNMvdStations;} const L1Station& Station(int i ) const { return fStations[i];} float Bz() const { return fBz;} float cBz() const { return fBz*0.000299792458;} void SetBz( float v ) { fBz = v;} float GetBz() const { return fBz;} float GetBz( float x, float y, float z ) const; sfloat_v GetBz( sfloat_v x, sfloat_v y, sfloat_v z ) const; float GetBz( const AliHLTTPCCATrackParam &t ) const; sfloat_v GetBz( const AliHLTTPCCATrackParamVector &t ) const; void StoreToFile( FILE *f ) const; void RestoreFromFile( FILE *f ); const L1FieldValue &VtxFieldValue() const { return fVtxFieldValue; } protected: L1Station *fStations; float fBz; L1FieldValue fVtxFieldValue; // field at the vertex position. L1FieldRegion fVtxFieldRegion; int fNStations; int fNMvdStations; }; std::istream &operator>>( std::istream &, AliHLTTPCCAParam & ); std::ostream &operator<<( std::ostream &, const AliHLTTPCCAParam & ); #endif