From 4c31f7047d29fab5321061d6208d5b68f2d21278 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Tue, 30 May 2023 10:44:59 +0200 Subject: [PATCH 01/19] remove dependency from TObject --- inc/TRestDetectorReadout.h | 3 +-- inc/TRestDetectorReadoutChannel.h | 5 ++--- inc/TRestDetectorReadoutEventViewer.h | 5 ++--- inc/TRestDetectorReadoutMapping.h | 5 ++--- inc/TRestDetectorReadoutModule.h | 5 ++--- inc/TRestDetectorReadoutPixel.h | 7 +++---- inc/TRestDetectorReadoutPlane.h | 6 ++---- 7 files changed, 14 insertions(+), 22 deletions(-) diff --git a/inc/TRestDetectorReadout.h b/inc/TRestDetectorReadout.h index 78855fc5..18a42c9d 100644 --- a/inc/TRestDetectorReadout.h +++ b/inc/TRestDetectorReadout.h @@ -23,7 +23,6 @@ #ifndef RestCore_TRestDetectorReadout #define RestCore_TRestDetectorReadout -#include #include #include @@ -97,7 +96,7 @@ class TRestDetectorReadout : public TRestMetadata { // Constructor TRestDetectorReadout(); - TRestDetectorReadout(const char* configFilename); + explicit TRestDetectorReadout(const char* configFilename); TRestDetectorReadout(const char* configFilename, std::string name); // Destructor virtual ~TRestDetectorReadout(); diff --git a/inc/TRestDetectorReadoutChannel.h b/inc/TRestDetectorReadoutChannel.h index cd8e14dc..0a1fadc5 100644 --- a/inc/TRestDetectorReadoutChannel.h +++ b/inc/TRestDetectorReadoutChannel.h @@ -23,7 +23,6 @@ #ifndef RestCore_TRestDetectorReadoutChannel #define RestCore_TRestDetectorReadoutChannel -#include #include #include @@ -42,7 +41,7 @@ enum TRestDetectorReadoutChannelType { /// A class to store the readout channel definition used in TRestDetectorReadoutModule. /// It allows to integrate any number of independent readout pixels. -class TRestDetectorReadoutChannel : public TObject { +class TRestDetectorReadoutChannel { private: Int_t fDaqID; ///< Defines the corresponding daq channel id. See decoding ///< details at TRestDetectorReadout. @@ -98,6 +97,6 @@ class TRestDetectorReadoutChannel : public TObject { // Destructor virtual ~TRestDetectorReadoutChannel(); - ClassDef(TRestDetectorReadoutChannel, 3); // REST run class + ClassDef(TRestDetectorReadoutChannel, 4); // REST run class }; #endif diff --git a/inc/TRestDetectorReadoutEventViewer.h b/inc/TRestDetectorReadoutEventViewer.h index 1f6c20df..cfc9eee0 100644 --- a/inc/TRestDetectorReadoutEventViewer.h +++ b/inc/TRestDetectorReadoutEventViewer.h @@ -17,12 +17,11 @@ #include #include +#include -#include "TRestDetectorSignalEvent.h" -#include "TRestEventViewer.h" -// #include "TRestDecoding.h" #include "TH2Poly.h" #include "TRestDetectorReadout.h" +#include "TRestDetectorSignalEvent.h" class TRestDetectorReadoutEventViewer : public TRestEventViewer { protected: diff --git a/inc/TRestDetectorReadoutMapping.h b/inc/TRestDetectorReadoutMapping.h index 618c6cdb..d2a7bb70 100644 --- a/inc/TRestDetectorReadoutMapping.h +++ b/inc/TRestDetectorReadoutMapping.h @@ -24,13 +24,12 @@ #define RestCore_TRestDetectorReadoutMapping #include -#include #include /// This class defines a uniform 2-dimensional grid relating its nodes to the /// pixels of a readout. -class TRestDetectorReadoutMapping : public TObject { +class TRestDetectorReadoutMapping { private: Int_t fNodesX; ///< The number of nodes in the x-axis. Int_t fNodesY; ///< The number of nodes in the y-axis. @@ -88,6 +87,6 @@ class TRestDetectorReadoutMapping : public TObject { // Destructor ~TRestDetectorReadoutMapping(); - ClassDef(TRestDetectorReadoutMapping, 1); + ClassDef(TRestDetectorReadoutMapping, 2); }; #endif diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index 0a49d646..9b05726c 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -24,7 +24,6 @@ #define RestCore_TRestDetectorReadoutModule #include -#include #include #include @@ -34,7 +33,7 @@ /// A class to store the readout module definition used in TRestDetectorReadoutPlane. It /// allows to integrate any number of independent readout channels. -class TRestDetectorReadoutModule : public TObject { +class TRestDetectorReadoutModule { private: Int_t fModuleID; ///< The module id given by the readout definition. @@ -253,6 +252,6 @@ class TRestDetectorReadoutModule : public TObject { // Destructor virtual ~TRestDetectorReadoutModule(); - ClassDefOverride(TRestDetectorReadoutModule, 1); + ClassDefOverride(TRestDetectorReadoutModule, 2); }; #endif diff --git a/inc/TRestDetectorReadoutPixel.h b/inc/TRestDetectorReadoutPixel.h index 0dc9000d..82de6f90 100644 --- a/inc/TRestDetectorReadoutPixel.h +++ b/inc/TRestDetectorReadoutPixel.h @@ -24,14 +24,12 @@ #define RestCore_TRestDetectorReadoutPixel #include -#include -#include #include #include /// A class to store the readout pixel definition used in TRestDetectorReadoutChannel. -class TRestDetectorReadoutPixel : public TObject { +class TRestDetectorReadoutPixel { private: Double_t fPixelOriginX; ///< The pixel x-origin position, left-bottom corner. Double_t fPixelOriginY; ///< The pixel y-origin position, left-bottom corner. @@ -125,6 +123,7 @@ class TRestDetectorReadoutPixel : public TObject { // Destructor virtual ~TRestDetectorReadoutPixel(); - ClassDef(TRestDetectorReadoutPixel, 4); + ClassDef(TRestDetectorReadoutPixel, 5); }; + #endif diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 09f6f0f6..cd247242 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -25,8 +25,6 @@ #include #include -#include -#include #include @@ -35,7 +33,7 @@ /// A class to store the readout plane definition used in TRestDetectorReadout. It /// allows to integrate any number of independent readout modules. -class TRestDetectorReadoutPlane : public TObject { +class TRestDetectorReadoutPlane { private: Int_t fPlaneID; ///< The readout plane id. The id number is imposed by the ///< order of creation. Being the first id=0. @@ -170,6 +168,6 @@ class TRestDetectorReadoutPlane : public TObject { // Destructor virtual ~TRestDetectorReadoutPlane(); - ClassDef(TRestDetectorReadoutPlane, 1); + ClassDef(TRestDetectorReadoutPlane, 2); }; #endif From d954cf460a4416740159a3449a4bd1d985c363a2 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Tue, 30 May 2023 10:50:37 +0200 Subject: [PATCH 02/19] removed __CINT__ declarations --- inc/TRestDetectorElectronDiffusionProcess.h | 3 +-- inc/TRestDetectorGas.h | 2 -- inc/TRestDetectorHitsShuffleProcess.h | 3 --- inc/TRestDetectorReadout.h | 2 -- inc/TRestDetectorReadoutModule.h | 2 -- inc/TRestDetectorSignalEvent.h | 2 -- inc/TRestDetectorSingleChannelAnalysisProcess.h | 8 ++------ 7 files changed, 3 insertions(+), 19 deletions(-) diff --git a/inc/TRestDetectorElectronDiffusionProcess.h b/inc/TRestDetectorElectronDiffusionProcess.h index f5152e05..0f647f30 100644 --- a/inc/TRestDetectorElectronDiffusionProcess.h +++ b/inc/TRestDetectorElectronDiffusionProcess.h @@ -21,7 +21,7 @@ class TRestDetectorElectronDiffusionProcess : public TRestEventProcess { private: -#ifndef __CINT__ + TRestDetectorHitsEvent* fInputHitsEvent; //! TRestDetectorHitsEvent* fOutputHitsEvent; //! @@ -29,7 +29,6 @@ class TRestDetectorElectronDiffusionProcess : public TRestEventProcess { TRestDetectorReadout* fReadout; //! TRandom3* fRandom; //! -#endif void InitFromConfigFile() override; diff --git a/inc/TRestDetectorGas.h b/inc/TRestDetectorGas.h index 4f525af2..7fe92be5 100644 --- a/inc/TRestDetectorGas.h +++ b/inc/TRestDetectorGas.h @@ -236,10 +236,8 @@ class TRestDetectorGas : public TRestDetectorDriftVolume { return fGasComponentFraction[n]; } -#ifndef __CINT__ /// Return pointer to Garfield::MediumGas for gas properties inline MediumMagboltz* GetGasMedium() const { return fGasMedium; }; -#endif /// Return reference name of the corresponding material in GDML file inline TString GetGDMLMaterialRef() const { return fGDMLMaterialRef; }; diff --git a/inc/TRestDetectorHitsShuffleProcess.h b/inc/TRestDetectorHitsShuffleProcess.h index 4298a10f..287da10a 100644 --- a/inc/TRestDetectorHitsShuffleProcess.h +++ b/inc/TRestDetectorHitsShuffleProcess.h @@ -19,11 +19,8 @@ class TRestDetectorHitsShuffleProcess : public TRestEventProcess { private: -#ifndef __CINT__ TRestDetectorHitsEvent* fHitsEvent; //! - TRandom3* fRandom; //! -#endif void InitFromConfigFile() override; diff --git a/inc/TRestDetectorReadout.h b/inc/TRestDetectorReadout.h index 18a42c9d..70d66a01 100644 --- a/inc/TRestDetectorReadout.h +++ b/inc/TRestDetectorReadout.h @@ -43,12 +43,10 @@ class TRestDetectorReadout : public TRestMetadata { std::vector fReadoutPlanes; ///< A std::vector storing the TRestDetectorReadoutPlane definitions. -#ifndef __CINT__ Int_t fMappingNodes; //!///< Number of nodes per axis used on the readout //! coordinate mapping. See also TRestDetectorReadoutMapping. std::vector fModuleDefinitions; //!///< A std::vector storing the different //! TRestDetectorReadoutModule definitions. -#endif void ValidateReadout(); diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index 9b05726c..1dcd101d 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -66,10 +66,8 @@ class TRestDetectorReadoutModule { Double_t fTolerance; ///< Tolerance allowed in overlaps at the pixel ///< boundaries in mm. -#ifndef __CINT__ Bool_t showWarnings; //!///< Flag to enable/disable warning outputs. Disabled by //! default. REST_Warning in TRestDetectorReadout will enable it. -#endif void Initialize(); diff --git a/inc/TRestDetectorSignalEvent.h b/inc/TRestDetectorSignalEvent.h index e47cfd59..35e60788 100644 --- a/inc/TRestDetectorSignalEvent.h +++ b/inc/TRestDetectorSignalEvent.h @@ -31,12 +31,10 @@ class TRestDetectorSignalEvent : public TRestEvent { protected: -#ifndef __CINT__ Double_t fMinTime; //! Double_t fMaxTime; //! Double_t fMinValue; //! Double_t fMaxValue; //! -#endif std::vector fSignal; // Collection of signals that define the event diff --git a/inc/TRestDetectorSingleChannelAnalysisProcess.h b/inc/TRestDetectorSingleChannelAnalysisProcess.h index 1238f41d..42e2ab8a 100644 --- a/inc/TRestDetectorSingleChannelAnalysisProcess.h +++ b/inc/TRestDetectorSingleChannelAnalysisProcess.h @@ -23,13 +23,9 @@ class TRestDetectorSingleChannelAnalysisProcess : public TRestEventProcess { private: -#ifndef __CINT__ TRestDetectorSignalEvent* fSignalEvent; //! - - TRestDetectorReadout* fReadout; //! - - TRestDetectorGainMap* fCalib; //! -#endif + TRestDetectorReadout* fReadout; //! + TRestDetectorGainMap* fCalib; //! void InitFromConfigFile() override; From c645a7d05df9cd672b7a9f69e830eae0f3635ed8 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Tue, 30 May 2023 10:54:38 +0200 Subject: [PATCH 03/19] using override keyword and remove virtual destructor declaration --- inc/TRestDetectorReadout.h | 2 +- inc/TRestDetectorReadoutEventViewer.h | 2 +- inc/TRestDetectorReadoutModule.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/TRestDetectorReadout.h b/inc/TRestDetectorReadout.h index 70d66a01..5924a001 100644 --- a/inc/TRestDetectorReadout.h +++ b/inc/TRestDetectorReadout.h @@ -97,7 +97,7 @@ class TRestDetectorReadout : public TRestMetadata { explicit TRestDetectorReadout(const char* configFilename); TRestDetectorReadout(const char* configFilename, std::string name); // Destructor - virtual ~TRestDetectorReadout(); + ~TRestDetectorReadout() override; ClassDefOverride(TRestDetectorReadout, 1); }; diff --git a/inc/TRestDetectorReadoutEventViewer.h b/inc/TRestDetectorReadoutEventViewer.h index cfc9eee0..29967aa8 100644 --- a/inc/TRestDetectorReadoutEventViewer.h +++ b/inc/TRestDetectorReadoutEventViewer.h @@ -54,7 +54,7 @@ class TRestDetectorReadoutEventViewer : public TRestEventViewer { // Constructor TRestDetectorReadoutEventViewer(); // Destructor - ~TRestDetectorReadoutEventViewer(); + ~TRestDetectorReadoutEventViewer() override; ClassDef(TRestDetectorReadoutEventViewer, 1); // class inherited from // TRestEventViewer diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index 1dcd101d..5c8a5120 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -183,7 +183,7 @@ class TRestDetectorReadoutModule { } /// Returns the module name - inline const char* GetName() const override { return fModuleName.Data(); } + inline const char* GetName() const { return fModuleName.Data(); } /// Returns a pointer to the readout mapping inline TRestDetectorReadoutMapping* GetMapping() { return &fMapping; } From 55f64606038ef8e97f797a5cfd862b43a1226269 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 31 May 2023 17:20:22 +0200 Subject: [PATCH 04/19] TRestDetectorReadoutEventViewer. Marking virtual methods as override --- inc/TRestDetectorReadoutEventViewer.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/inc/TRestDetectorReadoutEventViewer.h b/inc/TRestDetectorReadoutEventViewer.h index 29967aa8..2eb39f0f 100644 --- a/inc/TRestDetectorReadoutEventViewer.h +++ b/inc/TRestDetectorReadoutEventViewer.h @@ -42,11 +42,11 @@ class TRestDetectorReadoutEventViewer : public TRestEventViewer { double xmin, xmax, ymin, ymax, zmin, zmax; public: - void Initialize(); + void Initialize() override; // Finalize initialization based on arg. TRestDetectorReadout void SetReadout(TRestDetectorReadout* readout); - void AddEvent(TRestEvent* ev); + void AddEvent(TRestEvent* ev) override; void DrawReadoutPulses(); TRestDetectorReadoutChannel* GetChannel(int readoutChannel); TRestDetectorReadoutModule* GetModule(int readoutChannel); @@ -56,7 +56,7 @@ class TRestDetectorReadoutEventViewer : public TRestEventViewer { // Destructor ~TRestDetectorReadoutEventViewer() override; - ClassDef(TRestDetectorReadoutEventViewer, 1); // class inherited from - // TRestEventViewer + ClassDefOverride(TRestDetectorReadoutEventViewer, 1); // class inherited from + // TRestEventViewer }; #endif From 903ce6c04e2b51f755d629d5b2b5ffd876e9a989 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 31 May 2023 17:34:01 +0200 Subject: [PATCH 05/19] TRestDetectorReadoutModule. Removing override --- inc/TRestDetectorReadoutModule.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index 5c8a5120..1508a743 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -250,6 +250,6 @@ class TRestDetectorReadoutModule { // Destructor virtual ~TRestDetectorReadoutModule(); - ClassDefOverride(TRestDetectorReadoutModule, 2); + ClassDef(TRestDetectorReadoutModule, 2); }; #endif From 75c32d19d7dcf1aaa4af201e14f46d5f12601640 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 31 May 2023 17:34:44 +0200 Subject: [PATCH 06/19] TRestDetectorReadoutPixel. Removing RESTMetadata --- src/TRestDetectorReadoutPixel.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/TRestDetectorReadoutPixel.cxx b/src/TRestDetectorReadoutPixel.cxx index 591f55e3..8df54473 100644 --- a/src/TRestDetectorReadoutPixel.cxx +++ b/src/TRestDetectorReadoutPixel.cxx @@ -153,12 +153,12 @@ TVector2 TRestDetectorReadoutPixel::TransformToPixelCoordinates(TVector2 p) { /// \brief Prints on screen the pixel details, origin, size, rotation /// void TRestDetectorReadoutPixel::Print() { - RESTMetadata << " ## Pixel position : (" << GetOriginX() << "," << GetOriginY() << ") mm size : (" - << GetSizeX() << "," << GetSizeY() << ") mm" << RESTendl; - RESTMetadata << " rotation : " << fRotation << " degrees" - << " type : "; + std::cout << " ## Pixel position : (" << GetOriginX() << "," << GetOriginY() << ") mm size : (" + << GetSizeX() << "," << GetSizeY() << ") mm" << std::endl; + std::cout << " rotation : " << fRotation << " degrees" + << " type : "; if (fTriangle) - RESTMetadata << "triangle" << RESTendl; + std::cout << "triangle" << std::endl; else - RESTMetadata << "rectangle" << RESTendl; + std::cout << "rectangle" << std::endl; } From 6f46066414b9cc472da5a1a5c6a73a502467cb36 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 31 May 2023 15:36:09 +0000 Subject: [PATCH 07/19] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- inc/TRestDetectorElectronDiffusionProcess.h | 1 - inc/TRestDetectorHitsShuffleProcess.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/inc/TRestDetectorElectronDiffusionProcess.h b/inc/TRestDetectorElectronDiffusionProcess.h index 0f647f30..595aa1c7 100644 --- a/inc/TRestDetectorElectronDiffusionProcess.h +++ b/inc/TRestDetectorElectronDiffusionProcess.h @@ -21,7 +21,6 @@ class TRestDetectorElectronDiffusionProcess : public TRestEventProcess { private: - TRestDetectorHitsEvent* fInputHitsEvent; //! TRestDetectorHitsEvent* fOutputHitsEvent; //! diff --git a/inc/TRestDetectorHitsShuffleProcess.h b/inc/TRestDetectorHitsShuffleProcess.h index 287da10a..105b7ab1 100644 --- a/inc/TRestDetectorHitsShuffleProcess.h +++ b/inc/TRestDetectorHitsShuffleProcess.h @@ -20,7 +20,7 @@ class TRestDetectorHitsShuffleProcess : public TRestEventProcess { private: TRestDetectorHitsEvent* fHitsEvent; //! - TRandom3* fRandom; //! + TRandom3* fRandom; //! void InitFromConfigFile() override; From ec952955e12768dbab2b73f0ee9ac3b4303fc08f Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Tue, 30 May 2023 11:01:12 +0200 Subject: [PATCH 08/19] fix typos, variable names, const references --- inc/TRestDetectorPositionMappingProcess.h | 2 +- inc/TRestDetectorReadoutChannel.h | 2 +- inc/TRestDetectorReadoutEventViewer.h | 3 +-- inc/TRestDetectorReadoutMapping.h | 4 ++-- inc/TRestDetectorReadoutModule.h | 8 ++++---- inc/TRestDetectorReadoutPixel.h | 8 ++++---- inc/TRestDetectorReadoutPlane.h | 22 +++++++++++----------- src/TRestDetectorReadoutModule.cxx | 6 +++--- 8 files changed, 27 insertions(+), 28 deletions(-) diff --git a/inc/TRestDetectorPositionMappingProcess.h b/inc/TRestDetectorPositionMappingProcess.h index e8a2ccbe..4b66e9ec 100644 --- a/inc/TRestDetectorPositionMappingProcess.h +++ b/inc/TRestDetectorPositionMappingProcess.h @@ -81,7 +81,7 @@ class TRestDetectorPositionMappingProcess : public TRestEventProcess { TRestDetectorPositionMappingProcess(); TRestDetectorPositionMappingProcess(const char* configFilename); - ~TRestDetectorPositionMappingProcess(); + ~TRestDetectorPositionMappingProcess() override; ClassDefOverride(TRestDetectorPositionMappingProcess, 1); }; diff --git a/inc/TRestDetectorReadoutChannel.h b/inc/TRestDetectorReadoutChannel.h index 0a1fadc5..86e0a576 100644 --- a/inc/TRestDetectorReadoutChannel.h +++ b/inc/TRestDetectorReadoutChannel.h @@ -86,7 +86,7 @@ class TRestDetectorReadoutChannel { void SetChannelID(Int_t id) { fChannelId = id; } /// Adds a new pixel to the readout channel - void AddPixel(TRestDetectorReadoutPixel pix) { fReadoutPixel.push_back(pix); } + void AddPixel(const TRestDetectorReadoutPixel& pixel) { fReadoutPixel.emplace_back(pixel); } Int_t isInside(Double_t x, Double_t y); diff --git a/inc/TRestDetectorReadoutEventViewer.h b/inc/TRestDetectorReadoutEventViewer.h index 2eb39f0f..2f956f04 100644 --- a/inc/TRestDetectorReadoutEventViewer.h +++ b/inc/TRestDetectorReadoutEventViewer.h @@ -28,7 +28,6 @@ class TRestDetectorReadoutEventViewer : public TRestEventViewer { TCanvas* fCanvasXY; TCanvas* fCanvasXZYZ; - // TRestDecoding *fDecoding; TRestDetectorReadout* fReadout; TRestDetectorSignalEvent* fSignalEvent; @@ -37,7 +36,7 @@ class TRestDetectorReadoutEventViewer : public TRestEventViewer { TH2D* fHistoXZ; TH2D* fHistoYZ; - bool isfirstEvent; + bool isFirstevent; double xmin, xmax, ymin, ymax, zmin, zmax; diff --git a/inc/TRestDetectorReadoutMapping.h b/inc/TRestDetectorReadoutMapping.h index d2a7bb70..c94eb8a2 100644 --- a/inc/TRestDetectorReadoutMapping.h +++ b/inc/TRestDetectorReadoutMapping.h @@ -50,10 +50,10 @@ class TRestDetectorReadoutMapping { /// Returns the number of nodes in Y. inline Int_t GetNumberOfNodesY() const { return fNodesY; } - /// Gets the channel id correspoding to a given node (i,j) + /// Gets the channel id corresponding to a given node (i,j) Int_t GetChannelByNode(Int_t i, Int_t j) { return fChannel[i][j]; } - /// Gets the pixel id correspoding to a given node (i,j) + /// Gets the pixel id corresponding to a given node (i,j) Int_t GetPixelByNode(Int_t i, Int_t j) { return fPixel[i][j]; } Bool_t isNodeSet(Int_t i, Int_t j); diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index 1508a743..1b574cc9 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -53,7 +53,7 @@ class TRestDetectorReadoutModule { ///< position=(fModuleOriginX, fModuleOriginY) in ///< degrees. - Int_t fMininimumDaqId; ///< The minimum daq channel id associated to the + Int_t fMinimumDaqId; ///< The minimum daq channel id associated to the ///< module. Int_t fMaximumDaqId; ///< The maximum daq channel id associated to the module. @@ -79,7 +79,7 @@ class TRestDetectorReadoutModule { /// Converts the coordinates (xPhys,yPhys) in the readout plane reference /// system to the readout module reference system. - inline TVector2 TransformToModuleCoordinates(Double_t xPhys, Double_t yPhys) { + inline TVector2 TransformToModuleCoordinates(Double_t xPhys, Double_t yPhys) const { TVector2 coords(xPhys - fModuleOriginX, yPhys - fModuleOriginY); TVector2 rot = coords.Rotate(-fModuleRotation * TMath::Pi() / 180.); @@ -88,7 +88,7 @@ class TRestDetectorReadoutModule { /// Converts the coordinates (xMod,yMod) in the readout module reference /// system to the readout plane reference system. - inline TVector2 TransformToPhysicalCoordinates(Double_t xMod, Double_t yMod) { + inline TVector2 TransformToPhysicalCoordinates(Double_t xMod, Double_t yMod) const { TVector2 coords(xMod, yMod); coords = coords.Rotate(fModuleRotation * TMath::Pi() / 180.); @@ -135,7 +135,7 @@ class TRestDetectorReadoutModule { inline Double_t GetTolerance() const { return fTolerance; } /// Returns the minimum daq id number - inline Int_t GetMinDaqID() const { return fMininimumDaqId; } + inline Int_t GetMinDaqID() const { return fMinimumDaqId; } /// Returns the maximum daq id number inline Int_t GetMaxDaqID() const { return fMaximumDaqId; } diff --git a/inc/TRestDetectorReadoutPixel.h b/inc/TRestDetectorReadoutPixel.h index 82de6f90..b2687382 100644 --- a/inc/TRestDetectorReadoutPixel.h +++ b/inc/TRestDetectorReadoutPixel.h @@ -57,7 +57,7 @@ class TRestDetectorReadoutPixel { Double_t GetOriginY() const { return fPixelOriginY; } /// Returns a TVector2 with the pixel origin. - TVector2 GetOrigin() const { return TVector2(fPixelOriginX, fPixelOriginY); } + TVector2 GetOrigin() const { return {fPixelOriginX, fPixelOriginY}; } /// Returns the rotation angle in degrees Double_t GetRotation() const { return fRotation; } @@ -69,7 +69,7 @@ class TRestDetectorReadoutPixel { inline Double_t GetSizeY() const { return fPixelSizeY; } /// Returns a TVector2 with the pixel size. - TVector2 GetSize() { return TVector2(fPixelSizeX, fPixelSizeY); } + TVector2 GetSize() { return {fPixelSizeX, fPixelSizeY}; } /// Returns true if the pixel is a triangle. Bool_t GetTriangle() const { return fTriangle; } @@ -85,7 +85,7 @@ class TRestDetectorReadoutPixel { } /// Sets the origin of the pixel using a TVector2. - void SetOrigin(TVector2 origin) { + void SetOrigin(const TVector2& origin) { fPixelOriginX = origin.X(); fPixelOriginY = origin.Y(); } @@ -97,7 +97,7 @@ class TRestDetectorReadoutPixel { } /// Sets the size of the pixel using a TVector2. - void SetSize(TVector2 size) { + void SetSize(const TVector2& size) { fPixelSizeX = size.X(); fPixelSizeY = size.Y(); } diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index cd247242..b8cc69eb 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -40,11 +40,11 @@ class TRestDetectorReadoutPlane { TVector3 fPosition; ///< The position of the readout plane. The relative position ///< of the modules will be shifted by this value. - TVector3 fPlaneVector; ///< The plane std::vector definning the plane orientation + TVector3 fPlaneVector; ///< The plane std::vector defining the plane orientation ///< and the side of the active volume. TVector3 fCathodePosition; ///< The cathode position which delimites the active ///< volume together with the readout plane. - Double_t fChargeCollection; ///< A parameter between 0 and 1 definning how + Double_t fChargeCollection; ///< A parameter between 0 and 1 defining how ///< much charge should be collected from a ///< charge hit. It might be used to distribute ///< the charge between different readout planes. @@ -66,15 +66,15 @@ class TRestDetectorReadoutPlane { void SetID(int id) { fPlaneID = id; } /// Sets the readout plane position - void SetPosition(TVector3 pos) { fPosition = pos; } + void SetPosition(const TVector3& position) { fPosition = position; } /// Sets the cathode plane position. By default is parallel to the readout /// plane. - void SetCathodePosition(TVector3 pos) { fCathodePosition = pos; } + void SetCathodePosition(const TVector3& position) { fCathodePosition = position; } /// Sets the orientation of the readout plane, and defines the side of the /// active volume. - void SetPlaneVector(TVector3 vect) { fPlaneVector = vect.Unit(); } + void SetPlaneVector(const TVector3& vect) { fPlaneVector = vect.Unit(); } /// Sets the value for the charge collection. void SetChargeCollection(Double_t charge) { fChargeCollection = charge; } @@ -103,7 +103,7 @@ class TRestDetectorReadoutPlane { /// Returns the perpendicular distance to the readout plane from a given /// position *pos*. - Double_t GetDistanceTo(TVector3 pos); + Double_t GetDistanceTo(TVector3 position); /// Returns the perpendicular distance to the readout plane from a given /// position *x*, *y*, *z*. @@ -111,8 +111,8 @@ class TRestDetectorReadoutPlane { /// Returns a TVector2 oriented as the shortest distance of a given position /// *pos* on the plane to a specific module with id *mod* - TVector2 GetDistanceToModule(Int_t mod, TVector2 pos) { - return GetModuleByID(mod)->GetDistanceToModule(pos); + TVector2 GetDistanceToModule(Int_t mod, const TVector2& position) { + return GetModuleByID(mod)->GetDistanceToModule(position); } TRestDetectorReadoutModule& operator[](int mod) { return fReadoutModules[mod]; } @@ -124,7 +124,7 @@ class TRestDetectorReadoutPlane { } /// Returns the total number of modules in the readout plane - Int_t GetNumberOfModules() { return fReadoutModules.size(); } + size_t GetNumberOfModules() { return fReadoutModules.size(); } /// Adds a new module to the readout plane void AddModule(TRestDetectorReadoutModule& rModule) { @@ -141,11 +141,11 @@ class TRestDetectorReadoutPlane { Int_t isZInsideDriftVolume(Double_t z); - Int_t isZInsideDriftVolume(TVector3 pos); + Int_t isZInsideDriftVolume(TVector3 position); Bool_t isDaqIDInside(Int_t daqId); - Int_t GetModuleIDFromPosition(TVector3 pos); + Int_t GetModuleIDFromPosition(TVector3 position); Int_t GetModuleIDFromPosition(Double_t x, Double_t y, Double_t z); diff --git a/src/TRestDetectorReadoutModule.cxx b/src/TRestDetectorReadoutModule.cxx index 920e0bc6..f5fa51c8 100644 --- a/src/TRestDetectorReadoutModule.cxx +++ b/src/TRestDetectorReadoutModule.cxx @@ -77,7 +77,7 @@ void TRestDetectorReadoutModule::Initialize() { fModuleRotation = 0; fMaximumDaqId = -1; - fMininimumDaqId = -1; + fMinimumDaqId = -1; fTolerance = 1.e-3; @@ -98,7 +98,7 @@ void TRestDetectorReadoutModule::SetMinMaxDaqIDs() { } fMaximumDaqId = maxID; - fMininimumDaqId = minID; + fMinimumDaqId = minID; } /////////////////////////////////////////////// @@ -220,7 +220,7 @@ void TRestDetectorReadoutModule::DoReadoutMapping(Int_t nodes) { /// \brief Determines if a given *daqID* number is in the range of the module /// Bool_t TRestDetectorReadoutModule::isDaqIDInside(Int_t daqID) { - if (daqID >= fMininimumDaqId && daqID <= fMaximumDaqId) return true; + if (daqID >= fMinimumDaqId && daqID <= fMaximumDaqId) return true; return false; } From 2705b13234a4be63fa0e223d507380e763c538aa Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 31 May 2023 18:17:46 +0200 Subject: [PATCH 09/19] Fixing compilation issues with int - size_t comparisons --- inc/TRestDetectorReadoutModule.h | 8 ++++---- inc/TRestDetectorReadoutPlane.h | 2 +- src/TRestDetectorDaqChannelSwitchingProcess.cxx | 2 +- src/TRestDetectorGarfieldDriftProcess.cxx | 2 +- src/TRestDetectorReadout.cxx | 6 +++--- src/TRestDetectorReadoutEventViewer.cxx | 4 ++-- src/TRestDetectorReadoutPlane.cxx | 15 ++++++++------- src/TRestDetectorSignalRecoveryProcess.cxx | 2 +- src/TRestDetectorSingleChannelAnalysisProcess.cxx | 2 +- 9 files changed, 22 insertions(+), 21 deletions(-) diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index 1b574cc9..6e0c9400 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -54,8 +54,8 @@ class TRestDetectorReadoutModule { ///< degrees. Int_t fMinimumDaqId; ///< The minimum daq channel id associated to the - ///< module. - Int_t fMaximumDaqId; ///< The maximum daq channel id associated to the module. + ///< module. + Int_t fMaximumDaqId; ///< The maximum daq channel id associated to the module. std::vector fReadoutChannel; ///< A std::vector of the instances of TRestDetectorReadoutChannel @@ -73,7 +73,7 @@ class TRestDetectorReadoutModule { /// Converts the coordinates given by TVector2 in the readout plane reference /// system to the readout module reference system. - inline TVector2 TransformToModuleCoordinates(const TVector2& p) { + inline TVector2 TransformToModuleCoordinates(const TVector2& p) const { return TransformToModuleCoordinates(p.X(), p.Y()); } @@ -174,7 +174,7 @@ class TRestDetectorReadoutModule { /// Converts the coordinates given by TVector2 in the readout plane reference /// system to the readout module reference system. - TVector2 GetModuleCoordinates(const TVector2& p) { return TransformToModuleCoordinates(p); } + TVector2 GetModuleCoordinates(const TVector2& p) const { return TransformToModuleCoordinates(p); } /// Converts the coordinates given by TVector2 in the readout module reference /// system to the readout plane reference system. diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index b8cc69eb..cf0ba429 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -118,7 +118,7 @@ class TRestDetectorReadoutPlane { TRestDetectorReadoutModule& operator[](int mod) { return fReadoutModules[mod]; } /// Returns a pointer to a readout module using its std::vector index - TRestDetectorReadoutModule* GetModule(int mod) { + TRestDetectorReadoutModule* GetModule(size_t mod) { if (mod >= GetNumberOfModules()) return nullptr; return &fReadoutModules[mod]; } diff --git a/src/TRestDetectorDaqChannelSwitchingProcess.cxx b/src/TRestDetectorDaqChannelSwitchingProcess.cxx index 83006c7e..58c2d725 100644 --- a/src/TRestDetectorDaqChannelSwitchingProcess.cxx +++ b/src/TRestDetectorDaqChannelSwitchingProcess.cxx @@ -64,7 +64,7 @@ void TRestDetectorDaqChannelSwitchingProcess::InitProcess() { for (int i = 0; i < fReadout->GetNumberOfReadoutPlanes(); i++) { TRestDetectorReadoutPlane& plane = (*fReadout)[i]; - for (int j = 0; j < plane.GetNumberOfModules(); j++) { + for (size_t j = 0; j < plane.GetNumberOfModules(); j++) { TRestDetectorReadoutModule& mod = plane[j]; if (fFirstDaqChannelDef.count(mod.GetModuleID()) == 0) { for (int i = 0; i < mod.GetNumberOfChannels(); i++) { diff --git a/src/TRestDetectorGarfieldDriftProcess.cxx b/src/TRestDetectorGarfieldDriftProcess.cxx index c1e4f994..835962c6 100644 --- a/src/TRestDetectorGarfieldDriftProcess.cxx +++ b/src/TRestDetectorGarfieldDriftProcess.cxx @@ -330,7 +330,7 @@ void TRestDetectorGarfieldDriftProcess::InitProcess() { Int_t TRestDetectorGarfieldDriftProcess::FindModule(Int_t readoutPlane, Double_t x, Double_t y) { // TODO verify this TRestDetectorReadoutPlane* plane = fReadout->GetReadoutPlane(readoutPlane); - for (int md = 0; md < plane->GetNumberOfModules(); md++) + for (size_t md = 0; md < plane->GetNumberOfModules(); md++) if ((*plane)[md].isInside(x, y)) return md; return -1; diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index 3f3ec4fe..44f79c2e 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -358,7 +358,7 @@ Int_t TRestDetectorReadout::GetNumberOfModules() { Int_t TRestDetectorReadout::GetNumberOfChannels() { Int_t channels = 0; for (int p = 0; p < GetNumberOfReadoutPlanes(); p++) - for (int m = 0; m < fReadoutPlanes[p].GetNumberOfModules(); m++) + for (size_t m = 0; m < fReadoutPlanes[p].GetNumberOfModules(); m++) channels += fReadoutPlanes[p][m].GetNumberOfChannels(); return channels; } @@ -394,7 +394,7 @@ TRestDetectorReadoutModule* TRestDetectorReadout::GetReadoutModuleWithID(int id) for (int i = 0; i < this->GetNumberOfReadoutPlanes(); i++) { TRestDetectorReadoutPlane& plane = fReadoutPlanes[i]; - for (int j = 0; j < plane.GetNumberOfModules(); j++) { + for (size_t j = 0; j < plane.GetNumberOfModules(); j++) { if (plane[j].GetModuleID() == id) { return &plane[j]; } @@ -736,7 +736,7 @@ void TRestDetectorReadout::GetPlaneModuleChannel(Int_t signalID, Int_t& planeID, Int_t& channelID) { for (int p = 0; p < GetNumberOfReadoutPlanes(); p++) { TRestDetectorReadoutPlane* plane = &fReadoutPlanes[p]; - for (int m = 0; m < plane->GetNumberOfModules(); m++) { + for (size_t m = 0; m < plane->GetNumberOfModules(); m++) { TRestDetectorReadoutModule* mod = &(*plane)[m]; if (mod->isDaqIDInside(signalID)) { diff --git a/src/TRestDetectorReadoutEventViewer.cxx b/src/TRestDetectorReadoutEventViewer.cxx index e7ded352..705253b1 100644 --- a/src/TRestDetectorReadoutEventViewer.cxx +++ b/src/TRestDetectorReadoutEventViewer.cxx @@ -117,7 +117,7 @@ void TRestDetectorReadoutEventViewer::DrawReadoutPulses() { daqChannel = fSignalEvent->GetSignal(i)->GetSignalID(); TRestDetectorReadoutPlane* plane = &(*fReadout)[planeId]; - for (int m = 0; m < plane->GetNumberOfModules(); m++) { + for (size_t m = 0; m < plane->GetNumberOfModules(); m++) { module = &(*plane)[m]; if (module->isDaqIDInside(daqChannel)) break; @@ -179,7 +179,7 @@ void TRestDetectorReadoutEventViewer::DrawReadoutPulses() { TRestDetectorReadoutChannel* TRestDetectorReadoutEventViewer::GetChannel(int readoutChannel) { TRestDetectorReadoutPlane* plane = &(*fReadout)[0]; - for (int n = 0; n < plane->GetNumberOfModules(); n++) { + for (size_t n = 0; n < plane->GetNumberOfModules(); n++) { if ((*plane)[n].GetChannel(readoutChannel) == nullptr) continue; return (*plane)[n].GetChannel(readoutChannel); } diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 6fc4fb3b..94d18b04 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -74,7 +74,8 @@ void TRestDetectorReadoutPlane::Initialize() { /// Int_t TRestDetectorReadoutPlane::GetNumberOfChannels() { Int_t nChannels = 0; - for (int md = 0; md < GetNumberOfModules(); md++) nChannels += fReadoutModules[md].GetNumberOfChannels(); + for (size_t md = 0; md < GetNumberOfModules(); md++) + nChannels += fReadoutModules[md].GetNumberOfChannels(); return nChannels; } @@ -90,7 +91,7 @@ void TRestDetectorReadoutPlane::SetDriftDistance() { /// \brief Returns a pointer to a module using its internal module id /// TRestDetectorReadoutModule* TRestDetectorReadoutPlane::GetModuleByID(Int_t modID) { - for (int md = 0; md < GetNumberOfModules(); md++) + for (size_t md = 0; md < GetNumberOfModules(); md++) if (fReadoutModules[md].GetModuleID() == modID) return &fReadoutModules[md]; cout << "REST ERROR (GetReadoutModuleByID) : Module ID : " << modID << " was not found" << endl; @@ -290,7 +291,7 @@ Int_t TRestDetectorReadoutPlane::isZInsideDriftVolume(Double_t z) { /// returns false if daqId is not found /// Bool_t TRestDetectorReadoutPlane::isDaqIDInside(Int_t daqId) { - for (int m = 0; m < GetNumberOfModules(); m++) + for (size_t m = 0; m < GetNumberOfModules(); m++) if (fReadoutModules[m].isDaqIDInside(daqId)) return true; return false; @@ -348,7 +349,7 @@ Int_t TRestDetectorReadoutPlane::GetModuleIDFromPosition(TVector3 pos) { Double_t distance = GetDistanceTo(posNew); if (distance > 0 && distance < fTotalDriftDistance) { - for (int m = 0; m < GetNumberOfModules(); m++) + for (size_t m = 0; m < GetNumberOfModules(); m++) if (fReadoutModules[m].isInside(posNew.X(), posNew.Y())) return fReadoutModules[m].GetModuleID(); } @@ -376,7 +377,7 @@ void TRestDetectorReadoutPlane::Print(Int_t DetailLevel) { RESTMetadata << "-- Total channels : " << GetNumberOfChannels() << RESTendl; RESTMetadata << "----------------------------------------------------------------" << RESTendl; - for (int i = 0; i < GetNumberOfModules(); i++) fReadoutModules[i].Print(DetailLevel - 1); + for (size_t i = 0; i < GetNumberOfModules(); i++) fReadoutModules[i].Print(DetailLevel - 1); } } @@ -399,7 +400,7 @@ TH2Poly* TRestDetectorReadoutPlane::GetReadoutHistogram() { TH2Poly* readoutHistogram = new TH2Poly("ReadoutHistogram", "ReadoutHistogram", xmin, xmax, ymin, ymax); - for (int mdID = 0; mdID < this->GetNumberOfModules(); mdID++) { + for (size_t mdID = 0; mdID < this->GetNumberOfModules(); mdID++) { TRestDetectorReadoutModule* module = &fReadoutModules[mdID]; int nChannels = module->GetNumberOfChannels(); @@ -433,7 +434,7 @@ void TRestDetectorReadoutPlane::GetBoundaries(double& xmin, double& xmax, double xmin = 1E9, xmax = -1E9, ymin = 1E9, ymax = -1E9; - for (int mdID = 0; mdID < this->GetNumberOfModules(); mdID++) { + for (size_t mdID = 0; mdID < this->GetNumberOfModules(); mdID++) { TRestDetectorReadoutModule* module = &fReadoutModules[mdID]; for (int v = 0; v < 4; v++) { diff --git a/src/TRestDetectorSignalRecoveryProcess.cxx b/src/TRestDetectorSignalRecoveryProcess.cxx index a4ff6346..20ea44af 100644 --- a/src/TRestDetectorSignalRecoveryProcess.cxx +++ b/src/TRestDetectorSignalRecoveryProcess.cxx @@ -290,7 +290,7 @@ int TRestDetectorSignalRecoveryProcess::GetAdjacentSignalIds(Int_t signalId, Int for (int p = 0; p < fReadout->GetNumberOfReadoutPlanes(); p++) { TRestDetectorReadoutPlane* plane = fReadout->GetReadoutPlane(p); - for (int m = 0; m < plane->GetNumberOfModules(); m++) { + for (size_t m = 0; m < plane->GetNumberOfModules(); m++) { TRestDetectorReadoutModule* mod = plane->GetModule(m); // We iterate over all readout modules searching for the one that contains // our signal id diff --git a/src/TRestDetectorSingleChannelAnalysisProcess.cxx b/src/TRestDetectorSingleChannelAnalysisProcess.cxx index 561cae94..7c01904b 100644 --- a/src/TRestDetectorSingleChannelAnalysisProcess.cxx +++ b/src/TRestDetectorSingleChannelAnalysisProcess.cxx @@ -48,7 +48,7 @@ void TRestDetectorSingleChannelAnalysisProcess::InitProcess() { } else { for (int i = 0; i < fReadout->GetNumberOfReadoutPlanes(); i++) { auto plane = fReadout->GetReadoutPlane(i); - for (int j = 0; j < plane->GetNumberOfModules(); j++) { + for (size_t j = 0; j < plane->GetNumberOfModules(); j++) { auto mod = plane->GetModule(j); for (int k = 0; k < mod->GetNumberOfChannels(); k++) { auto channel = mod->GetChannel(k); From d115ae3ff97094f57cef5116dfed4f39258bd4e7 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Tue, 30 May 2023 13:42:31 +0200 Subject: [PATCH 10/19] using TVector2/TVector3 for positions --- inc/TRestDetectorReadout.h | 2 +- inc/TRestDetectorReadoutModule.h | 56 +++------ inc/TRestDetectorReadoutPixel.h | 4 +- inc/TRestDetectorReadoutPlane.h | 4 +- ...RestDetectorDaqChannelSwitchingProcess.cxx | 6 +- src/TRestDetectorGainMap.cxx | 2 +- src/TRestDetectorReadout.cxx | 14 +-- src/TRestDetectorReadoutModule.cxx | 109 ++++++++---------- src/TRestDetectorReadoutPixel.cxx | 17 +-- src/TRestDetectorReadoutPlane.cxx | 17 ++- ...stDetectorSingleChannelAnalysisProcess.cxx | 2 +- 11 files changed, 100 insertions(+), 133 deletions(-) diff --git a/inc/TRestDetectorReadout.h b/inc/TRestDetectorReadout.h index 5924a001..bb89a43e 100644 --- a/inc/TRestDetectorReadout.h +++ b/inc/TRestDetectorReadout.h @@ -71,7 +71,7 @@ class TRestDetectorReadout : public TRestMetadata { ///////////////////////////////////// TRestDetectorReadoutModule* ParseModuleDefinition(TiXmlElement* moduleDefinition); void GetPlaneModuleChannel(Int_t daqID, Int_t& planeID, Int_t& moduleID, Int_t& channelID); - Int_t GetHitsDaqChannel(const TVector3& hitPosition, Int_t& planeID, Int_t& moduleID, Int_t& channelID); + Int_t GetHitsDaqChannel(const TVector3& position, Int_t& planeID, Int_t& moduleID, Int_t& channelID); Int_t GetHitsDaqChannelAtReadoutPlane(const TVector3& hitPosition, Int_t& moduleID, Int_t& channelID, Int_t planeId = 0); Double_t GetX(Int_t signalID); diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index 6e0c9400..7ed02686 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -39,15 +39,9 @@ class TRestDetectorReadoutModule { TString fModuleName; ///< The assigned module name. - Double_t fModuleOriginX; ///< The module x-position (left-bottom corner) - ///< relative to the readout plane position. - Double_t fModuleOriginY; ///< The module y-position (left-bottom corner) - ///< relative to the readout plane position. + TVector2 fModuleOrigin; ///< The module (x, y) position relative to the readout plane position. - Double_t fModuleSizeX; ///< X-size of the module. All pixels should be - ///< contained within this size. - Double_t fModuleSizeY; ///< Y-size of the module. All pixels should be - ///< contained within this size. + TVector2 fModuleSize; ///< The module (x, y) size. All pixels should be contained within this size. Double_t fModuleRotation; ///< The rotation of the module around the ///< position=(fModuleOriginX, fModuleOriginY) in @@ -71,16 +65,10 @@ class TRestDetectorReadoutModule { void Initialize(); - /// Converts the coordinates given by TVector2 in the readout plane reference - /// system to the readout module reference system. - inline TVector2 TransformToModuleCoordinates(const TVector2& p) const { - return TransformToModuleCoordinates(p.X(), p.Y()); - } - /// Converts the coordinates (xPhys,yPhys) in the readout plane reference /// system to the readout module reference system. - inline TVector2 TransformToModuleCoordinates(Double_t xPhys, Double_t yPhys) const { - TVector2 coords(xPhys - fModuleOriginX, yPhys - fModuleOriginY); + inline TVector2 TransformToModuleCoordinates(const TVector2& xyPhysical) const { + auto coords = xyPhysical - fModuleOrigin; TVector2 rot = coords.Rotate(-fModuleRotation * TMath::Pi() / 180.); return rot; @@ -92,7 +80,7 @@ class TRestDetectorReadoutModule { TVector2 coords(xMod, yMod); coords = coords.Rotate(fModuleRotation * TMath::Pi() / 180.); - coords = coords + TVector2(fModuleOriginX, fModuleOriginY); + coords += fModuleOrigin; return coords; } @@ -105,19 +93,10 @@ class TRestDetectorReadoutModule { inline void SetModuleID(Int_t modID) { fModuleID = modID; } /// Sets the module size by definition using TVector2 input - inline void SetSize(const TVector2& s) { - fModuleSizeX = s.X(); - fModuleSizeY = s.Y(); - } - - /// Sets the module size by definition using (sX, sY) coordinates - inline void SetSize(Double_t sX, Double_t sY) { SetSize({sX, sY}); } + inline void SetSize(const TVector2& size) { fModuleSize = size; } /// Sets the module origin by definition using TVector2 input - inline void SetOrigin(const TVector2& c) { - fModuleOriginX = c.X(); - fModuleOriginY = c.Y(); - } + inline void SetOrigin(const TVector2& origin) { fModuleOrigin = origin; } /// Sets the module origin by definition using (x,y) coordinates inline void SetOrigin(Double_t x, Double_t y) { SetOrigin({x, y}); } @@ -143,7 +122,7 @@ class TRestDetectorReadoutModule { /// Returns the physical readout channel index for a given daq id channel /// number inline Int_t DaqToReadoutChannel(Int_t daqChannel) { - for (int n = 0; n < GetNumberOfChannels(); n++) + for (size_t n = 0; n < GetNumberOfChannels(); n++) if (GetChannel(n)->GetDaqID() == daqChannel) return n; return -1; } @@ -152,22 +131,22 @@ class TRestDetectorReadoutModule { inline Int_t GetModuleID() const { return fModuleID; } /// Returns the module x-coordinate origin - inline Double_t GetModuleOriginX() const { return fModuleOriginX; } + inline Double_t GetModuleOriginX() const { return fModuleOrigin.X(); } /// Returns the module y-coordinate origin - inline Double_t GetModuleOriginY() const { return fModuleOriginY; } + inline Double_t GetModuleOriginY() const { return fModuleOrigin.Y(); } /// Returns the module x-coordinate origin - inline Double_t GetOriginX() const { return fModuleOriginX; } + inline Double_t GetOriginX() const { return fModuleOrigin.X(); } /// Returns the module y-coordinate origin - inline Double_t GetOriginY() const { return fModuleOriginY; } + inline Double_t GetOriginY() const { return fModuleOrigin.Y(); } /// Returns the module size x-coordinate - inline Double_t GetModuleSizeX() const { return fModuleSizeX; } + inline Double_t GetModuleSizeX() const { return fModuleSize.X(); } /// Returns the module size y-coordinate - inline Double_t GetModuleSizeY() const { return fModuleSizeY; } + inline Double_t GetModuleSizeY() const { return fModuleSize.Y(); } /// Returns the module rotation in degrees inline Double_t GetModuleRotation() const { return fModuleRotation; } @@ -191,13 +170,13 @@ class TRestDetectorReadoutModule { inline TRestDetectorReadoutChannel& operator[](int n) { return fReadoutChannel[n]; } /// Returns a pointer to a readout channel by index - inline TRestDetectorReadoutChannel* GetChannel(int n) { + inline TRestDetectorReadoutChannel* GetChannel(size_t n) { if (n >= GetNumberOfChannels()) return nullptr; return &fReadoutChannel[n]; } /// Returns the total number of channels defined inside the module - inline Int_t GetNumberOfChannels() const { return fReadoutChannel.size(); } + inline size_t GetNumberOfChannels() const { return fReadoutChannel.size(); } /// Enables warning output inline void EnableWarnings() { showWarnings = true; } @@ -218,11 +197,10 @@ class TRestDetectorReadoutModule { Bool_t isInsideChannel(Int_t channel, Double_t x, Double_t y); Bool_t isInsideChannel(Int_t channel, const TVector2& position); - Bool_t isInsidePixel(Int_t channel, Int_t pixel, Double_t x, Double_t y); Bool_t isInsidePixel(Int_t channel, Int_t pixel, const TVector2& position); Bool_t isDaqIDInside(Int_t daqID); - Int_t FindChannel(Double_t x, Double_t y); + Int_t FindChannel(const TVector2& position); TVector2 GetDistanceToModule(const TVector2& position); TVector2 GetPixelOrigin(Int_t channel, Int_t pixel); diff --git a/inc/TRestDetectorReadoutPixel.h b/inc/TRestDetectorReadoutPixel.h index b2687382..9bcbca5c 100644 --- a/inc/TRestDetectorReadoutPixel.h +++ b/inc/TRestDetectorReadoutPixel.h @@ -114,9 +114,9 @@ class TRestDetectorReadoutPixel { Bool_t isInside(TVector2 pos); Bool_t isInside(Double_t x, Double_t y); - TVector2 TransformToPixelCoordinates(TVector2 p); + TVector2 TransformToPixelCoordinates(const TVector2& pixel) const; - void Print(); + void Print() const; // Constructor TRestDetectorReadoutPixel(); diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index cf0ba429..02fc7c6f 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -141,7 +141,7 @@ class TRestDetectorReadoutPlane { Int_t isZInsideDriftVolume(Double_t z); - Int_t isZInsideDriftVolume(TVector3 position); + Int_t isZInsideDriftVolume(const TVector3& position); Bool_t isDaqIDInside(Int_t daqId); @@ -155,7 +155,7 @@ class TRestDetectorReadoutPlane { void Print(Int_t DetailLevel = 0); - Int_t FindChannel(Int_t module, Double_t absX, Double_t absY); + Int_t FindChannel(Int_t module, const TVector2& position); Double_t GetX(Int_t modID, Int_t chID); Double_t GetY(Int_t modID, Int_t chID); diff --git a/src/TRestDetectorDaqChannelSwitchingProcess.cxx b/src/TRestDetectorDaqChannelSwitchingProcess.cxx index 58c2d725..d04799ac 100644 --- a/src/TRestDetectorDaqChannelSwitchingProcess.cxx +++ b/src/TRestDetectorDaqChannelSwitchingProcess.cxx @@ -46,14 +46,14 @@ void TRestDetectorDaqChannelSwitchingProcess::InitProcess() { if (mod == nullptr) continue; // finding out the old "firstdaqchannel" value int mindaq = 1e9; - for (int i = 0; i < mod->GetNumberOfChannels(); i++) { + for (size_t i = 0; i < mod->GetNumberOfChannels(); i++) { if (mod->GetChannel(i)->GetDaqID() < mindaq) { mindaq = mod->GetChannel(i)->GetDaqID(); } } // re-setting the value - for (int i = 0; i < mod->GetNumberOfChannels(); i++) { + for (size_t i = 0; i < mod->GetNumberOfChannels(); i++) { mod->GetChannel(i)->SetDaqID(mod->GetChannel(i)->GetDaqID() - mindaq + iter->second); } @@ -67,7 +67,7 @@ void TRestDetectorDaqChannelSwitchingProcess::InitProcess() { for (size_t j = 0; j < plane.GetNumberOfModules(); j++) { TRestDetectorReadoutModule& mod = plane[j]; if (fFirstDaqChannelDef.count(mod.GetModuleID()) == 0) { - for (int i = 0; i < mod.GetNumberOfChannels(); i++) { + for (size_t i = 0; i < mod.GetNumberOfChannels(); i++) { mod.GetChannel(i)->SetDaqID(-1e9); } } diff --git a/src/TRestDetectorGainMap.cxx b/src/TRestDetectorGainMap.cxx index e58ba652..8c10316f 100644 --- a/src/TRestDetectorGainMap.cxx +++ b/src/TRestDetectorGainMap.cxx @@ -53,7 +53,7 @@ void TRestDetectorGainMap::DrawChannelGainMap(TRestDetectorReadoutModule* mod) { gr->SetPoint(i, x, y, 1); } - for (int i = 0; i < mod->GetNumberOfChannels(); i++) { + for (size_t i = 0; i < mod->GetNumberOfChannels(); i++) { TRestDetectorReadoutChannel* channel = mod->GetChannel(i); int id = channel->GetDaqID(); if (fChannelGain.count(id) == 0) fChannelGain[id] = 1; diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index 44f79c2e..0cd39121 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -146,7 +146,7 @@ /// and the daq channel number defined at the acquisition system. /// If *no decoding* file is defined the relation between daq and readout /// channel is assigned *one to one*. -/// The decoding file must be a text file definning two columns with as +/// The decoding file must be a text file defining two columns with as /// many columns as the number of channels defined in the readout module. /// The first column is the daq channel number, and the second column is /// the readout channel defined in the RML file. @@ -559,7 +559,7 @@ void TRestDetectorReadout::InitFromConfigFile() { exit(1); } - for (int ch = 0; ch < fModuleDefinitions[mid].GetNumberOfChannels(); ch++) { + for (size_t ch = 0; ch < fModuleDefinitions[mid].GetNumberOfChannels(); ch++) { if (!fDecoding) { Int_t id = ch; rChannel.push_back(id); @@ -700,7 +700,7 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle } } - if (module.GetNumberOfChannels() != (int)channelVector.size()) { + if (module.GetNumberOfChannels() != channelVector.size()) { RESTError << "TRestDetectorReadout::ParseModuleDefinition. Channel id definition may be wrong!" << "check your readout module definition!" << RESTendl; RESTError << " " << RESTendl; @@ -748,15 +748,15 @@ void TRestDetectorReadout::GetPlaneModuleChannel(Int_t signalID, Int_t& planeID, } } -Int_t TRestDetectorReadout::GetHitsDaqChannel(const TVector3& hitpos, Int_t& planeID, Int_t& moduleID, +Int_t TRestDetectorReadout::GetHitsDaqChannel(const TVector3& position, Int_t& planeID, Int_t& moduleID, Int_t& channelID) { for (int p = 0; p < GetNumberOfReadoutPlanes(); p++) { TRestDetectorReadoutPlane* plane = &fReadoutPlanes[p]; - int m = plane->GetModuleIDFromPosition(hitpos.X(), hitpos.Y(), hitpos.Z()); + int m = plane->GetModuleIDFromPosition(position.X(), position.Y(), position.Z()); if (m >= 0) { // TRestDetectorReadoutModule* mod = plane->GetModuleByID(m); TRestDetectorReadoutModule* mod = plane->GetModuleByID(m); - Int_t readoutChannel = mod->FindChannel(hitpos.X(), hitpos.Y()); + Int_t readoutChannel = mod->FindChannel({position.X(), position.Y()}); if (readoutChannel >= 0) { planeID = plane->GetID(); moduleID = mod->GetModuleID(); @@ -793,7 +793,7 @@ Int_t TRestDetectorReadout::GetHitsDaqChannelAtReadoutPlane(const TVector3& hitp int m = plane->GetModuleIDFromPosition(hitpos.X(), hitpos.Y(), hitpos.Z()); if (m >= 0) { TRestDetectorReadoutModule* mod = plane->GetModuleByID(m); - Int_t readoutChannel = mod->FindChannel(hitpos.X(), hitpos.Y()); + Int_t readoutChannel = mod->FindChannel({hitpos.X(), hitpos.Y()}); if (readoutChannel >= 0) { moduleID = mod->GetModuleID(); channelID = readoutChannel; diff --git a/src/TRestDetectorReadoutModule.cxx b/src/TRestDetectorReadoutModule.cxx index f5fa51c8..8447868e 100644 --- a/src/TRestDetectorReadoutModule.cxx +++ b/src/TRestDetectorReadoutModule.cxx @@ -68,11 +68,8 @@ void TRestDetectorReadoutModule::Initialize() { fReadoutChannel.clear(); fModuleID = -1; - fModuleOriginX = 0; - fModuleOriginY = 0; - - fModuleSizeX = 0; - fModuleSizeY = 0; + fModuleOrigin = {0, 0}; + fModuleSize = {0, 0}; fModuleRotation = 0; @@ -90,7 +87,7 @@ void TRestDetectorReadoutModule::Initialize() { void TRestDetectorReadoutModule::SetMinMaxDaqIDs() { Int_t maxID = GetChannel(0)->GetDaqID(); Int_t minID = GetChannel(0)->GetDaqID(); - for (int ch = 0; ch < this->GetNumberOfChannels(); ch++) { + for (size_t ch = 0; ch < this->GetNumberOfChannels(); ch++) { Int_t daqID = GetChannel(ch)->GetDaqID(); if (daqID > maxID) maxID = daqID; @@ -113,7 +110,7 @@ void TRestDetectorReadoutModule::DoReadoutMapping(Int_t nodes) { // assymmetric // ///////////////////////////////////////////////////////////////////////////// Int_t totalNumberOfPixels = 0; - for (int ch = 0; ch < this->GetNumberOfChannels(); ch++) + for (size_t ch = 0; ch < this->GetNumberOfChannels(); ch++) totalNumberOfPixels += GetChannel(ch)->GetNumberOfPixels(); if (nodes == 0) { @@ -132,7 +129,7 @@ void TRestDetectorReadoutModule::DoReadoutMapping(Int_t nodes) { fMapping.Initialize(nodes, nodes, GetModuleSizeX(), GetModuleSizeY()); - for (int ch = 0; ch < this->GetNumberOfChannels(); ch++) { + for (size_t ch = 0; ch < this->GetNumberOfChannels(); ch++) { for (int px = 0; px < this->GetChannel(ch)->GetNumberOfPixels(); px++) { Double_t xPix = this->GetChannel(ch)->GetPixel(px)->GetCenter().X(); Double_t yPix = this->GetChannel(ch)->GetPixel(px)->GetCenter().Y(); @@ -172,14 +169,13 @@ void TRestDetectorReadoutModule::DoReadoutMapping(Int_t nodes) { for (int j = 0; j < nodes; j++) { Double_t x = fMapping.GetX(i); Double_t y = fMapping.GetY(j); - Double_t xAbs = TransformToPhysicalCoordinates(x, y).X(); - Double_t yAbs = TransformToPhysicalCoordinates(x, y).Y(); + const auto transformedCoordinates = TransformToPhysicalCoordinates(x, y); if (!fMapping.isNodeSet(i, j)) { - for (int ch = 0; ch < GetNumberOfChannels() && !fMapping.isNodeSet(i, j); ch++) { + for (size_t ch = 0; ch < GetNumberOfChannels() && !fMapping.isNodeSet(i, j); ch++) { for (int px = 0; px < GetChannel(ch)->GetNumberOfPixels() && !fMapping.isNodeSet(i, j); px++) { - if (isInsidePixel(ch, px, xAbs, yAbs)) { + if (isInsidePixel(ch, px, transformedCoordinates)) { fMapping.SetNode(i, j, ch, px); } } @@ -198,14 +194,15 @@ void TRestDetectorReadoutModule::DoReadoutMapping(Int_t nodes) { if (!fMapping.isNodeSet(i, j)) { Double_t x = fMapping.GetX(i); Double_t y = fMapping.GetY(j); - Double_t xAbs = TransformToPhysicalCoordinates(x, y).X(); - Double_t yAbs = TransformToPhysicalCoordinates(x, y).Y(); + const auto transformedCoordinates = TransformToPhysicalCoordinates(x, y); + cout << "Node NOT SET : " << i << " , " << j << " Mapping x : " << x << " y : " << y << endl; - for (int ch = 0; ch < GetNumberOfChannels(); ch++) { + for (size_t ch = 0; ch < GetNumberOfChannels(); ch++) { for (int px = 0; px < GetChannel(ch)->GetNumberOfPixels(); px++) { - if (isInsidePixel(ch, px, xAbs, yAbs)) { - cout << "X : " << xAbs << " , " << yAbs << " Is inside channel : " << ch + if (isInsidePixel(ch, px, transformedCoordinates)) { + cout << "X : " << transformedCoordinates.X() << " , " + << transformedCoordinates.Y() << " Is inside channel : " << ch << " pixel : " << px << endl; } } @@ -231,11 +228,12 @@ Bool_t TRestDetectorReadoutModule::isDaqIDInside(Int_t daqID) { /// The readout mapping (see TRestDetectorReadoutMapping) is used to help finding /// the pixel where coordinates absX and absY fall in. /// -Int_t TRestDetectorReadoutModule::FindChannel(Double_t absX, Double_t absY) { - if (!isInside(absX, absY)) return -1; +Int_t TRestDetectorReadoutModule::FindChannel(const TVector2& position) { + if (!isInside(position)) return -1; - Double_t x = TransformToModuleCoordinates(absX, absY).X(); - Double_t y = TransformToModuleCoordinates(absX, absY).Y(); + const auto transformedCoordinates = TransformToModuleCoordinates(position); + const auto& x = transformedCoordinates.X(); + const auto& y = transformedCoordinates.Y(); Int_t nodeX = fMapping.GetNodeX(x); Int_t nodeY = fMapping.GetNodeY(y); @@ -252,7 +250,7 @@ Int_t TRestDetectorReadoutModule::FindChannel(Double_t absX, Double_t absY) { // We test if x,y is inside the channel/pixel obtained from the readout // mapping If not we start to look in the readout mapping neighbours - while (!this->isInsidePixel(channel, pixel, absX, absY)) { + while (!this->isInsidePixel(channel, pixel, position)) { count++; if (xAxis == 1 && forward == 1) nodeX++; @@ -297,9 +295,9 @@ Int_t TRestDetectorReadoutModule::FindChannel(Double_t absX, Double_t absY) { RESTWarning << "TRestDetectorReadoutModule. I did not find any channel for hit position (" << x << "," << y << ") in internal module coordinates" << RESTendl; - for (int ch = 0; ch < GetNumberOfChannels(); ch++) + for (size_t ch = 0; ch < GetNumberOfChannels(); ch++) for (int px = 0; px < GetChannel(ch)->GetNumberOfPixels(); px++) - if (isInsidePixel(ch, px, absX, absX)) { + if (isInsidePixel(ch, px, position)) { cout << "( " << x << " , " << y << ") Should be in channel " << ch << " pixel : " << px << endl; @@ -310,7 +308,6 @@ Int_t TRestDetectorReadoutModule::FindChannel(Double_t absX, Double_t absY) { << " Pix Y : " << GetChannel(ch)->GetPixel(px)->GetCenter().Y() << endl; } sleep(5); - // getchar(); return -1; } } @@ -323,10 +320,11 @@ Int_t TRestDetectorReadoutModule::FindChannel(Double_t absX, Double_t absY) { /// plane are inside this readout module. /// Bool_t TRestDetectorReadoutModule::isInside(const TVector2& position) { - TVector2 rotPos = TransformToModuleCoordinates(position); + TVector2 positionRotated = TransformToModuleCoordinates(position); - if (rotPos.X() >= 0 && rotPos.X() < fModuleSizeX) - if (rotPos.Y() >= 0 && rotPos.Y() < fModuleSizeY) return true; + if (positionRotated.X() >= 0 && positionRotated.X() <= fModuleSize.X() && positionRotated.Y() >= 0 && + positionRotated.Y() <= fModuleSize.Y()) + return true; return false; } @@ -350,17 +348,6 @@ Bool_t TRestDetectorReadoutModule::isInsideChannel(Int_t channel, const TVector2 return false; } -/////////////////////////////////////////////// -/// \brief Determines if the position *x,y* is found at a specific *pixel* id -/// inside the readout *channel* given. -/// -Bool_t TRestDetectorReadoutModule::isInsidePixel(Int_t channel, Int_t pixel, Double_t x, Double_t y) { - if (channel < 0 || pixel < 0) { - return false; - } - return isInsidePixel(channel, pixel, {x, y}); -} - /////////////////////////////////////////////// /// \brief Determines if the position TVector2 *pos* is found at a specific /// *pixel* id inside the readout *channel* given. @@ -385,13 +372,13 @@ TVector2 TRestDetectorReadoutModule::GetDistanceToModule(const TVector2& positio Double_t dx = 0, dy = 0; if (newPos.X() < 0) dx = -newPos.X(); - else if (fModuleSizeX - newPos.X() < 0) - dx = fModuleSizeX - newPos.X(); + else if (fModuleSize.X() - newPos.X() < 0) + dx = fModuleSize.X() - newPos.X(); if (newPos.Y() < 0) dy = -newPos.Y(); - else if (fModuleSizeY - newPos.Y() < 0) - dy = fModuleSizeY - newPos.Y(); + else if (fModuleSize.Y() - newPos.Y() < 0) + dy = fModuleSize.Y() - newPos.Y(); TVector2 dist = TVector2(dx, dy); return dist; @@ -408,14 +395,14 @@ TVector2 TRestDetectorReadoutModule::GetPixelOrigin(Int_t channel, Int_t pixel) /// \brief Returns any of the pixel vertex position for a given *channel* and /// *pixel* indexes. /// -/// \param vertex A value between 0-3 definning the vertex position to be +/// \param vertex A value between 0-3 defining the vertex position to be /// returned /// TVector2 TRestDetectorReadoutModule::GetPixelVertex(Int_t channel, Int_t pixel, Int_t vertex) { TVector2 pixPosition = GetChannel(channel)->GetPixel(pixel)->GetVertex(vertex); pixPosition = pixPosition.Rotate(fModuleRotation * TMath::Pi() / 180.); - pixPosition = pixPosition + TVector2(fModuleOriginX, fModuleOriginY); + pixPosition = pixPosition + fModuleOrigin; return pixPosition; } @@ -423,14 +410,14 @@ TVector2 TRestDetectorReadoutModule::GetPixelVertex(Int_t channel, Int_t pixel, /// \brief Returns the center pixel position for a given *channel* and /// *pixel* indexes. /// -/// \param vertex A value between 0-3 definning the vertex position to be +/// \param vertex A value between 0-3 defining the vertex position to be /// returned /// TVector2 TRestDetectorReadoutModule::GetPixelCenter(Int_t channel, Int_t pixel) { TVector2 pixCenter = GetChannel(channel)->GetPixel(pixel)->GetCenter(); pixCenter = pixCenter.Rotate(fModuleRotation * TMath::Pi() / 180.); - pixCenter = pixCenter + TVector2(fModuleOriginX, fModuleOriginY); + pixCenter = pixCenter + fModuleOrigin; return pixCenter; } @@ -454,7 +441,7 @@ TVector2 TRestDetectorReadoutModule::GetPixelOrigin(TRestDetectorReadoutPixel* p TVector2 TRestDetectorReadoutModule::GetPixelVertex(TRestDetectorReadoutPixel* pix, Int_t vertex) { TVector2 pixPosition = pix->GetVertex(vertex); pixPosition = pixPosition.Rotate(fModuleRotation * TMath::Pi() / 180.); - pixPosition = pixPosition + TVector2(fModuleOriginX, fModuleOriginY); + pixPosition = pixPosition + fModuleOrigin; return pixPosition; } @@ -474,26 +461,26 @@ Bool_t TRestDetectorReadoutModule::GetPixelTriangle(TRestDetectorReadoutPixel* p /// physical coordinates relative to the readout plane are returned, including /// rotation. /// -/// \param n A value between 0-3 definning the vertex position to be returned +/// \param n A value between 0-3 defining the vertex position to be returned /// TVector2 TRestDetectorReadoutModule::GetVertex(int n) const { TVector2 vertex(0, 0); - TVector2 origin(fModuleOriginX, fModuleOriginY); + const TVector2& origin = fModuleOrigin; if (n % 4 == 0) return origin; else if (n % 4 == 1) { - vertex.Set(fModuleSizeX, 0); + vertex.Set(fModuleSize.X(), 0); vertex = vertex.Rotate(fModuleRotation * TMath::Pi() / 180.); vertex = vertex + origin; } else if (n % 4 == 2) { - vertex.Set(fModuleSizeX, fModuleSizeY); + vertex.Set(fModuleSize.X(), fModuleSize.Y()); vertex = vertex.Rotate(fModuleRotation * TMath::Pi() / 180.); vertex = vertex + origin; } else if (n % 4 == 3) { - vertex.Set(0, fModuleSizeY); + vertex.Set(0, fModuleSize.Y()); vertex = vertex.Rotate(fModuleRotation * TMath::Pi() / 180.); vertex = vertex + origin; @@ -513,14 +500,14 @@ void TRestDetectorReadoutModule::AddChannel(TRestDetectorReadoutChannel& rChanne Double_t sX = rChannel.GetPixel(i)->GetVertex(1).X(); Double_t sY = rChannel.GetPixel(i)->GetVertex(1).Y(); - if (oX + fTolerance < 0 || oY + fTolerance < 0 || sX - fTolerance > fModuleSizeX || - sY - fTolerance > fModuleSizeY) { + if (oX + fTolerance < 0 || oY + fTolerance < 0 || sX - fTolerance > fModuleSize.X() || + sY - fTolerance > fModuleSize.Y()) { if (showWarnings) { cout << "REST Warning (AddChannel) pixel outside the module boundaries" << endl; cout << "Channel: " << fReadoutChannel.size() << ", Pixel : " << i << endl; cout << "Pixel origin = (" << oX << " , " << oY << ")" << endl; cout << "Pixel size = (" << sX << " , " << sY << ")" << endl; - cout << "Module size = (" << fModuleSizeX << " , " << fModuleSizeY << ")" << endl; + cout << "Module size = (" << fModuleSize.X() << " , " << fModuleSize.Y() << ")" << endl; } } } @@ -540,14 +527,16 @@ void TRestDetectorReadoutModule::Print(Int_t DetailLevel) { if (DetailLevel >= 0) { RESTMetadata << "-- Readout module : " << GetModuleID() << RESTendl; RESTMetadata << "----------------------------------------------------------------" << RESTendl; - RESTMetadata << "-- Origin position : X = " << fModuleOriginX << " mm " - << " Y : " << fModuleOriginY << " mm" << RESTendl; - RESTMetadata << "-- Size : X = " << fModuleSizeX << " Y : " << fModuleSizeY << RESTendl; + RESTMetadata << "-- Origin position : X = " << fModuleOrigin.X() << " mm " + << " Y : " << fModuleOrigin.Y() << " mm" << RESTendl; + RESTMetadata << "-- Size : X = " << fModuleSize.X() << " Y : " << fModuleSize.Y() << RESTendl; RESTMetadata << "-- Rotation : " << fModuleRotation << " degrees" << RESTendl; RESTMetadata << "-- Total channels : " << GetNumberOfChannels() << RESTendl; RESTMetadata << "-- Tolerance : " << fTolerance << RESTendl; RESTMetadata << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << RESTendl; - for (int n = 0; n < GetNumberOfChannels(); n++) fReadoutChannel[n].Print(DetailLevel - 1); + for (size_t n = 0; n < GetNumberOfChannels(); n++) { + fReadoutChannel[n].Print(DetailLevel - 1); + } } } diff --git a/src/TRestDetectorReadoutPixel.cxx b/src/TRestDetectorReadoutPixel.cxx index 8df54473..9cc71a3e 100644 --- a/src/TRestDetectorReadoutPixel.cxx +++ b/src/TRestDetectorReadoutPixel.cxx @@ -43,6 +43,8 @@ #include "TRestDetectorReadoutPixel.h" +#include + using namespace std; ClassImp(TRestDetectorReadoutPixel); @@ -67,21 +69,20 @@ void TRestDetectorReadoutPixel::Initialize() {} TVector2 TRestDetectorReadoutPixel::GetCenter() const { TVector2 center(0, 0); TVector2 origin(fPixelOriginX, fPixelOriginY); - TVector2 opositeVertex = GetVertex(2); + TVector2 oppositeVertex = GetVertex(2); if (fTriangle) - center = (opositeVertex - origin) / 4. + origin; + center = (oppositeVertex - origin) / 4. + origin; else - center = (origin + opositeVertex) / 2.; + center = (origin + oppositeVertex) / 2.; return center; - //*/ } /////////////////////////////////////////////// /// \brief Returns the specified pixel vertex position /// -/// \param n A value between 0-3 definning the vertex position to be returned. +/// \param n A value between 0-3 defining the vertex position to be returned. /// TVector2 TRestDetectorReadoutPixel::GetVertex(int n) const { TVector2 vertex(0, 0); @@ -143,8 +144,8 @@ Bool_t TRestDetectorReadoutPixel::isInside(TVector2 pos) { /// pixel coordinate system. The coordinates are referenced to the readout /// module system. /// -TVector2 TRestDetectorReadoutPixel::TransformToPixelCoordinates(TVector2 p) { - TVector2 pos(p.X() - fPixelOriginX, p.Y() - fPixelOriginY); +TVector2 TRestDetectorReadoutPixel::TransformToPixelCoordinates(const TVector2& pixel) const { + TVector2 pos(pixel.X() - fPixelOriginX, pixel.Y() - fPixelOriginY); pos = pos.Rotate(-fRotation * TMath::Pi() / 180.); return pos; } @@ -152,7 +153,7 @@ TVector2 TRestDetectorReadoutPixel::TransformToPixelCoordinates(TVector2 p) { /////////////////////////////////////////////// /// \brief Prints on screen the pixel details, origin, size, rotation /// -void TRestDetectorReadoutPixel::Print() { +void TRestDetectorReadoutPixel::Print() const { std::cout << " ## Pixel position : (" << GetOriginX() << "," << GetOriginY() << ") mm size : (" << GetSizeX() << "," << GetSizeY() << ") mm" << std::endl; std::cout << " rotation : " << fRotation << " degrees" diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 94d18b04..07526364 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -242,16 +242,15 @@ Double_t TRestDetectorReadoutPlane::GetY(Int_t modID, Int_t chID) { /// \param absX It is the x absolut physical position /// \param absY It is the y absolut physical position /// \return The corresponding channel id -Int_t TRestDetectorReadoutPlane::FindChannel(Int_t module, Double_t absX, Double_t absY) { - Double_t modX = absX - fPosition.X(); - Double_t modY = absY - fPosition.Y(); +Int_t TRestDetectorReadoutPlane::FindChannel(Int_t module, const TVector2& position) { + const auto relativePosition = position - TVector2{fPosition.X(), fPosition.Y()}; // TODO : check first if (modX,modY) is inside the module. // If not return error. // FindChannel will take a long time to search for the channel if it is not // there. It will be faster - return fReadoutModules[module].FindChannel(modX, modY); + return fReadoutModules[module].FindChannel(relativePosition); } /////////////////////////////////////////////// @@ -301,13 +300,13 @@ Bool_t TRestDetectorReadoutPlane::isDaqIDInside(Int_t daqId) { /// \brief This method determines if the z-coordinate is inside the drift volume /// for this readout plane. /// -/// \param pos A TVector3 definning the position. +/// \param position A TVector3 defining the position. /// /// \return 1 if the Z-position is found inside the drift volume definition. 0 /// otherwise /// -Int_t TRestDetectorReadoutPlane::isZInsideDriftVolume(TVector3 pos) { - TVector3 posNew = TVector3(pos.X() - fPosition.X(), pos.Y() - fPosition.Y(), pos.Z()); +Int_t TRestDetectorReadoutPlane::isZInsideDriftVolume(const TVector3& position) { + TVector3 posNew = TVector3(position.X() - fPosition.X(), position.Y() - fPosition.Y(), position.Z()); Double_t distance = GetDistanceTo(posNew); @@ -322,7 +321,7 @@ Int_t TRestDetectorReadoutPlane::isZInsideDriftVolume(TVector3 pos) { /// the readout plane. The *x* and *y* values must be found inside one of the /// readout modules defined inside the readout plane. /// -/// \param x,y,z Three Double_t definning the position. +/// \param x,y,z Three Double_t defining the position. /// /// \return the module *id* where the hit is found. If no module *id* is found /// it returns -1. @@ -338,7 +337,7 @@ Int_t TRestDetectorReadoutPlane::GetModuleIDFromPosition(Double_t x, Double_t y, /// the cathode and the readout plane. The *x* and *y* values must be found /// inside one of the readout modules defined inside the readout plane. /// -/// \param pos A TVector3 definning the position. +/// \param pos A TVector3 defining the position. /// /// \return the module *id* where the hit is found. If no module *id* is found /// it returns -1. diff --git a/src/TRestDetectorSingleChannelAnalysisProcess.cxx b/src/TRestDetectorSingleChannelAnalysisProcess.cxx index 7c01904b..4dc341a5 100644 --- a/src/TRestDetectorSingleChannelAnalysisProcess.cxx +++ b/src/TRestDetectorSingleChannelAnalysisProcess.cxx @@ -50,7 +50,7 @@ void TRestDetectorSingleChannelAnalysisProcess::InitProcess() { auto plane = fReadout->GetReadoutPlane(i); for (size_t j = 0; j < plane->GetNumberOfModules(); j++) { auto mod = plane->GetModule(j); - for (int k = 0; k < mod->GetNumberOfChannels(); k++) { + for (size_t k = 0; k < mod->GetNumberOfChannels(); k++) { auto channel = mod->GetChannel(k); fChannelGain[channel->GetDaqID()] = 1; // default correction factor is 1 fChannelGainError[channel->GetDaqID()] = 1; // relative error From d2137a0df6c80772666c36c490371dddd5704148 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Thu, 1 Jun 2023 16:15:15 +0200 Subject: [PATCH 11/19] REST_Detector_CheckReadout.C. Fixing macro to new FindChannels prototype --- macros/REST_Detector_CheckReadout.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macros/REST_Detector_CheckReadout.C b/macros/REST_Detector_CheckReadout.C index 3eba6290..ed7f62ec 100644 --- a/macros/REST_Detector_CheckReadout.C +++ b/macros/REST_Detector_CheckReadout.C @@ -205,7 +205,7 @@ TGraph* GetHittedStripMap(TRestDetectorReadoutPlane* p, Int_t mask[4], Double_t xR = rnd->Uniform(xMin, xMax); yR = rnd->Uniform(yMin, yMax); for (int mod = 0; mod < p->GetNumberOfModules(); mod++) { - Int_t chFound = p->FindChannel(mod, xR, yR); + Int_t chFound = p->FindChannel(mod, TVector2(xR, yR)); if (chFound != -1 && std::find(channelIds.begin(), channelIds.end(), chFound) != channelIds.end()) { From 87a7464e3e75e614f05cbeaa184777f347e3f488 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Fri, 2 Jun 2023 08:30:39 +0200 Subject: [PATCH 12/19] TRestDetectorReadoutModule. TransformToPhysicalCoordinates renamed to TransformToPlaneCoordinates. --- inc/TRestDetectorReadoutModule.h | 6 ++---- src/TRestDetectorReadoutModule.cxx | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index 7ed02686..27d56036 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -76,7 +76,7 @@ class TRestDetectorReadoutModule { /// Converts the coordinates (xMod,yMod) in the readout module reference /// system to the readout plane reference system. - inline TVector2 TransformToPhysicalCoordinates(Double_t xMod, Double_t yMod) const { + inline TVector2 TransformToPlaneCoordinates(Double_t xMod, Double_t yMod) const { TVector2 coords(xMod, yMod); coords = coords.Rotate(fModuleRotation * TMath::Pi() / 180.); @@ -157,9 +157,7 @@ class TRestDetectorReadoutModule { /// Converts the coordinates given by TVector2 in the readout module reference /// system to the readout plane reference system. - TVector2 GetPhysicalCoordinates(const TVector2& p) { - return TransformToPhysicalCoordinates(p.X(), p.Y()); - } + TVector2 GetPlaneCoordinates(const TVector2& p) { return TransformToPlaneCoordinates(p.X(), p.Y()); } /// Returns the module name inline const char* GetName() const { return fModuleName.Data(); } diff --git a/src/TRestDetectorReadoutModule.cxx b/src/TRestDetectorReadoutModule.cxx index 8447868e..6e843aff 100644 --- a/src/TRestDetectorReadoutModule.cxx +++ b/src/TRestDetectorReadoutModule.cxx @@ -169,7 +169,7 @@ void TRestDetectorReadoutModule::DoReadoutMapping(Int_t nodes) { for (int j = 0; j < nodes; j++) { Double_t x = fMapping.GetX(i); Double_t y = fMapping.GetY(j); - const auto transformedCoordinates = TransformToPhysicalCoordinates(x, y); + const auto transformedCoordinates = TransformToPlaneCoordinates(x, y); if (!fMapping.isNodeSet(i, j)) { for (size_t ch = 0; ch < GetNumberOfChannels() && !fMapping.isNodeSet(i, j); ch++) { @@ -194,7 +194,7 @@ void TRestDetectorReadoutModule::DoReadoutMapping(Int_t nodes) { if (!fMapping.isNodeSet(i, j)) { Double_t x = fMapping.GetX(i); Double_t y = fMapping.GetY(j); - const auto transformedCoordinates = TransformToPhysicalCoordinates(x, y); + const auto transformedCoordinates = TransformToPlaneCoordinates(x, y); cout << "Node NOT SET : " << i << " , " << j << " Mapping x : " << x << " y : " << y << endl; From 7a0aeffc407853a448974dc31e63d17eea7c23b7 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Fri, 2 Jun 2023 08:47:56 +0200 Subject: [PATCH 13/19] TRestDetectorSignalToHitsProcess. Replacing GetPhysicalCoordinates by GetPlaneCoordinates --- src/TRestDetectorSignalToHitsProcess.cxx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/TRestDetectorSignalToHitsProcess.cxx b/src/TRestDetectorSignalToHitsProcess.cxx index 6e229cf3..261ce233 100644 --- a/src/TRestDetectorSignalToHitsProcess.cxx +++ b/src/TRestDetectorSignalToHitsProcess.cxx @@ -267,12 +267,10 @@ TRestEvent* TRestDetectorSignalToHitsProcess::ProcessEvent(TRestEvent* inputEven REST_HitType type = XYZ; TRestDetectorReadoutModule* mod = plane->GetModuleByID(readoutModule); if (TMath::IsNaN(x)) { - x = mod->GetPhysicalCoordinates(TVector2(mod->GetModuleSizeX() / 2, mod->GetModuleSizeY() / 2)) - .X(); + x = mod->GetPlaneCoordinates(TVector2(mod->GetModuleSizeX() / 2, mod->GetModuleSizeY() / 2)).X(); type = YZ; } else if (TMath::IsNaN(y)) { - y = mod->GetPhysicalCoordinates(TVector2(mod->GetModuleSizeX() / 2, mod->GetModuleSizeY() / 2)) - .Y(); + y = mod->GetPlaneCoordinates(TVector2(mod->GetModuleSizeX() / 2, mod->GetModuleSizeY() / 2)).Y(); type = XZ; } From a112c5eec372138fcffe687b7b7f89056a5f3d45 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Fri, 2 Jun 2023 09:05:23 +0200 Subject: [PATCH 14/19] TRestDetectorReadout.cxx. Removed using namespace std --- src/TRestDetectorReadout.cxx | 97 ++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index 0cd39121..351709d8 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -266,8 +266,6 @@ #include "TRestDetectorReadout.h" -using namespace std; - bool RESTREADOUT_DECODINGFILE_ERROR = false; ClassImp(TRestDetectorReadout); @@ -291,7 +289,7 @@ TRestDetectorReadout::TRestDetectorReadout() { Initialize(); } /// \param configFilename A const char* giving the path to an RML file. /// TRestDetectorReadout::TRestDetectorReadout(const char* configFilename) : TRestMetadata(configFilename) { - cout << "Loading readout. This might take few seconds" << endl; + std::cout << "Loading readout. This might take few seconds" << std::endl; Initialize(); LoadConfigFromFile(fConfigFileName); @@ -310,9 +308,9 @@ TRestDetectorReadout::TRestDetectorReadout(const char* configFilename) : TRestMe /// \param configFilename A const char* giving the path to an RML file. /// \param name The name of the TRestDetectorReadout section to be loaded /// -TRestDetectorReadout::TRestDetectorReadout(const char* configFilename, string name) +TRestDetectorReadout::TRestDetectorReadout(const char* configFilename, std::string name) : TRestMetadata(configFilename) { - cout << "Loading readout. This might take few seconds" << endl; + std::cout << "Loading readout. This might take few seconds" << std::endl; Initialize(); LoadConfigFromFile(fConfigFileName, name); @@ -449,9 +447,9 @@ void TRestDetectorReadout::InitFromConfigFile() { TiXmlElement* moduleDefinition = GetElement("readoutModule"); while (moduleDefinition != nullptr) { if (GetVerboseLevel() >= TRestStringOutput::REST_Verbose_Level::REST_Debug) { - cout << "------module-----------------" << endl; - cout << moduleDefinition << endl; - cout << "-----------------------------" << endl; + std::cout << "------module-----------------" << std::endl; + std::cout << moduleDefinition << std::endl; + std::cout << "-----------------------------" << std::endl; GetChar(); } @@ -463,7 +461,7 @@ void TRestDetectorReadout::InitFromConfigFile() { #pragma endregion TiXmlElement* planeDefinition = GetElement("readoutPlane"); - vector moduleVector; + std::vector moduleVector; Int_t addedChannels = 0; while (planeDefinition != nullptr) { TRestDetectorReadoutPlane plane; @@ -493,6 +491,9 @@ void TRestDetectorReadout::InitFromConfigFile() { } fModuleDefinitions[mid].SetModuleID(StringToInteger(GetFieldValue("id", moduleDefinition))); + std::cout << "Origin: " << GetFieldValue("origin", moduleDefinition) << std::endl; + TVector2 v = StringTo2DVector(GetFieldValue("origin", moduleDefinition)); + v.Print(); fModuleDefinitions[mid].SetOrigin(StringTo2DVector(GetFieldValue("origin", moduleDefinition))); fModuleDefinitions[mid].SetRotation(StringToDouble(GetFieldValue("rotation", moduleDefinition))); @@ -501,7 +502,7 @@ void TRestDetectorReadout::InitFromConfigFile() { Int_t firstDaqChannel = StringToInteger(GetFieldValue("firstDaqChannel", moduleDefinition)); if (firstDaqChannel == -1) firstDaqChannel = addedChannels; - string decodingFile = GetFieldValue("decodingFile", moduleDefinition); + std::string decodingFile = GetFieldValue("decodingFile", moduleDefinition); if (decodingFile == "Not defined" || decodingFile == "" || RESTREADOUT_DECODINGFILE_ERROR) fDecoding = false; else @@ -522,8 +523,8 @@ void TRestDetectorReadout::InitFromConfigFile() { RESTREADOUT_DECODINGFILE_ERROR = true; } - vector rChannel; - vector dChannel; + std::vector rChannel; + std::vector dChannel; if (fDecoding && TRestTools::fileExists(decodingFile.c_str())) { FILE* f = fopen(decodingFile.c_str(), "r"); @@ -546,9 +547,9 @@ void TRestDetectorReadout::InitFromConfigFile() { } if (GetVerboseLevel() >= TRestStringOutput::REST_Verbose_Level::REST_Debug) { - cout << "------module-----------------" << endl; - cout << moduleDefinition << endl; - cout << "-----------------------------" << endl; + std::cout << "------module-----------------" << std::endl; + std::cout << moduleDefinition << std::endl; + std::cout << "-----------------------------" << std::endl; getchar(); } @@ -618,8 +619,8 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle if (pixelTolerance == -1) pixelTolerance = 1.e-6; #pragma region addChannel - vector channelVector; - vector channelIDVector; + std::vector channelVector; + std::vector channelIDVector; TiXmlElement* channelDefinition = GetElement("readoutChannel", moduleDefinition); while (channelDefinition != nullptr) { TRestDetectorReadoutChannel channel; @@ -629,8 +630,8 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle channel.SetDaqID(-1); #pragma region addPixel - vector pixelVector; - vector pixelIDVector; + std::vector pixelVector; + std::vector pixelIDVector; TiXmlElement* pixelDefinition = GetElement("addPixel", channelDefinition); while (pixelDefinition != nullptr) { TRestDetectorReadoutPixel pixel; @@ -656,7 +657,7 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle exit(0); } - // Creating the vector fReadoutPixel in the channel with pixels added in the + // Creating the std::vector fReadoutPixel in the channel with pixels added in the // order of their ID. for (Int_t i(0); i < (Int_t)pixelVector.size(); i++) { for (Int_t j(0); j < (Int_t)pixelVector.size(); j++) { @@ -684,12 +685,12 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle << "check your readout module definition!" << RESTendl; RESTError << " " << RESTendl; RESTError << "channelIDVector size : " << channelIDVector.size() << RESTendl; - RESTError << "channel vector size : " << channelVector.size() << RESTendl; + RESTError << "channel std::vector size : " << channelVector.size() << RESTendl; exit(0); } - // Creating the vector fReadoutChannel in the module with channels added in + // Creating the std::vector fReadoutChannel in the module with channels added in // the order of their ID. for (Int_t i(0); i < (Int_t)channelVector.size(); i++) { for (Int_t j(0); j < (Int_t)channelVector.size(); j++) { @@ -705,7 +706,7 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle << "check your readout module definition!" << RESTendl; RESTError << " " << RESTendl; RESTError << "Module number of channels : " << module.GetNumberOfChannels() << RESTendl; - RESTError << "channel vector size : " << channelVector.size() << RESTendl; + RESTError << "channel std::vector size : " << channelVector.size() << RESTendl; exit(0); } @@ -719,17 +720,17 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle /// do some checks to help verifying the readout. /// void TRestDetectorReadout::ValidateReadout() { - cout << "--------------------------------------------------" << endl; - cout << "TRestDetectorReadout::ValidateReadout:: NOT IMPLEMENTED" << endl; - cout << "This function should crosscheck that there are no repeated " - "DaqChannels IDs" - << endl; - cout << "If any checks are implemented in the future. Those checks should be " - "an option." - << endl; - cout << "No dead area in the readout module" << endl; - cout << "And other checks" << endl; - cout << "--------------------------------------------------" << endl; + RESTDebug << "--------------------------------------------------" << RESTendl; + RESTDebug << "TRestDetectorReadout::ValidateReadout:: NOT IMPLEMENTED" << RESTendl; + RESTDebug << "This function should crosscheck that there are no repeated " + "DaqChannels IDs" + << RESTendl; + RESTDebug << "If any checks are implemented in the future. Those checks should be " + "an option." + << RESTendl; + RESTDebug << "No dead area in the readout module" << RESTendl; + RESTDebug << "And other checks" << RESTendl; + RESTDebug << "--------------------------------------------------" << RESTendl; } void TRestDetectorReadout::GetPlaneModuleChannel(Int_t signalID, Int_t& planeID, Int_t& moduleID, @@ -807,8 +808,8 @@ Double_t TRestDetectorReadout::GetX(Int_t signalID) { Int_t planeID, readoutChannel = -1, readoutModule; GetPlaneModuleChannel(signalID, planeID, readoutModule, readoutChannel); if (readoutChannel == -1) { - // cout << "REST Warning : Readout channel not found for daq ID : " << signalID << endl; - return numeric_limits::quiet_NaN(); + // std::cout << "REST Warning : Readout channel not found for daq ID : " << signalID << std::endl; + return std::numeric_limits::quiet_NaN(); } return GetX(planeID, readoutModule, readoutChannel); } @@ -817,8 +818,8 @@ Double_t TRestDetectorReadout::GetY(Int_t signalID) { Int_t planeID, readoutChannel = -1, readoutModule; GetPlaneModuleChannel(signalID, planeID, readoutModule, readoutChannel); if (readoutChannel == -1) { - // cout << "REST Warning : Readout channel not found for daq ID : " << signalID << endl; - return numeric_limits::quiet_NaN(); + // std::cout << "REST Warning : Readout channel not found for daq ID : " << signalID << std::endl; + return std::numeric_limits::quiet_NaN(); } return GetY(planeID, readoutModule, readoutChannel); } @@ -859,7 +860,7 @@ void TRestDetectorReadout::PrintMetadata(Int_t DetailLevel) { RESTMetadata << "-----------------------------------" << RESTendl; for (int p = 0; p < GetNumberOfReadoutPlanes(); p++) fReadoutPlanes[p].Print(DetailLevel - 1); RESTMetadata << "****************************************" << RESTendl; - cout << endl; + std::cout << std::endl; } } @@ -867,13 +868,13 @@ void TRestDetectorReadout::PrintMetadata(Int_t DetailLevel) { /// \brief Draws the readout on screen. Not yet implemented. /// void TRestDetectorReadout::Draw() { - cout << " TRestDetectorReadout::Draw() is not implemented" << endl; - cout << " To draw a TRestDetectorReadout class with name \"readoutName\""; - cout << " stored in a ROOT file \"rootFile.root\"" << endl; - cout << " You can use the script : REST_Readout_Viewer( \"rootFile.root\", " - "\"readoutName\" )" - << endl; - cout << endl; - cout << " Or you can access directly a readout plane and draw using : " << endl; - cout << " readout->GetReadoutPlane( 0 )->Draw( ); " << endl; + std::cout << " TRestDetectorReadout::Draw() is not implemented" << std::endl; + std::cout << " To draw a TRestDetectorReadout class with name \"readoutName\""; + std::cout << " stored in a ROOT file \"rootFile.root\"" << std::endl; + std::cout << " You can use the script : REST_Readout_Viewer( \"rootFile.root\", " + "\"readoutName\" )" + << std::endl; + std::cout << std::endl; + std::cout << " Or you can access directly a readout plane and draw using : " << std::endl; + std::cout << " readout->GetReadoutPlane( 0 )->Draw( ); " << std::endl; } From 03a88b2190c0f0e89b67e819075f546d3d20463e Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Fri, 2 Jun 2023 09:10:43 +0200 Subject: [PATCH 15/19] TRestDetectorReadout. Removing unnecessary output --- src/TRestDetectorReadout.cxx | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index 351709d8..f3f813a4 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -491,9 +491,6 @@ void TRestDetectorReadout::InitFromConfigFile() { } fModuleDefinitions[mid].SetModuleID(StringToInteger(GetFieldValue("id", moduleDefinition))); - std::cout << "Origin: " << GetFieldValue("origin", moduleDefinition) << std::endl; - TVector2 v = StringTo2DVector(GetFieldValue("origin", moduleDefinition)); - v.Print(); fModuleDefinitions[mid].SetOrigin(StringTo2DVector(GetFieldValue("origin", moduleDefinition))); fModuleDefinitions[mid].SetRotation(StringToDouble(GetFieldValue("rotation", moduleDefinition))); From 317faf8b7dd1ef97fc92ac865472e4fb1a664f3e Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Sat, 3 Jun 2023 14:46:32 +0200 Subject: [PATCH 16/19] TRestDetectorReadout. Adding protection against seg.fault --- src/TRestDetectorReadout.cxx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index f3f813a4..9b07678f 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -566,6 +566,11 @@ void TRestDetectorReadout::InitFromConfigFile() { // WRONG version before --> // fModuleDefinitions[mid].GetChannel(ch)->SetID( rChannel[ch] ); + if (!fModuleDefinitions[mid].GetChannel(rChannel[ch])) { + RESTError << "Problem setting readout channel " << rChannel[ch] + << " with daq id: " << dChannel[ch] << RESTendl; + continue; + } fModuleDefinitions[mid].GetChannel(rChannel[ch])->SetDaqID(dChannel[ch]); fModuleDefinitions[mid].GetChannel(rChannel[ch])->SetChannelID(rChannel[ch]); From e071640831798a5dbe3a456658729f1219795e49 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Sat, 3 Jun 2023 18:09:52 +0200 Subject: [PATCH 17/19] Adding readout validation pipeline --- .github/workflows/validation.yml | 48 + pipeline/readout/dummy.dec | 128 ++ pipeline/readout/generateReadout.rml | 55 + pipeline/readout/microbulkModule.rml | 23 + pipeline/readout/validation.txt | 2784 ++++++++++++++++++++++++++ 5 files changed, 3038 insertions(+) create mode 100644 pipeline/readout/dummy.dec create mode 100644 pipeline/readout/generateReadout.rml create mode 100644 pipeline/readout/microbulkModule.rml create mode 100644 pipeline/readout/validation.txt diff --git a/.github/workflows/validation.yml b/.github/workflows/validation.yml index d2af9478..17454b36 100644 --- a/.github/workflows/validation.yml +++ b/.github/workflows/validation.yml @@ -61,3 +61,51 @@ jobs: run: | source ${{ env.REST_PATH }}/thisREST.sh restRoot -b -q + + readout: + name: "Readout" + runs-on: ubuntu-latest + container: + image: ghcr.io/lobis/root-geant4-garfield:rest-for-physics + needs: [ build-detectorlib ] + steps: + - uses: rest-for-physics/framework/.github/actions/checkout@master + with: + branch: ${{ env.BRANCH_NAME }} + repository: rest-for-physics/detectorlib + path: ${{ env.DETECTOR_LIB_PATH }} + - name: Restore cache + uses: actions/cache@v3 + id: detectorlib-install-cache + with: + key: ${{ env.BRANCH_NAME }}-${{ github.sha }} + path: ${{ env.REST_PATH }} + #- name: Load Gas + # run: | + #source ${{ env.REST_PATH }}/thisREST.sh + #cd framework/pipeline/metadata/gas/ + #restRoot -b -q LoadGasFromServerAndValidate.C + # Not working, not used in gitlab pipeline + #- name: Generate Gas + # run: | + # source ${{ env.REST_PATH }}/thisREST.sh + # source $(root-config --bindir)/thisroot.sh + # cd framework/pipeline/metadata/gas/ + # restRoot -b -q GenerateDummyGas.C + - name: Generate Readout + run: | + source ${{ env.REST_PATH }}/thisREST.sh + cd ${{ env.DETECTOR_LIB_PATH }}/pipeline/readout + restManager --c generateReadout.rml --o readout.root + restRoot -b -q PrintReadout.C'("readout.root")' > print.txt + diff print.txt validation.txt + # We need to introduce basic validation here + # - diff validation.txt print.txt + # - name: Basic Readout + # run: | + # source ${{ env.REST_PATH }}/thisREST.sh + # cd framework/projects/basic-examples/ + # git submodule update --init . + # cd basic-readouts + # git submodule update --init . + # restRoot -b -q GenerateReadouts.C'("basic.root")' diff --git a/pipeline/readout/dummy.dec b/pipeline/readout/dummy.dec new file mode 100644 index 00000000..8da79afe --- /dev/null +++ b/pipeline/readout/dummy.dec @@ -0,0 +1,128 @@ +3 119 +4 118 +5 117 +6 116 +7 115 +8 114 +9 113 +10 112 +11 111 +12 110 +14 109 +15 108 +16 107 +17 106 +19 105 +20 104 +21 103 +22 102 +23 101 +25 100 +26 99 +27 98 +28 97 +29 96 +30 95 +31 94 +32 93 +33 92 +34 91 +35 90 +36 89 +37 88 +38 87 +39 86 +40 85 +41 84 +42 83 +43 82 +44 81 +45 80 +46 79 +48 78 +49 77 +50 76 +51 75 +52 74 +54 73 +55 72 +56 71 +57 70 +59 69 +60 68 +61 67 +62 66 +63 65 +64 64 +65 63 +66 62 +67 61 +68 60 +75 59 +76 58 +77 57 +78 56 +79 55 +80 54 +81 53 +82 52 +83 51 +84 50 +86 49 +87 48 +88 47 +89 46 +91 45 +92 44 +93 43 +94 42 +95 41 +97 40 +98 39 +99 38 +100 37 +101 36 +102 35 +103 34 +104 33 +105 32 +106 31 +107 30 +108 29 +109 28 +110 27 +111 26 +112 25 +113 24 +114 23 +115 22 +116 21 +117 20 +118 19 +120 18 +121 17 +122 16 +123 15 +124 14 +126 13 +127 12 +128 11 +129 10 +131 9 +132 8 +133 7 +134 6 +135 5 +136 4 +137 3 +138 2 +139 1 +140 0 +147 126 +148 127 +149 124 +150 125 +151 122 +152 123 +153 120 +154 121 diff --git a/pipeline/readout/generateReadout.rml b/pipeline/readout/generateReadout.rml new file mode 100644 index 00000000..5fa7e344 --- /dev/null +++ b/pipeline/readout/generateReadout.rml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + new readout plane configuration + down to up view + + (-292.175,-1.525) + (292.175,-194.65) + (-292.175,194.65) + (292.175,1.15) + + + + + + + + + + + + + + diff --git a/pipeline/readout/microbulkModule.rml b/pipeline/readout/microbulkModule.rml new file mode 100644 index 00000000..09d7e2d7 --- /dev/null +++ b/pipeline/readout/microbulkModule.rml @@ -0,0 +1,23 @@ + + + + // Y-strips + + + //First strip is special (upper left corner) + + + // Last strip is special + + + // X-strips + + // First strip is special + + + + + //Last strip is special (upper left corner) + + + diff --git a/pipeline/readout/validation.txt b/pipeline/readout/validation.txt new file mode 100644 index 00000000..d09e03a3 --- /dev/null +++ b/pipeline/readout/validation.txt @@ -0,0 +1,2784 @@ += Loading libraries ... + - /home/jgalan/rest-framework/install/lib/libRestDetector.so +Heed: + Database path: /programas/garfield/6.26.06/share/Heed/database + - /home/jgalan/rest-framework/install/lib/libRestFramework.so + - /home/jgalan/rest-framework/install/lib/libRestRaw.so + - /home/jgalan/rest-framework/install/lib/libRestGeant4.so + - /home/jgalan/rest-framework/install/lib/libRestConnectors.so + - /home/jgalan/rest-framework/install/lib/libRestAxion.so + + +Processing PrintReadout.C("output.root")... +Filename : output.root ++++++++++++++++++++++++++++++++++++++++++++++ +TRestDetectorReadout content +Config file : generateReadout.rml ++++++++++++++++++++++++++++++++++++++++++++++ +Name : Prototype_2020_06 +Title : PANDA readout 7module +REST Version : 2.3.15 +REST Official release: No +Clean state: No +REST Commit : 2aae3c43 +REST Library version : 1.9 +--------------------------------------- +Number of readout planes : 1 +Decoding was defined : YES +----------------------------------- +-- Readout plane : 0 +---------------------------------------------------------------- +-- Position : X = 0 mm, Y : 0 mm, Z : 990 mm +-- Vector : X = 0 mm, Y : 0 mm, Z : -1 mm +-- Cathode Position : X = 0 mm, Y : 0 mm, Z : 0 mm +-- Total drift distance : 990 mm +-- Charge collection : 1 +-- Total modules : 7 +-- Total channels : 896 +---------------------------------------------------------------- +-- Readout module : 0 +---------------------------------------------------------------- +-- Origin position : X = -292.175 mm Y : -1.525 mm +-- Size : X = 193.5 Y : 192.75 +-- Rotation : -90 degrees +-- Total channels : 128 +-- Tolerance : 0.0001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 0 Daq channel : 684 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 1 Daq channel : 683 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 2 Daq channel : 682 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 3 Daq channel : 681 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 4 Daq channel : 680 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 5 Daq channel : 679 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 6 Daq channel : 678 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 7 Daq channel : 677 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 8 Daq channel : 676 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 9 Daq channel : 675 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 10 Daq channel : 673 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 11 Daq channel : 672 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 12 Daq channel : 671 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 13 Daq channel : 670 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 14 Daq channel : 668 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 15 Daq channel : 667 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 16 Daq channel : 666 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 17 Daq channel : 665 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 18 Daq channel : 664 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 19 Daq channel : 662 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 20 Daq channel : 661 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 21 Daq channel : 660 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 22 Daq channel : 659 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 23 Daq channel : 658 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 24 Daq channel : 657 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 25 Daq channel : 656 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 26 Daq channel : 655 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 27 Daq channel : 654 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 28 Daq channel : 653 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 29 Daq channel : 652 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 30 Daq channel : 651 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 31 Daq channel : 650 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 32 Daq channel : 649 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 33 Daq channel : 648 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 34 Daq channel : 647 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 35 Daq channel : 646 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 36 Daq channel : 645 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 37 Daq channel : 644 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 38 Daq channel : 643 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 39 Daq channel : 642 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 40 Daq channel : 641 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 41 Daq channel : 639 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 42 Daq channel : 638 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 43 Daq channel : 637 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 44 Daq channel : 636 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 45 Daq channel : 635 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 46 Daq channel : 633 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 47 Daq channel : 632 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 48 Daq channel : 631 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 49 Daq channel : 630 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 50 Daq channel : 628 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 51 Daq channel : 627 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 52 Daq channel : 626 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 53 Daq channel : 625 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 54 Daq channel : 624 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 55 Daq channel : 623 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 56 Daq channel : 622 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 57 Daq channel : 621 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 58 Daq channel : 620 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 59 Daq channel : 619 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 60 Daq channel : 612 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 61 Daq channel : 611 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 62 Daq channel : 610 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 63 Daq channel : 609 + Total pixels : 129 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 64 Daq channel : 608 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 65 Daq channel : 607 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 66 Daq channel : 606 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 67 Daq channel : 605 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 68 Daq channel : 604 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 69 Daq channel : 603 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 70 Daq channel : 601 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 71 Daq channel : 600 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 72 Daq channel : 599 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 73 Daq channel : 598 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 74 Daq channel : 596 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 75 Daq channel : 595 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 76 Daq channel : 594 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 77 Daq channel : 593 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 78 Daq channel : 592 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 79 Daq channel : 590 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 80 Daq channel : 589 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 81 Daq channel : 588 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 82 Daq channel : 587 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 83 Daq channel : 586 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 84 Daq channel : 585 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 85 Daq channel : 584 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 86 Daq channel : 583 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 87 Daq channel : 582 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 88 Daq channel : 581 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 89 Daq channel : 580 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 90 Daq channel : 579 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 91 Daq channel : 578 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 92 Daq channel : 577 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 93 Daq channel : 576 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 94 Daq channel : 575 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 95 Daq channel : 574 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 96 Daq channel : 573 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 97 Daq channel : 572 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 98 Daq channel : 571 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 99 Daq channel : 570 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 100 Daq channel : 569 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 101 Daq channel : 567 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 102 Daq channel : 566 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 103 Daq channel : 565 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 104 Daq channel : 564 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 105 Daq channel : 563 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 106 Daq channel : 561 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 107 Daq channel : 560 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 108 Daq channel : 559 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 109 Daq channel : 558 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 110 Daq channel : 556 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 111 Daq channel : 555 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 112 Daq channel : 554 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 113 Daq channel : 553 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 114 Daq channel : 552 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 115 Daq channel : 551 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 116 Daq channel : 550 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 117 Daq channel : 549 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 118 Daq channel : 548 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 119 Daq channel : 547 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 120 Daq channel : 697 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 121 Daq channel : 698 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 122 Daq channel : 695 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 123 Daq channel : 696 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 124 Daq channel : 693 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 125 Daq channel : 694 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 126 Daq channel : 691 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 127 Daq channel : 692 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Readout module : 2 +---------------------------------------------------------------- +-- Origin position : X = 292.175 mm Y : -194.65 mm +-- Size : X = 193.5 Y : 192.75 +-- Rotation : 90 degrees +-- Total channels : 128 +-- Tolerance : 0.0001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 0 Daq channel : 548 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 1 Daq channel : 547 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 2 Daq channel : 546 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 3 Daq channel : 545 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 4 Daq channel : 544 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 5 Daq channel : 543 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 6 Daq channel : 542 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 7 Daq channel : 541 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 8 Daq channel : 540 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 9 Daq channel : 539 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 10 Daq channel : 537 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 11 Daq channel : 536 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 12 Daq channel : 535 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 13 Daq channel : 534 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 14 Daq channel : 532 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 15 Daq channel : 531 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 16 Daq channel : 530 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 17 Daq channel : 529 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 18 Daq channel : 528 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 19 Daq channel : 526 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 20 Daq channel : 525 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 21 Daq channel : 524 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 22 Daq channel : 523 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 23 Daq channel : 522 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 24 Daq channel : 521 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 25 Daq channel : 520 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 26 Daq channel : 519 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 27 Daq channel : 518 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 28 Daq channel : 517 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 29 Daq channel : 516 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 30 Daq channel : 515 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 31 Daq channel : 514 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 32 Daq channel : 513 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 33 Daq channel : 512 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 34 Daq channel : 511 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 35 Daq channel : 510 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 36 Daq channel : 509 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 37 Daq channel : 508 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 38 Daq channel : 507 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 39 Daq channel : 506 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 40 Daq channel : 505 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 41 Daq channel : 503 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 42 Daq channel : 502 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 43 Daq channel : 501 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 44 Daq channel : 500 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 45 Daq channel : 499 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 46 Daq channel : 497 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 47 Daq channel : 496 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 48 Daq channel : 495 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 49 Daq channel : 494 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 50 Daq channel : 492 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 51 Daq channel : 491 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 52 Daq channel : 490 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 53 Daq channel : 489 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 54 Daq channel : 488 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 55 Daq channel : 487 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 56 Daq channel : 486 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 57 Daq channel : 485 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 58 Daq channel : 484 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 59 Daq channel : 483 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 60 Daq channel : 476 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 61 Daq channel : 475 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 62 Daq channel : 474 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 63 Daq channel : 473 + Total pixels : 129 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 64 Daq channel : 472 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 65 Daq channel : 471 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 66 Daq channel : 470 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 67 Daq channel : 469 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 68 Daq channel : 468 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 69 Daq channel : 467 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 70 Daq channel : 465 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 71 Daq channel : 464 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 72 Daq channel : 463 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 73 Daq channel : 462 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 74 Daq channel : 460 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 75 Daq channel : 459 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 76 Daq channel : 458 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 77 Daq channel : 457 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 78 Daq channel : 456 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 79 Daq channel : 454 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 80 Daq channel : 453 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 81 Daq channel : 452 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 82 Daq channel : 451 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 83 Daq channel : 450 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 84 Daq channel : 449 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 85 Daq channel : 448 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 86 Daq channel : 447 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 87 Daq channel : 446 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 88 Daq channel : 445 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 89 Daq channel : 444 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 90 Daq channel : 443 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 91 Daq channel : 442 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 92 Daq channel : 441 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 93 Daq channel : 440 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 94 Daq channel : 439 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 95 Daq channel : 438 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 96 Daq channel : 437 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 97 Daq channel : 436 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 98 Daq channel : 435 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 99 Daq channel : 434 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 100 Daq channel : 433 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 101 Daq channel : 431 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 102 Daq channel : 430 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 103 Daq channel : 429 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 104 Daq channel : 428 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 105 Daq channel : 427 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 106 Daq channel : 425 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 107 Daq channel : 424 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 108 Daq channel : 423 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 109 Daq channel : 422 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 110 Daq channel : 420 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 111 Daq channel : 419 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 112 Daq channel : 418 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 113 Daq channel : 417 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 114 Daq channel : 416 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 115 Daq channel : 415 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 116 Daq channel : 414 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 117 Daq channel : 413 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 118 Daq channel : 412 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 119 Daq channel : 411 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 120 Daq channel : 561 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 121 Daq channel : 562 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 122 Daq channel : 559 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 123 Daq channel : 560 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 124 Daq channel : 557 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 125 Daq channel : 558 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 126 Daq channel : 555 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 127 Daq channel : 556 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Readout module : 3 +---------------------------------------------------------------- +-- Origin position : X = -292.175 mm Y : 194.65 mm +-- Size : X = 193.5 Y : 192.75 +-- Rotation : -90 degrees +-- Total channels : 128 +-- Tolerance : 0.0001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 0 Daq channel : 820 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 1 Daq channel : 819 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 2 Daq channel : 818 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 3 Daq channel : 817 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 4 Daq channel : 816 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 5 Daq channel : 815 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 6 Daq channel : 814 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 7 Daq channel : 813 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 8 Daq channel : 812 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 9 Daq channel : 811 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 10 Daq channel : 809 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 11 Daq channel : 808 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 12 Daq channel : 807 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 13 Daq channel : 806 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 14 Daq channel : 804 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 15 Daq channel : 803 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 16 Daq channel : 802 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 17 Daq channel : 801 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 18 Daq channel : 800 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 19 Daq channel : 798 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 20 Daq channel : 797 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 21 Daq channel : 796 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 22 Daq channel : 795 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 23 Daq channel : 794 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 24 Daq channel : 793 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 25 Daq channel : 792 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 26 Daq channel : 791 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 27 Daq channel : 790 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 28 Daq channel : 789 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 29 Daq channel : 788 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 30 Daq channel : 787 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 31 Daq channel : 786 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 32 Daq channel : 785 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 33 Daq channel : 784 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 34 Daq channel : 783 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 35 Daq channel : 782 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 36 Daq channel : 781 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 37 Daq channel : 780 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 38 Daq channel : 779 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 39 Daq channel : 778 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 40 Daq channel : 777 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 41 Daq channel : 775 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 42 Daq channel : 774 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 43 Daq channel : 773 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 44 Daq channel : 772 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 45 Daq channel : 771 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 46 Daq channel : 769 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 47 Daq channel : 768 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 48 Daq channel : 767 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 49 Daq channel : 766 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 50 Daq channel : 764 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 51 Daq channel : 763 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 52 Daq channel : 762 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 53 Daq channel : 761 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 54 Daq channel : 760 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 55 Daq channel : 759 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 56 Daq channel : 758 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 57 Daq channel : 757 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 58 Daq channel : 756 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 59 Daq channel : 755 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 60 Daq channel : 748 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 61 Daq channel : 747 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 62 Daq channel : 746 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 63 Daq channel : 745 + Total pixels : 129 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 64 Daq channel : 744 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 65 Daq channel : 743 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 66 Daq channel : 742 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 67 Daq channel : 741 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 68 Daq channel : 740 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 69 Daq channel : 739 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 70 Daq channel : 737 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 71 Daq channel : 736 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 72 Daq channel : 735 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 73 Daq channel : 734 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 74 Daq channel : 732 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 75 Daq channel : 731 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 76 Daq channel : 730 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 77 Daq channel : 729 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 78 Daq channel : 728 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 79 Daq channel : 726 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 80 Daq channel : 725 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 81 Daq channel : 724 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 82 Daq channel : 723 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 83 Daq channel : 722 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 84 Daq channel : 721 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 85 Daq channel : 720 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 86 Daq channel : 719 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 87 Daq channel : 718 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 88 Daq channel : 717 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 89 Daq channel : 716 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 90 Daq channel : 715 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 91 Daq channel : 714 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 92 Daq channel : 713 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 93 Daq channel : 712 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 94 Daq channel : 711 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 95 Daq channel : 710 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 96 Daq channel : 709 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 97 Daq channel : 708 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 98 Daq channel : 707 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 99 Daq channel : 706 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 100 Daq channel : 705 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 101 Daq channel : 703 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 102 Daq channel : 702 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 103 Daq channel : 701 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 104 Daq channel : 700 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 105 Daq channel : 699 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 106 Daq channel : 697 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 107 Daq channel : 696 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 108 Daq channel : 695 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 109 Daq channel : 694 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 110 Daq channel : 692 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 111 Daq channel : 691 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 112 Daq channel : 690 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 113 Daq channel : 689 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 114 Daq channel : 688 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 115 Daq channel : 687 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 116 Daq channel : 686 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 117 Daq channel : 685 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 118 Daq channel : 684 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 119 Daq channel : 683 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 120 Daq channel : 833 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 121 Daq channel : 834 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 122 Daq channel : 831 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 123 Daq channel : 832 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 124 Daq channel : 829 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 125 Daq channel : 830 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 126 Daq channel : 827 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 127 Daq channel : 828 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Readout module : 4 +---------------------------------------------------------------- +-- Origin position : X = 292.175 mm Y : 1.15 mm +-- Size : X = 193.5 Y : 192.75 +-- Rotation : 90 degrees +-- Total channels : 128 +-- Tolerance : 0.0001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 0 Daq channel : 412 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 1 Daq channel : 411 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 2 Daq channel : 410 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 3 Daq channel : 409 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 4 Daq channel : 408 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 5 Daq channel : 407 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 6 Daq channel : 406 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 7 Daq channel : 405 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 8 Daq channel : 404 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 9 Daq channel : 403 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 10 Daq channel : 401 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 11 Daq channel : 400 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 12 Daq channel : 399 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 13 Daq channel : 398 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 14 Daq channel : 396 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 15 Daq channel : 395 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 16 Daq channel : 394 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 17 Daq channel : 393 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 18 Daq channel : 392 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 19 Daq channel : 390 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 20 Daq channel : 389 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 21 Daq channel : 388 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 22 Daq channel : 387 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 23 Daq channel : 386 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 24 Daq channel : 385 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 25 Daq channel : 384 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 26 Daq channel : 383 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 27 Daq channel : 382 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 28 Daq channel : 381 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 29 Daq channel : 380 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 30 Daq channel : 379 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 31 Daq channel : 378 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 32 Daq channel : 377 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 33 Daq channel : 376 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 34 Daq channel : 375 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 35 Daq channel : 374 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 36 Daq channel : 373 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 37 Daq channel : 372 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 38 Daq channel : 371 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 39 Daq channel : 370 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 40 Daq channel : 369 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 41 Daq channel : 367 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 42 Daq channel : 366 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 43 Daq channel : 365 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 44 Daq channel : 364 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 45 Daq channel : 363 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 46 Daq channel : 361 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 47 Daq channel : 360 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 48 Daq channel : 359 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 49 Daq channel : 358 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 50 Daq channel : 356 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 51 Daq channel : 355 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 52 Daq channel : 354 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 53 Daq channel : 353 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 54 Daq channel : 352 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 55 Daq channel : 351 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 56 Daq channel : 350 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 57 Daq channel : 349 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 58 Daq channel : 348 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 59 Daq channel : 347 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 60 Daq channel : 340 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 61 Daq channel : 339 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 62 Daq channel : 338 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 63 Daq channel : 337 + Total pixels : 129 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 64 Daq channel : 336 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 65 Daq channel : 335 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 66 Daq channel : 334 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 67 Daq channel : 333 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 68 Daq channel : 332 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 69 Daq channel : 331 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 70 Daq channel : 329 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 71 Daq channel : 328 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 72 Daq channel : 327 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 73 Daq channel : 326 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 74 Daq channel : 324 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 75 Daq channel : 323 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 76 Daq channel : 322 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 77 Daq channel : 321 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 78 Daq channel : 320 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 79 Daq channel : 318 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 80 Daq channel : 317 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 81 Daq channel : 316 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 82 Daq channel : 315 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 83 Daq channel : 314 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 84 Daq channel : 313 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 85 Daq channel : 312 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 86 Daq channel : 311 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 87 Daq channel : 310 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 88 Daq channel : 309 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 89 Daq channel : 308 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 90 Daq channel : 307 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 91 Daq channel : 306 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 92 Daq channel : 305 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 93 Daq channel : 304 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 94 Daq channel : 303 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 95 Daq channel : 302 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 96 Daq channel : 301 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 97 Daq channel : 300 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 98 Daq channel : 299 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 99 Daq channel : 298 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 100 Daq channel : 297 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 101 Daq channel : 295 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 102 Daq channel : 294 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 103 Daq channel : 293 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 104 Daq channel : 292 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 105 Daq channel : 291 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 106 Daq channel : 289 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 107 Daq channel : 288 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 108 Daq channel : 287 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 109 Daq channel : 286 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 110 Daq channel : 284 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 111 Daq channel : 283 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 112 Daq channel : 282 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 113 Daq channel : 281 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 114 Daq channel : 280 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 115 Daq channel : 279 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 116 Daq channel : 278 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 117 Daq channel : 277 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 118 Daq channel : 276 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 119 Daq channel : 275 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 120 Daq channel : 425 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 121 Daq channel : 426 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 122 Daq channel : 423 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 123 Daq channel : 424 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 124 Daq channel : 421 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 125 Daq channel : 422 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 126 Daq channel : 419 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 127 Daq channel : 420 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Readout module : 6 +---------------------------------------------------------------- +-- Origin position : X = -96.75 mm Y : -96.375 mm +-- Size : X = 193.5 Y : 192.75 +-- Rotation : 0 degrees +-- Total channels : 128 +-- Tolerance : 0.0001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 0 Daq channel : 276 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 1 Daq channel : 275 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 2 Daq channel : 274 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 3 Daq channel : 273 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 4 Daq channel : 272 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 5 Daq channel : 271 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 6 Daq channel : 270 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 7 Daq channel : 269 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 8 Daq channel : 268 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 9 Daq channel : 267 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 10 Daq channel : 265 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 11 Daq channel : 264 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 12 Daq channel : 263 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 13 Daq channel : 262 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 14 Daq channel : 260 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 15 Daq channel : 259 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 16 Daq channel : 258 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 17 Daq channel : 257 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 18 Daq channel : 256 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 19 Daq channel : 254 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 20 Daq channel : 253 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 21 Daq channel : 252 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 22 Daq channel : 251 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 23 Daq channel : 250 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 24 Daq channel : 249 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 25 Daq channel : 248 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 26 Daq channel : 247 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 27 Daq channel : 246 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 28 Daq channel : 245 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 29 Daq channel : 244 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 30 Daq channel : 243 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 31 Daq channel : 242 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 32 Daq channel : 241 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 33 Daq channel : 240 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 34 Daq channel : 239 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 35 Daq channel : 238 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 36 Daq channel : 237 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 37 Daq channel : 236 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 38 Daq channel : 235 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 39 Daq channel : 234 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 40 Daq channel : 233 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 41 Daq channel : 231 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 42 Daq channel : 230 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 43 Daq channel : 229 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 44 Daq channel : 228 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 45 Daq channel : 227 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 46 Daq channel : 225 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 47 Daq channel : 224 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 48 Daq channel : 223 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 49 Daq channel : 222 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 50 Daq channel : 220 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 51 Daq channel : 219 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 52 Daq channel : 218 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 53 Daq channel : 217 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 54 Daq channel : 216 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 55 Daq channel : 215 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 56 Daq channel : 214 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 57 Daq channel : 213 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 58 Daq channel : 212 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 59 Daq channel : 211 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 60 Daq channel : 204 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 61 Daq channel : 203 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 62 Daq channel : 202 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 63 Daq channel : 201 + Total pixels : 129 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 64 Daq channel : 200 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 65 Daq channel : 199 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 66 Daq channel : 198 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 67 Daq channel : 197 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 68 Daq channel : 196 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 69 Daq channel : 195 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 70 Daq channel : 193 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 71 Daq channel : 192 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 72 Daq channel : 191 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 73 Daq channel : 190 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 74 Daq channel : 188 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 75 Daq channel : 187 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 76 Daq channel : 186 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 77 Daq channel : 185 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 78 Daq channel : 184 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 79 Daq channel : 182 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 80 Daq channel : 181 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 81 Daq channel : 180 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 82 Daq channel : 179 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 83 Daq channel : 178 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 84 Daq channel : 177 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 85 Daq channel : 176 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 86 Daq channel : 175 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 87 Daq channel : 174 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 88 Daq channel : 173 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 89 Daq channel : 172 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 90 Daq channel : 171 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 91 Daq channel : 170 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 92 Daq channel : 169 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 93 Daq channel : 168 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 94 Daq channel : 167 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 95 Daq channel : 166 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 96 Daq channel : 165 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 97 Daq channel : 164 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 98 Daq channel : 163 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 99 Daq channel : 162 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 100 Daq channel : 161 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 101 Daq channel : 159 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 102 Daq channel : 158 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 103 Daq channel : 157 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 104 Daq channel : 156 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 105 Daq channel : 155 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 106 Daq channel : 153 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 107 Daq channel : 152 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 108 Daq channel : 151 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 109 Daq channel : 150 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 110 Daq channel : 148 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 111 Daq channel : 147 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 112 Daq channel : 146 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 113 Daq channel : 145 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 114 Daq channel : 144 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 115 Daq channel : 143 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 116 Daq channel : 142 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 117 Daq channel : 141 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 118 Daq channel : 140 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 119 Daq channel : 139 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 120 Daq channel : 289 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 121 Daq channel : 290 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 122 Daq channel : 287 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 123 Daq channel : 288 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 124 Daq channel : 285 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 125 Daq channel : 286 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 126 Daq channel : 283 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 127 Daq channel : 284 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Readout module : 8 +---------------------------------------------------------------- +-- Origin position : X = 96.75 mm Y : 292.175 mm +-- Size : X = 193.5 Y : 192.75 +-- Rotation : 180 degrees +-- Total channels : 128 +-- Tolerance : 0.0001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 0 Daq channel : 1024 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 1 Daq channel : 1023 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 2 Daq channel : 1022 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 3 Daq channel : 1021 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 4 Daq channel : 1020 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 5 Daq channel : 1019 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 6 Daq channel : 1018 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 7 Daq channel : 1017 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 8 Daq channel : 1016 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 9 Daq channel : 1015 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 10 Daq channel : 1013 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 11 Daq channel : 1012 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 12 Daq channel : 1011 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 13 Daq channel : 1010 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 14 Daq channel : 1008 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 15 Daq channel : 1007 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 16 Daq channel : 1006 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 17 Daq channel : 1005 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 18 Daq channel : 1004 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 19 Daq channel : 1002 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 20 Daq channel : 1001 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 21 Daq channel : 1000 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 22 Daq channel : 999 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 23 Daq channel : 998 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 24 Daq channel : 997 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 25 Daq channel : 996 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 26 Daq channel : 995 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 27 Daq channel : 994 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 28 Daq channel : 993 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 29 Daq channel : 992 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 30 Daq channel : 991 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 31 Daq channel : 990 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 32 Daq channel : 989 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 33 Daq channel : 988 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 34 Daq channel : 987 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 35 Daq channel : 986 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 36 Daq channel : 985 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 37 Daq channel : 984 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 38 Daq channel : 983 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 39 Daq channel : 982 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 40 Daq channel : 981 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 41 Daq channel : 979 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 42 Daq channel : 978 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 43 Daq channel : 977 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 44 Daq channel : 976 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 45 Daq channel : 975 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 46 Daq channel : 973 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 47 Daq channel : 972 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 48 Daq channel : 971 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 49 Daq channel : 970 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 50 Daq channel : 968 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 51 Daq channel : 967 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 52 Daq channel : 966 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 53 Daq channel : 965 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 54 Daq channel : 964 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 55 Daq channel : 963 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 56 Daq channel : 962 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 57 Daq channel : 961 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 58 Daq channel : 960 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 59 Daq channel : 959 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 60 Daq channel : 952 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 61 Daq channel : 951 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 62 Daq channel : 950 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 63 Daq channel : 949 + Total pixels : 129 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 64 Daq channel : 948 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 65 Daq channel : 947 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 66 Daq channel : 946 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 67 Daq channel : 945 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 68 Daq channel : 944 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 69 Daq channel : 943 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 70 Daq channel : 941 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 71 Daq channel : 940 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 72 Daq channel : 939 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 73 Daq channel : 938 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 74 Daq channel : 936 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 75 Daq channel : 935 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 76 Daq channel : 934 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 77 Daq channel : 933 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 78 Daq channel : 932 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 79 Daq channel : 930 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 80 Daq channel : 929 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 81 Daq channel : 928 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 82 Daq channel : 927 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 83 Daq channel : 926 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 84 Daq channel : 925 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 85 Daq channel : 924 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 86 Daq channel : 923 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 87 Daq channel : 922 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 88 Daq channel : 921 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 89 Daq channel : 920 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 90 Daq channel : 919 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 91 Daq channel : 918 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 92 Daq channel : 917 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 93 Daq channel : 916 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 94 Daq channel : 915 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 95 Daq channel : 914 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 96 Daq channel : 913 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 97 Daq channel : 912 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 98 Daq channel : 911 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 99 Daq channel : 910 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 100 Daq channel : 909 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 101 Daq channel : 907 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 102 Daq channel : 906 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 103 Daq channel : 905 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 104 Daq channel : 904 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 105 Daq channel : 903 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 106 Daq channel : 901 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 107 Daq channel : 900 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 108 Daq channel : 899 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 109 Daq channel : 898 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 110 Daq channel : 896 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 111 Daq channel : 895 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 112 Daq channel : 894 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 113 Daq channel : 893 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 114 Daq channel : 892 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 115 Daq channel : 891 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 116 Daq channel : 890 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 117 Daq channel : 889 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 118 Daq channel : 888 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 119 Daq channel : 887 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 120 Daq channel : 1037 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 121 Daq channel : 1038 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 122 Daq channel : 1035 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 123 Daq channel : 1036 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 124 Daq channel : 1033 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 125 Daq channel : 1034 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 126 Daq channel : 1031 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 127 Daq channel : 1032 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Readout module : 9 +---------------------------------------------------------------- +-- Origin position : X = -96.75 mm Y : -292.175 mm +-- Size : X = 193.5 Y : 192.75 +-- Rotation : 0 degrees +-- Total channels : 128 +-- Tolerance : 0.0001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 0 Daq channel : 140 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 1 Daq channel : 139 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 2 Daq channel : 138 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 3 Daq channel : 137 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 4 Daq channel : 136 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 5 Daq channel : 135 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 6 Daq channel : 134 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 7 Daq channel : 133 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 8 Daq channel : 132 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 9 Daq channel : 131 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 10 Daq channel : 129 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 11 Daq channel : 128 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 12 Daq channel : 127 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 13 Daq channel : 126 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 14 Daq channel : 124 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 15 Daq channel : 123 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 16 Daq channel : 122 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 17 Daq channel : 121 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 18 Daq channel : 120 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 19 Daq channel : 118 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 20 Daq channel : 117 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 21 Daq channel : 116 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 22 Daq channel : 115 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 23 Daq channel : 114 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 24 Daq channel : 113 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 25 Daq channel : 112 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 26 Daq channel : 111 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 27 Daq channel : 110 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 28 Daq channel : 109 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 29 Daq channel : 108 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 30 Daq channel : 107 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 31 Daq channel : 106 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 32 Daq channel : 105 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 33 Daq channel : 104 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 34 Daq channel : 103 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 35 Daq channel : 102 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 36 Daq channel : 101 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 37 Daq channel : 100 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 38 Daq channel : 99 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 39 Daq channel : 98 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 40 Daq channel : 97 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 41 Daq channel : 95 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 42 Daq channel : 94 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 43 Daq channel : 93 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 44 Daq channel : 92 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 45 Daq channel : 91 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 46 Daq channel : 89 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 47 Daq channel : 88 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 48 Daq channel : 87 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 49 Daq channel : 86 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 50 Daq channel : 84 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 51 Daq channel : 83 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 52 Daq channel : 82 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 53 Daq channel : 81 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 54 Daq channel : 80 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 55 Daq channel : 79 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 56 Daq channel : 78 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 57 Daq channel : 77 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 58 Daq channel : 76 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 59 Daq channel : 75 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 60 Daq channel : 68 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 61 Daq channel : 67 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 62 Daq channel : 66 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 63 Daq channel : 65 + Total pixels : 129 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 64 Daq channel : 64 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 65 Daq channel : 63 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 66 Daq channel : 62 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 67 Daq channel : 61 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 68 Daq channel : 60 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 69 Daq channel : 59 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 70 Daq channel : 57 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 71 Daq channel : 56 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 72 Daq channel : 55 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 73 Daq channel : 54 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 74 Daq channel : 52 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 75 Daq channel : 51 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 76 Daq channel : 50 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 77 Daq channel : 49 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 78 Daq channel : 48 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 79 Daq channel : 46 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 80 Daq channel : 45 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 81 Daq channel : 44 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 82 Daq channel : 43 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 83 Daq channel : 42 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 84 Daq channel : 41 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 85 Daq channel : 40 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 86 Daq channel : 39 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 87 Daq channel : 38 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 88 Daq channel : 37 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 89 Daq channel : 36 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 90 Daq channel : 35 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 91 Daq channel : 34 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 92 Daq channel : 33 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 93 Daq channel : 32 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 94 Daq channel : 31 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 95 Daq channel : 30 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 96 Daq channel : 29 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 97 Daq channel : 28 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 98 Daq channel : 27 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 99 Daq channel : 26 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 100 Daq channel : 25 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 101 Daq channel : 23 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 102 Daq channel : 22 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 103 Daq channel : 21 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 104 Daq channel : 20 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 105 Daq channel : 19 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 106 Daq channel : 17 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 107 Daq channel : 16 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 108 Daq channel : 15 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 109 Daq channel : 14 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 110 Daq channel : 12 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 111 Daq channel : 11 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 112 Daq channel : 10 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 113 Daq channel : 9 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 114 Daq channel : 8 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 115 Daq channel : 7 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 116 Daq channel : 6 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 117 Daq channel : 5 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 118 Daq channel : 4 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 119 Daq channel : 3 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 120 Daq channel : 153 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 121 Daq channel : 154 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 122 Daq channel : 151 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 123 Daq channel : 152 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 124 Daq channel : 149 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 125 Daq channel : 150 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 126 Daq channel : 147 + Total pixels : 65 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++ Channel : 127 Daq channel : 148 + Total pixels : 66 Channel type : NoType ++++++++++++++++++++++++++++++++++++++++++++++++++ +**************************************** + From 99f616626cfc6a14acc04f9d88dd4148894b1367 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 3 Jun 2023 16:10:18 +0000 Subject: [PATCH 18/19] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pipeline/readout/validation.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/pipeline/readout/validation.txt b/pipeline/readout/validation.txt index d09e03a3..f2e0a26d 100644 --- a/pipeline/readout/validation.txt +++ b/pipeline/readout/validation.txt @@ -2781,4 +2781,3 @@ Decoding was defined : YES Total pixels : 66 Channel type : NoType +++++++++++++++++++++++++++++++++++++++++++++++++ **************************************** - From 6b4e211f7c0f2e3892b500f3979dfdda2afa260a Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Mon, 5 Jun 2023 08:06:45 +0200 Subject: [PATCH 19/19] pipeline/readout now uses a bash script for validation --- .github/workflows/validation.yml | 2 +- pipeline/readout/PrintReadout.C | 56 +++++++++++++++++++++++++++++++ pipeline/readout/check_readout.sh | 7 ++++ 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 pipeline/readout/PrintReadout.C create mode 100644 pipeline/readout/check_readout.sh diff --git a/.github/workflows/validation.yml b/.github/workflows/validation.yml index 17454b36..30fecc87 100644 --- a/.github/workflows/validation.yml +++ b/.github/workflows/validation.yml @@ -98,7 +98,7 @@ jobs: cd ${{ env.DETECTOR_LIB_PATH }}/pipeline/readout restManager --c generateReadout.rml --o readout.root restRoot -b -q PrintReadout.C'("readout.root")' > print.txt - diff print.txt validation.txt + source check_readout.sh # We need to introduce basic validation here # - diff validation.txt print.txt # - name: Basic Readout diff --git a/pipeline/readout/PrintReadout.C b/pipeline/readout/PrintReadout.C new file mode 100644 index 00000000..813983c5 --- /dev/null +++ b/pipeline/readout/PrintReadout.C @@ -0,0 +1,56 @@ +#include +#include +#include + +#include "TRestDetectorReadout.h" +#include "TRestTask.h" + +void PrintReadout(TString fName) { + TString fileName = fName; + + string fname = fileName.Data(); + + if (!TRestTools::fileExists(fname)) { + cout << "WARNING. Input file does not exist" << endl; + exit(1); + } + + /* + fstream file; + file.open("print.txt", ios::out); + string line; + + streambuf* stream_buffer_cout = cout.rdbuf(); + streambuf* stream_buffer_file = file.rdbuf(); + + cout.rdbuf(stream_buffer_file); + */ + + cout << "Filename : " << fileName << endl; + + TRestRun run(fname); + TRestDetectorReadout* r = (TRestDetectorReadout*)run.GetMetadata("Prototype_2020_06"); + r->PrintMetadata(3); + /* + TFile* f = new TFile(fileName); + + TIter nextkey(f->GetListOfKeys()); + TKey* key; + int n = 0; + while ((key = (TKey*)nextkey())) { + if (((string)(key->GetClassName())).find("TRestDetectorReadout") != -1) { + TObject* obj = f->Get(key->GetName()); + TRestDetectorReadout& readout = *(TRestDetectorReadout*)obj; + readout[0].Print(1); + } + n++; + } + + f->Close(); + + cout.rdbuf(stream_buffer_cout); // back to the old buffer + file.close(); + */ + + return 0; +} diff --git a/pipeline/readout/check_readout.sh b/pipeline/readout/check_readout.sh new file mode 100644 index 00000000..010c4181 --- /dev/null +++ b/pipeline/readout/check_readout.sh @@ -0,0 +1,7 @@ +sizeLimit=2 +a=$(diff validation.txt print.txt | wc -c) + +if [ "$a" -gt "$sizeLimit" ]; then + exit 1 +else + exit 0