/* ******************************************************************* // (C)opyright 2004 // // Institute of Computer Science V // Prof. Männer // University of Mannheim, Germany // // ******************************************************************* // // Designer(s): Steinle / Gläß // // ******************************************************************* // // Project: Trackfinder for CBM-Project at GSI-Darmstadt, Germany // // ******************************************************************* // // Description: // // class: // - implements methods to show analysis // // ******************************************************************* // // $Author: csteinle $ // $Date: 2007-06-06 14:18:40 $ // $Revision: 1.6 $ // // *******************************************************************/ #ifndef _SHOWANALYSIS_H #define _SHOWANALYSIS_H #include "../../DataObjectLIB/include/magneticFieldValue.h" #include "../../DataObjectLIB/include/table.h" #include "TCanvas.h" #include "TGraph.h" /* ************************************************************** * CLASS showAnalysis * * **************************************************************/ class showAnalysis { protected: TCanvas** window; unsigned short numberOfWindows; TGraph** display; unsigned short numberOfDisplays; TCanvas* correctLayerWindow; TGraph* correctLayerDisplay; unsigned short correctLayerAdditions; TCanvas* correctSlopeWindow; TGraph* correctSlopeDisplay; unsigned short correctSlopeAdditions; TCanvas* layerWindow; TGraph* layerDisplay; unsigned short layerAdditions; TCanvas* signatureWindow; TGraph* signatureDisplay; unsigned short signatureAdditions; TCanvas* correctPrelutCellWindow; TGraph* correctPrelutCellDisplay; unsigned short correctPrelutCellAdditions; TCanvas* prelutCellWindow; TGraph* prelutCellDisplay; unsigned short prelutCellAdditions; TCanvas* correctLutCellWindow; TGraph* correctLutCellDisplay; unsigned short correctLutCellAdditions; TCanvas* lutCellWindow; TGraph* lutCellDisplay; unsigned short lutCellAdditions; TCanvas* momentaErrorWindow; TGraph* momentaErrorDisplay; unsigned short momentaErrorAdditions; TCanvas* momentaXWindow; TGraph* momentaXDisplay; unsigned short momentaXAdditions; TCanvas* momentaYWindow; TGraph* momentaYDisplay; unsigned short momentaYAdditions; TCanvas* momentaZWindow; TGraph* momentaZDisplay; unsigned short momentaZAdditions; TCanvas* coordinateXWindow; TGraph* coordinateXDisplay; unsigned short coordinateXAdditions; TCanvas* coordinateYWindow; TGraph* coordinateYDisplay; unsigned short coordinateYAdditions; TCanvas* coordinateZWindow; TGraph* coordinateZDisplay; unsigned short coordinateZAdditions; TCanvas* momentaWindow; TGraph* momentaDisplay; unsigned short momentaAdditions; TCanvas* coordinateWindow; TGraph* coordinateDisplay; unsigned short coordinateAdditions; TCanvas* minimalTrackColumnWindow; TGraph* minimalTrackColumnDisplay; unsigned short minimalTrackColumnAdditions; TCanvas* averageTrackColumnWindow; TGraph* averageTrackColumnDisplay; unsigned short averageTrackColumnAdditions; TCanvas* maximalTrackColumnWindow; TGraph* maximalTrackColumnDisplay; unsigned short maximalTrackColumnAdditions; TCanvas* fifoForColumnWindow; TGraph* fifoForColumnDisplay; unsigned short fifoForColumnAdditions; TCanvas* trackLayerWindow; TGraph* trackLayerDisplay; unsigned short trackLayerAdditions; TCanvas* trackDensityLayerWindow; TGraph* trackDensityLayerDisplay; unsigned short trackDensityLayerAdditions; /** * This method initializes the global style for each display. */ void initWindowStyle(); /** * This method initializes the window with a name and a title. */ TCanvas* addWindow(std::string name, std::string title); /** * This method initializes the display. */ TGraph* addDisplay(int numberOfEntries, double* arrayX, double* arrayY); /** * method updates the corresponding window- and display-object. */ void updateWindowAndDisplay(TCanvas* windowToUpdate, TGraph* displayToUpdate, unsigned short numberOfAdditions, double* arrayY); public: /** * Default constructor */ showAnalysis(); /** * Destructor */ virtual ~showAnalysis(); /** * method adds a display to show the distribution of the correct layers for the hits */ void addCorrectLayerDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the correct slopes for the hits */ void addCorrectSlopeDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the layers for the hits */ void addLayerDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the yz-projection of one track */ void addYZProjection(double* arrayY, double* arrayZ, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the tracks' hit signature */ void addSignatureDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the correct cells for the hits based on the prelut */ void addCorrectPrelutCellDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the cells for the hits based on the prelut */ void addPrelutCellDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the correct cells for the hits based on the lut */ void addCorrectLutCellDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the cells for the hits based on the lut */ void addLutCellDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the magnetfield factors dependant of z */ void addMagnetfieldFactorsZ(double* arrayZ, double* arrayM, unsigned short numberOfEntries); /** * method adds a display to show the magnetfield values dependant of z */ void addMagnetfieldValuesZ(double* arrayZ, magneticFieldValue* arrayM, unsigned short numberOfEntries); /** * method adds a display to show the integrated magnetfield values dependant of z */ void addIntegratedMagnetfieldValuesZ(double* arrayZ, magneticFieldValue* arrayM, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the percentage of errors for the momentaError */ void addMomentaErrorDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the momentas */ void addMomentaXDistribution(unsigned int* array, unsigned short numberOfEntries, double min, double max); void addMomentaYDistribution(unsigned int* array, unsigned short numberOfEntries, double min, double max); void addMomentaZDistribution(unsigned int* array, unsigned short numberOfEntries, double min, double max); /** * method adds a display to show the distribution of the coordinates */ void addCoordinateXDistribution(unsigned int* array, unsigned short numberOfEntries); void addCoordinateYDistribution(unsigned int* array, unsigned short numberOfEntries); void addCoordinateZDistribution(unsigned int* array, unsigned short numberOfEntries); void addMomentaDistribution(unsigned int* array, unsigned int numberOfEntries); void addCoordinateDistribution(unsigned int* array, unsigned int numberOfEntries); /** * method adds a display to show the distribution of the * minimal found tracks' column */ void addMinimalTrackColumnDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the * average found tracks' column */ void addAverageTrackColumnDistribution(double* array, unsigned short numberOfEntries, unsigned int numberOfAnalysis); /** * method adds a display to show the distribution of the * maximal found tracks' column */ void addMaximalTrackColumnDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the * fifos for the found tracks' column */ void addFifoForColumnDistribution(unsigned int* array, unsigned short numberOfEntries); /** * method adds a display to show the distribution of the * maximal found tracks' layer */ void addTrackLayerDistribution(unsigned int* array, unsigned short numberOfEntries, unsigned int numberOfAnalysis); /** * method adds a display to show the distribution of the * maximal found tracks' density layer */ void addTrackDensityLayerDistribution(int* array, unsigned short numberOfEntries, unsigned int numberOfAnalysis); /** * method adds a display to show the distribution of the * two given arrays */ void addDistribution(double* arrayX, double* arrayY, unsigned short numberOfEntries, std::string name, std::string title, std::string xAxiTitle, std::string yAxiTitle); /** * method adds a display to show the distribution of the * given table */ void addTable(table& source, std::string name, std::string title, std::string xAxiTitle, std::string yAxiTitle); }; #endif