// ----------------------------------------------------------------- // $Id: // // Description: // Driver Class for the Runge-Kutta-Method // User specifies binning/accuracy in r and z // Output is the deviation map file // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Felix Boehmer TUM (original author) // // ----------------------------------------------------------------- #ifndef TPCINHFIELDDRIFTER_H #define TPCINHFIELDDRIFTER_H #include #include #include "TVector3.h" #include "TpcRungeKutta.h" //making this only collaborating gives compiler error class PndMultiField; class TpcInhFieldDrifter { public: TpcInhFieldDrifter(const char* eFieldFile, PndMultiField* bField, const std::string outFile, int rBins, int zBins); ~TpcInhFieldDrifter(); void run(); //starts the thing private: int _rBins, _zBins; double _tpcMinR, _tpcMaxR, _tpcMinZ, _tpcMaxZ, _rBinWidth, _zBinWidth, _sc, _friction; // ??? const std::string _outFile; void writeToFile(const std::string); TpcRungeKutta* _runKut; std::vector< std::vector > _devX; //x-deviation std::vector< std::vector > _devY; //y-deviation std::vector< std::vector > _time; //total RK-time std::vector< std::vector > _stepCount; //amount of RK-steps std::vector< std::vector > _pathLength; //total real drift-path //control vector for the evolution of the drift velocity. //contains vectors of 3 components of the vector v and the Runge Kutta time std::vector*>* _velocity_control; }; #endif