From 8484f5b725f2771a7084330b85ec32a8e0869e5c Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 7 Jun 2023 11:45:05 +0200 Subject: [PATCH 01/63] TRestDetectorReadoutPlane. Added fAxisX and fAxisY. Renamed fPlaneVector to fNormal --- inc/TRestDetectorReadoutPlane.h | 60 +++++++++++++++++-------------- src/TRestDetectorReadoutPlane.cxx | 6 ++-- 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 02fc7c6f..0e28bfa1 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -35,27 +35,35 @@ /// allows to integrate any number of independent readout modules. 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. - - 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 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 defining how - ///< much charge should be collected from a - ///< charge hit. It might be used to distribute - ///< the charge between different readout planes. - Double_t fTotalDriftDistance; ///< A parameter storing the total drift distance, - ///< defined between cathode and readout plane. - - Int_t fNModules; ///< The number of modules that have been added to the - ///< readout plane - std::vector - fReadoutModules; ///< A std::vector of the instances of TRestDetectorReadoutModule - ///< contained in the readout plane. + /// The plane id number imposed by the order of creation. Being the first id=0. + Int_t fId = -1; //< + + /// The position of the readout plane that defines the origin (0,0) in plane coordinates + TVector3 fPosition = {0, 0, 0}; //< + + /// A vector that defines the plane orientation and the side of the active volume. + TVector3 fNormal; //< + + /// A vector contained in the plane that defines the plane local reference system + TVector3 fAxisX; //< + + /// An orthonormal to fAxisX contained in the plane. It is calculated internally + TVector3 fAxisY; //! + + /// The cathode position which delimites the active volume together with the readout plane. + TVector3 fCathodePosition; //< + + /// The fraction of charge/energy this readout plane collects from a hit postion. + Double_t fChargeCollection; //< + + /// The total drift distance defined between cathode and readout plane. It is calculated internally. + Double_t fTotalDriftDistance; //! + + /// Keeps track of the number of modules that have been added to the readout plane + Int_t fNModules; //< + + ///< A list of TRestDetectorReadoutModule components contained in the readout plane. + std::vector fReadoutModules; //< void Initialize(); @@ -63,7 +71,7 @@ class TRestDetectorReadoutPlane { public: // Setters /// Sets the planeId. This is done by TRestDetectorReadout during initialization - void SetID(int id) { fPlaneID = id; } + void SetID(int id) { fId = id; } /// Sets the readout plane position void SetPosition(const TVector3& position) { fPosition = position; } @@ -74,7 +82,7 @@ class TRestDetectorReadoutPlane { /// Sets the orientation of the readout plane, and defines the side of the /// active volume. - void SetPlaneVector(const TVector3& vect) { fPlaneVector = vect.Unit(); } + void SetPlaneVector(const TVector3& vect) { fNormal = vect.Unit(); } /// Sets the value for the charge collection. void SetChargeCollection(Double_t charge) { fChargeCollection = charge; } @@ -84,7 +92,7 @@ class TRestDetectorReadoutPlane { // Getters /// Returns an integer with the plane id number. - inline Int_t GetID() const { return fPlaneID; } + inline Int_t GetID() const { return fId; } /// Returns a TVector3 with the readout plane position inline TVector3 GetPosition() const { return fPosition; } @@ -93,7 +101,7 @@ class TRestDetectorReadoutPlane { inline TVector3 GetCathodePosition() const { return fCathodePosition; } /// Returns a TVector3 with a std::vector normal to the readout plane - inline TVector3 GetPlaneVector() const { return fPlaneVector; } + inline TVector3 GetPlaneVector() const { return fNormal; } /// Returns the charge collection ratio at this readout plane inline Double_t GetChargeCollection() const { return fChargeCollection; } @@ -168,6 +176,6 @@ class TRestDetectorReadoutPlane { // Destructor virtual ~TRestDetectorReadoutPlane(); - ClassDef(TRestDetectorReadoutPlane, 2); + ClassDef(TRestDetectorReadoutPlane, 3); }; #endif diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 07526364..2d12c7f0 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -63,7 +63,7 @@ TRestDetectorReadoutPlane::~TRestDetectorReadoutPlane() {} void TRestDetectorReadoutPlane::Initialize() { fCathodePosition = TVector3(0, 0, 0); fPosition = TVector3(0, 0, 0); - fPlaneVector = TVector3(0, 0, 0); + fNormal = TVector3(0, 0, 0); fNModules = 0; fReadoutModules.clear(); @@ -365,8 +365,8 @@ void TRestDetectorReadoutPlane::Print(Int_t DetailLevel) { RESTMetadata << "----------------------------------------------------------------" << RESTendl; RESTMetadata << "-- Position : X = " << fPosition.X() << " mm, " << " Y : " << fPosition.Y() << " mm, Z : " << fPosition.Z() << " mm" << RESTendl; - RESTMetadata << "-- Vector : X = " << fPlaneVector.X() << " mm, " - << " Y : " << fPlaneVector.Y() << " mm, Z : " << fPlaneVector.Z() << " mm" << RESTendl; + RESTMetadata << "-- Vector : X = " << fNormal.X() << " mm, " + << " Y : " << fNormal.Y() << " mm, Z : " << fNormal.Z() << " mm" << RESTendl; RESTMetadata << "-- Cathode Position : X = " << fCathodePosition.X() << " mm, " << " Y : " << fCathodePosition.Y() << " mm, Z : " << fCathodePosition.Z() << " mm" << RESTendl; From ecb8590014b6765924c084fcb9b60b8a15c3ff0c Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 7 Jun 2023 11:45:32 +0200 Subject: [PATCH 02/63] Increasing library version to 2.0 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b9e56ddf..186136a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -set(LibraryVersion "1.9") +set(LibraryVersion "2.0") add_definitions(-DLIBRARY_VERSION="${LibraryVersion}") # find garfield libs and includes From 57379897e1a2b458f64731b2d36526eff1703617 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 7 Jun 2023 11:52:57 +0200 Subject: [PATCH 03/63] Adding default values --- inc/TRestDetectorReadoutPlane.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 0e28bfa1..99d0b988 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -42,25 +42,25 @@ class TRestDetectorReadoutPlane { TVector3 fPosition = {0, 0, 0}; //< /// A vector that defines the plane orientation and the side of the active volume. - TVector3 fNormal; //< + TVector3 fNormal = {0, 0, 1}; //< /// A vector contained in the plane that defines the plane local reference system - TVector3 fAxisX; //< + TVector3 fAxisX = {1, 0, 0}; //< /// An orthonormal to fAxisX contained in the plane. It is calculated internally - TVector3 fAxisY; //! + TVector3 fAxisY = {0, 1, 0}; //! /// The cathode position which delimites the active volume together with the readout plane. - TVector3 fCathodePosition; //< + TVector3 fCathodePosition = {0, 0, 1}; //< /// The fraction of charge/energy this readout plane collects from a hit postion. - Double_t fChargeCollection; //< + Double_t fChargeCollection = 1; //< /// The total drift distance defined between cathode and readout plane. It is calculated internally. - Double_t fTotalDriftDistance; //! + Double_t fTotalDriftDistance = 0; //! /// Keeps track of the number of modules that have been added to the readout plane - Int_t fNModules; //< + Int_t fNModules = 0; //< ///< A list of TRestDetectorReadoutModule components contained in the readout plane. std::vector fReadoutModules; //< From cba956e6f9e33d214833923fa372f9c35da8cce6 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 7 Jun 2023 12:33:45 +0200 Subject: [PATCH 04/63] TRestDetectorReadoutPlane. Adding Setters/Getters --- inc/TRestDetectorReadoutPlane.h | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 99d0b988..f8ba6d78 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -76,13 +76,17 @@ class TRestDetectorReadoutPlane { /// Sets the readout plane position void SetPosition(const TVector3& position) { fPosition = position; } - /// Sets the cathode plane position. By default is parallel to the readout - /// plane. + /// Sets the cathode plane position. By default is parallel to the readout plane. void SetCathodePosition(const TVector3& position) { fCathodePosition = position; } - /// Sets the orientation of the readout plane, and defines the side of the - /// active volume. - void SetPlaneVector(const TVector3& vect) { fNormal = vect.Unit(); } + /// Sets the orientation of the readout plane, and defines the side of the active volume. + void SetNormal(const TVector3& vect) { fNormal = vect.Unit(); } + + /// Sets the vector contained in the plane that defines the internal X-axis + void SetAxisX(const TVector3& vect) { fAxisX = vect.Unit(); } + + /// Sets the vector contained in the plane that defines the internal Y-axis + void SetAxisY(const TVector3& vect) { fAxisY = vect.Unit(); } /// Sets the value for the charge collection. void SetChargeCollection(Double_t charge) { fChargeCollection = charge; } @@ -100,8 +104,14 @@ class TRestDetectorReadoutPlane { /// Returns a TVector3 with the cathode position inline TVector3 GetCathodePosition() const { return fCathodePosition; } - /// Returns a TVector3 with a std::vector normal to the readout plane - inline TVector3 GetPlaneVector() const { return fNormal; } + /// Returns a TVector3 with a vector normal to the readout plane + inline TVector3 GetNormal() const { return fNormal; } + + /// Returns a TVector3 with a vector that defines the X-axis plane coordinate system + inline TVector3 GetAxisX() const { return fAxisX; } + + /// Returns a TVector3 with a vector that defines the Y-axis plane coordinate system + inline TVector3 GetAxisY() const { return fAxisY; } /// Returns the charge collection ratio at this readout plane inline Double_t GetChargeCollection() const { return fChargeCollection; } From 949bb890d2e6ff1452b65ac9f4566b63a3ee645b Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 7 Jun 2023 12:34:18 +0200 Subject: [PATCH 05/63] TRestDetectorReadout. Reading out plane axis Y and Y --- src/TRestDetectorReadout.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index 9b07678f..39002ea8 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -469,7 +469,9 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetID(GetNumberOfReadoutPlanes()); plane.SetPosition(Get3DVectorParameterWithUnits("position", planeDefinition)); plane.SetCathodePosition(Get3DVectorParameterWithUnits("cathodePosition", planeDefinition)); - plane.SetPlaneVector(StringTo3DVector(GetFieldValue("planeVector", planeDefinition))); + plane.SetNormal(StringTo3DVector(GetFieldValue("normal", planeDefinition))); + plane.SetAxisX(StringTo3DVector(GetFieldValue("axisX", planeDefinition))); + plane.SetAxisY(plane.GetAxisX().Cross(plane.GetNormal())); plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition))); Double_t tDriftDistance = plane.GetDistanceTo(plane.GetCathodePosition()); From 14b5923f32e80f6bb767396381dd2b5f3898bd34 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 7 Jun 2023 12:34:40 +0200 Subject: [PATCH 06/63] TRestDetectorReadoutPlane. Updating Print information --- src/TRestDetectorReadoutPlane.cxx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 2d12c7f0..f8ff0f94 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -266,7 +266,7 @@ Double_t TRestDetectorReadoutPlane::GetDistanceTo(Double_t x, Double_t y, Double /// TVector3 position /// Double_t TRestDetectorReadoutPlane::GetDistanceTo(TVector3 pos) { - return (pos - GetPosition()).Dot(GetPlaneVector()); + return (pos - GetPosition()).Dot(GetNormal()); } /////////////////////////////////////////////// @@ -365,8 +365,12 @@ void TRestDetectorReadoutPlane::Print(Int_t DetailLevel) { RESTMetadata << "----------------------------------------------------------------" << RESTendl; RESTMetadata << "-- Position : X = " << fPosition.X() << " mm, " << " Y : " << fPosition.Y() << " mm, Z : " << fPosition.Z() << " mm" << RESTendl; - RESTMetadata << "-- Vector : X = " << fNormal.X() << " mm, " + RESTMetadata << "-- Normal vector : X = " << fNormal.X() << " mm, " << " Y : " << fNormal.Y() << " mm, Z : " << fNormal.Z() << " mm" << RESTendl; + RESTMetadata << "-- X-axis vector : X = " << fAxisX.X() << " mm, " + << " Y : " << fAxisX.Y() << " mm, Z : " << fAxisX.Z() << " mm" << RESTendl; + RESTMetadata << "-- Y-axis vector : Y = " << fAxisY.Y() << " mm, " + << " Y : " << fAxisY.Y() << " mm, Z : " << fAxisY.Z() << " mm" << RESTendl; RESTMetadata << "-- Cathode Position : X = " << fCathodePosition.X() << " mm, " << " Y : " << fCathodePosition.Y() << " mm, Z : " << fCathodePosition.Z() << " mm" << RESTendl; From f0af64b05aa22d265c63075096201d4d0ae0b293 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 7 Jun 2023 12:35:20 +0200 Subject: [PATCH 07/63] Updating processes to renamed TRestDetectorReadoutPlane::GetNormal() method --- src/TRestDetectorGarfieldDriftProcess.cxx | 2 +- src/TRestDetectorSignalToHitsProcess.cxx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TRestDetectorGarfieldDriftProcess.cxx b/src/TRestDetectorGarfieldDriftProcess.cxx index 835962c6..4307e027 100644 --- a/src/TRestDetectorGarfieldDriftProcess.cxx +++ b/src/TRestDetectorGarfieldDriftProcess.cxx @@ -237,7 +237,7 @@ void TRestDetectorGarfieldDriftProcess::InitProcess() { if (fabs(planeZpos - matrixZpos) > 1) continue; // we search for fReadout entry at same Z position rdPlaneFound = true; - planeZvec = readoutplane->GetPlaneVector().z(); + planeZvec = readoutplane->GetNormal().z(); cout << " planeZvec " << planeZvec << endl; } diff --git a/src/TRestDetectorSignalToHitsProcess.cxx b/src/TRestDetectorSignalToHitsProcess.cxx index 261ce233..3ba6c147 100644 --- a/src/TRestDetectorSignalToHitsProcess.cxx +++ b/src/TRestDetectorSignalToHitsProcess.cxx @@ -258,7 +258,7 @@ TRestEvent* TRestDetectorSignalToHitsProcess::ProcessEvent(TRestEvent* inputEven // For the moment this will only be valid for a TPC with its axis (field // direction) being in z - Double_t fieldZDirection = plane->GetPlaneVector().Z(); + Double_t fieldZDirection = plane->GetNormal().Z(); Double_t zPosition = plane->GetPosition().Z(); Double_t x = plane->GetX(readoutModule, readoutChannel); From 6ec8fccc5d4518492eb64cb9e03bf0e1881060d7 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 7 Jun 2023 12:48:21 +0200 Subject: [PATCH 08/63] TRestDetectorReadoutPlane::Print. Fixing typo --- src/TRestDetectorReadoutPlane.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index f8ff0f94..c0ece654 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -369,7 +369,7 @@ void TRestDetectorReadoutPlane::Print(Int_t DetailLevel) { << " Y : " << fNormal.Y() << " mm, Z : " << fNormal.Z() << " mm" << RESTendl; RESTMetadata << "-- X-axis vector : X = " << fAxisX.X() << " mm, " << " Y : " << fAxisX.Y() << " mm, Z : " << fAxisX.Z() << " mm" << RESTendl; - RESTMetadata << "-- Y-axis vector : Y = " << fAxisY.Y() << " mm, " + RESTMetadata << "-- Y-axis vector : Y = " << fAxisY.X() << " mm, " << " Y : " << fAxisY.Y() << " mm, Z : " << fAxisY.Z() << " mm" << RESTendl; RESTMetadata << "-- Cathode Position : X = " << fCathodePosition.X() << " mm, " << " Y : " << fCathodePosition.Y() << " mm, Z : " << fCathodePosition.Z() << " mm" From ca7f8a24a0a0563defa3caaee8dca26d33c44a4d Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 7 Jun 2023 13:04:58 +0200 Subject: [PATCH 09/63] Updating readout --- pipeline/readout/generateReadout.rml | 2 +- pipeline/readout/validation.txt | 5545 +++++++++++++------------- 2 files changed, 2774 insertions(+), 2773 deletions(-) diff --git a/pipeline/readout/generateReadout.rml b/pipeline/readout/generateReadout.rml index 5fa7e344..86fff864 100644 --- a/pipeline/readout/generateReadout.rml +++ b/pipeline/readout/generateReadout.rml @@ -30,7 +30,7 @@ Finally we call the method TRestRun::FormOutputFile() through TRestManager to sa - + new readout plane configuration down to up view diff --git a/pipeline/readout/validation.txt b/pipeline/readout/validation.txt index dce26764..c612494d 100644 --- a/pipeline/readout/validation.txt +++ b/pipeline/readout/validation.txt @@ -1,2772 +1,2773 @@ -<<<<<<< HEAD -Processing PrintReadout.C("readout.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 : 2bac46ca -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 -+++++++++++++++++++++++++++++++++++++++++++++++++ -**************************************** + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  + || 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 : be8fac4f ||  + || REST Library version : 2.0 ||  + ----------------------------------------------------------------------------------------------------  + || Number of readout planes : 1 ||  + || Decoding was defined : YES ||  + ----------------------------------------------------------------------------------------------------  + || -- Readout plane : 0 ||  + ----------------------------------------------------------------------------------------------------  + || -- Position : X = 0 mm, Y : 0 mm, Z : 990 mm ||  + || -- Normal vector : X = 0 mm, Y : 0 mm, Z : -1 mm ||  + || -- X-axis vector : X = -1 mm, Y : 0 mm, Z : 0 mm ||  + || -- Y-axis vector : Y = 0 mm, Y : 1 mm, Z : 0 mm ||  + || -- Cathode Position : X = 0 mm, Y : 0 mm, Z : 0 mm ||  + || -- Total drift distance : 0 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 87f4cb3e9e754a9d63a95ed8c7be9bd35dcd02d7 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 7 Jun 2023 11:06:26 +0000 Subject: [PATCH 10/63] [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 c612494d..eb76588b 100644 --- a/pipeline/readout/validation.txt +++ b/pipeline/readout/validation.txt @@ -2770,4 +2770,3 @@  || Total pixels : 66 Channel type : NoType ||   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   ****************************************************************************************************  - From da5c4625c970bc207a0a303cd87bc9316a638437 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 7 Jun 2023 13:24:36 +0200 Subject: [PATCH 11/63] TRestDetectorReadout. X and Y plane axis are determined only by normal vector --- src/TRestDetectorReadout.cxx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index 39002ea8..f64e88a0 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -470,8 +470,16 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetPosition(Get3DVectorParameterWithUnits("position", planeDefinition)); plane.SetCathodePosition(Get3DVectorParameterWithUnits("cathodePosition", planeDefinition)); plane.SetNormal(StringTo3DVector(GetFieldValue("normal", planeDefinition))); - plane.SetAxisX(StringTo3DVector(GetFieldValue("axisX", planeDefinition))); - plane.SetAxisY(plane.GetAxisX().Cross(plane.GetNormal())); + + TVector3 reference = {1, 0, 0}; + TVector3 normal = plane.GetNormal(); + + TVector3 xAxis = reference.Cross(normal).Cross(normal); + TVector3 yAxis = normal.Cross(xAxis); + + plane.SetAxisX(xAxis); + plane.SetAxisY(yAxis); + plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition))); Double_t tDriftDistance = plane.GetDistanceTo(plane.GetCathodePosition()); From 6b01b086d3af53fca8d80c81556eba1611f3952e Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Thu, 8 Jun 2023 11:02:17 +0200 Subject: [PATCH 12/63] fix typos --- inc/TRestDetectorReadoutPlane.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index f8ba6d78..6dd375c5 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -50,10 +50,10 @@ class TRestDetectorReadoutPlane { /// An orthonormal to fAxisX contained in the plane. It is calculated internally TVector3 fAxisY = {0, 1, 0}; //! - /// The cathode position which delimites the active volume together with the readout plane. + /// The cathode position which delimits the active volume together with the readout plane. TVector3 fCathodePosition = {0, 0, 1}; //< - /// The fraction of charge/energy this readout plane collects from a hit postion. + /// The fraction of charge/energy this readout plane collects from a hit position. Double_t fChargeCollection = 1; //< /// The total drift distance defined between cathode and readout plane. It is calculated internally. From 507c96dbcff5224afe2446edbe2d0adf97f5bace Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Thu, 8 Jun 2023 11:04:58 +0200 Subject: [PATCH 13/63] remove fNModules field --- inc/TRestDetectorReadoutPlane.h | 8 +++----- src/TRestDetectorReadoutPlane.cxx | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 6dd375c5..2d2a94ae 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -59,9 +59,6 @@ class TRestDetectorReadoutPlane { /// The total drift distance defined between cathode and readout plane. It is calculated internally. Double_t fTotalDriftDistance = 0; //! - /// Keeps track of the number of modules that have been added to the readout plane - Int_t fNModules = 0; //< - ///< A list of TRestDetectorReadoutModule components contained in the readout plane. std::vector fReadoutModules; //< @@ -137,7 +134,9 @@ class TRestDetectorReadoutPlane { /// Returns a pointer to a readout module using its std::vector index TRestDetectorReadoutModule* GetModule(size_t mod) { - if (mod >= GetNumberOfModules()) return nullptr; + if (mod >= GetNumberOfModules()) { + return nullptr; + } return &fReadoutModules[mod]; } @@ -147,7 +146,6 @@ class TRestDetectorReadoutPlane { /// Adds a new module to the readout plane void AddModule(TRestDetectorReadoutModule& rModule) { fReadoutModules.push_back(rModule); - fNModules++; } /// Prints the readout plane description diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index c0ece654..8bf10e18 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -65,7 +65,6 @@ void TRestDetectorReadoutPlane::Initialize() { fPosition = TVector3(0, 0, 0); fNormal = TVector3(0, 0, 0); - fNModules = 0; fReadoutModules.clear(); } @@ -74,8 +73,9 @@ void TRestDetectorReadoutPlane::Initialize() { /// Int_t TRestDetectorReadoutPlane::GetNumberOfChannels() { Int_t nChannels = 0; - for (size_t md = 0; md < GetNumberOfModules(); md++) + for (size_t md = 0; md < GetNumberOfModules(); md++) { nChannels += fReadoutModules[md].GetNumberOfChannels(); + } return nChannels; } From 7fe541f5f20bb479b387225dae0c2ca14800bbe7 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Thu, 8 Jun 2023 11:05:33 +0200 Subject: [PATCH 14/63] fix typos --- src/TRestDetectorReadoutPlane.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 8bf10e18..ba71cc18 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -156,7 +156,7 @@ Double_t TRestDetectorReadoutPlane::GetX(Int_t modID, Int_t chID) { if (deltaY < deltaX) x = rModule->GetPixelCenter(chID, 0).X(); } } else { - // we choose to ouput x only when deltaY > deltaX under non-90 deg rotation + // we choose to output x only when deltaY > deltaX under non-90 deg rotation // otherwise it is a y channel and should return nan if (deltaY > deltaX) x = rModule->GetPixelCenter(chID, 0).X(); } @@ -226,7 +226,7 @@ Double_t TRestDetectorReadoutPlane::GetY(Int_t modID, Int_t chID) { if (deltaY > deltaX) y = rModule->GetPixelCenter(chID, 0).Y(); } } else { - // we choose to ouput y only when deltaY < deltaX under non-90 deg rotation + // we choose to output y only when deltaY < deltaX under non-90 deg rotation // otherwise it is a x channel and should return nan if (deltaY < deltaX) y = rModule->GetPixelCenter(chID, 0).Y(); } From 4f06a6ec6dfaa70bac5c15f56a8b3cf7ecd0b23e Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Thu, 8 Jun 2023 11:15:19 +0200 Subject: [PATCH 15/63] Using single parameter height instead of TVector3 cathode position --- inc/TRestDetectorReadoutPlane.h | 22 +++++---------- src/TRestDetectorReadout.cxx | 4 +-- src/TRestDetectorReadoutPlane.cxx | 45 +++++++++++++++++-------------- 3 files changed, 33 insertions(+), 38 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 2d2a94ae..a9ac45c9 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -50,14 +50,11 @@ class TRestDetectorReadoutPlane { /// An orthonormal to fAxisX contained in the plane. It is calculated internally TVector3 fAxisY = {0, 1, 0}; //! - /// The cathode position which delimits the active volume together with the readout plane. - TVector3 fCathodePosition = {0, 0, 1}; //< - /// The fraction of charge/energy this readout plane collects from a hit position. Double_t fChargeCollection = 1; //< /// The total drift distance defined between cathode and readout plane. It is calculated internally. - Double_t fTotalDriftDistance = 0; //! + Double_t fHeight = 0; //! ///< A list of TRestDetectorReadoutModule components contained in the readout plane. std::vector fReadoutModules; //< @@ -73,9 +70,6 @@ class TRestDetectorReadoutPlane { /// Sets the readout plane position void SetPosition(const TVector3& position) { fPosition = position; } - /// Sets the cathode plane position. By default is parallel to the readout plane. - void SetCathodePosition(const TVector3& position) { fCathodePosition = position; } - /// Sets the orientation of the readout plane, and defines the side of the active volume. void SetNormal(const TVector3& vect) { fNormal = vect.Unit(); } @@ -89,7 +83,7 @@ class TRestDetectorReadoutPlane { void SetChargeCollection(Double_t charge) { fChargeCollection = charge; } /// Sets the value for the total drift distance - void SetTotalDriftDistance(Double_t d) { fTotalDriftDistance = d; } + void SetHeight(Double_t); // Getters /// Returns an integer with the plane id number. @@ -99,7 +93,7 @@ class TRestDetectorReadoutPlane { inline TVector3 GetPosition() const { return fPosition; } /// Returns a TVector3 with the cathode position - inline TVector3 GetCathodePosition() const { return fCathodePosition; } + inline TVector3 GetCathodePosition() const { return fPosition + fNormal * fHeight; } /// Returns a TVector3 with a vector normal to the readout plane inline TVector3 GetNormal() const { return fNormal; } @@ -114,11 +108,11 @@ class TRestDetectorReadoutPlane { inline Double_t GetChargeCollection() const { return fChargeCollection; } /// Returns the total drift distance - inline Double_t GetTotalDriftDistance() const { return fTotalDriftDistance; } + inline Double_t GetHeight() const { return fHeight; } /// Returns the perpendicular distance to the readout plane from a given /// position *pos*. - Double_t GetDistanceTo(TVector3 position); + Double_t GetDistanceTo(const TVector3& position); /// Returns the perpendicular distance to the readout plane from a given /// position *x*, *y*, *z*. @@ -144,9 +138,7 @@ class TRestDetectorReadoutPlane { size_t GetNumberOfModules() { return fReadoutModules.size(); } /// Adds a new module to the readout plane - void AddModule(TRestDetectorReadoutModule& rModule) { - fReadoutModules.push_back(rModule); - } + void AddModule(TRestDetectorReadoutModule& rModule) { fReadoutModules.push_back(rModule); } /// Prints the readout plane description void PrintMetadata() { Print(); } @@ -165,8 +157,6 @@ class TRestDetectorReadoutPlane { Int_t GetModuleIDFromPosition(Double_t x, Double_t y, Double_t z); - void SetDriftDistance(); - void Draw(); void Print(Int_t DetailLevel = 0); diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index f64e88a0..7d65e37d 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -468,7 +468,7 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetID(GetNumberOfReadoutPlanes()); plane.SetPosition(Get3DVectorParameterWithUnits("position", planeDefinition)); - plane.SetCathodePosition(Get3DVectorParameterWithUnits("cathodePosition", planeDefinition)); + plane.SetHeight(GetDblParameterWithUnits("height", planeDefinition)); plane.SetNormal(StringTo3DVector(GetFieldValue("normal", planeDefinition))); TVector3 reference = {1, 0, 0}; @@ -483,7 +483,7 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition))); Double_t tDriftDistance = plane.GetDistanceTo(plane.GetCathodePosition()); - plane.SetTotalDriftDistance(tDriftDistance); + plane.SetHeight(tDriftDistance); #pragma region addReadoutModuleToPlane diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index ba71cc18..d5ccf821 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -61,9 +61,9 @@ TRestDetectorReadoutPlane::~TRestDetectorReadoutPlane() {} /// \brief TRestDetectorReadoutPlane initialization /// void TRestDetectorReadoutPlane::Initialize() { - fCathodePosition = TVector3(0, 0, 0); fPosition = TVector3(0, 0, 0); - fNormal = TVector3(0, 0, 0); + fNormal = TVector3(0, 0, 1); + fHeight = 0; fReadoutModules.clear(); } @@ -79,14 +79,6 @@ Int_t TRestDetectorReadoutPlane::GetNumberOfChannels() { return nChannels; } -/////////////////////////////////////////////// -/// \brief Calculates the drift distance between readout plane and cathode -/// -void TRestDetectorReadoutPlane::SetDriftDistance() { - Double_t tDriftDistance = this->GetDistanceTo(this->GetCathodePosition()); - this->SetTotalDriftDistance(tDriftDistance); -} - /////////////////////////////////////////////// /// \brief Returns a pointer to a module using its internal module id /// @@ -265,10 +257,17 @@ Double_t TRestDetectorReadoutPlane::GetDistanceTo(Double_t x, Double_t y, Double /// \brief Returns the perpendicular distance to the readout plane of a given /// TVector3 position /// -Double_t TRestDetectorReadoutPlane::GetDistanceTo(TVector3 pos) { +Double_t TRestDetectorReadoutPlane::GetDistanceTo(const TVector3& pos) { return (pos - GetPosition()).Dot(GetNormal()); } +void TRestDetectorReadoutPlane::SetHeight(Double_t height) { + if (height < 0) { + RESTError << "TRestDetectorReadoutPlane::SetHeight : height cannot be negative." << RESTendl; + exit(1); + } + fHeight = height; +} /////////////////////////////////////////////// /// \brief This method determines if a given position in *z* is inside the drift /// volume drifting distance for this readout plane. @@ -310,7 +309,7 @@ Int_t TRestDetectorReadoutPlane::isZInsideDriftVolume(const TVector3& position) Double_t distance = GetDistanceTo(posNew); - if (distance > 0 && distance < fTotalDriftDistance) return 1; + if (distance > 0 && distance < fHeight) return 1; return 0; } @@ -347,9 +346,12 @@ Int_t TRestDetectorReadoutPlane::GetModuleIDFromPosition(TVector3 pos) { Double_t distance = GetDistanceTo(posNew); - if (distance > 0 && distance < fTotalDriftDistance) { - for (size_t m = 0; m < GetNumberOfModules(); m++) - if (fReadoutModules[m].isInside(posNew.X(), posNew.Y())) return fReadoutModules[m].GetModuleID(); + if (distance > 0 && distance < fHeight) { + for (size_t m = 0; m < GetNumberOfModules(); m++) { + if (fReadoutModules[m].isInside(posNew.X(), posNew.Y())) { + return fReadoutModules[m].GetModuleID(); + } + } } return -1; @@ -371,16 +373,19 @@ void TRestDetectorReadoutPlane::Print(Int_t DetailLevel) { << " Y : " << fAxisX.Y() << " mm, Z : " << fAxisX.Z() << " mm" << RESTendl; RESTMetadata << "-- Y-axis vector : Y = " << fAxisY.X() << " mm, " << " Y : " << fAxisY.Y() << " mm, Z : " << fAxisY.Z() << " mm" << RESTendl; - RESTMetadata << "-- Cathode Position : X = " << fCathodePosition.X() << " mm, " - << " Y : " << fCathodePosition.Y() << " mm, Z : " << fCathodePosition.Z() << " mm" + const TVector3 cathodePosition = GetCathodePosition(); + RESTMetadata << "-- Cathode Position : X = " << cathodePosition.X() << " mm, " + << " Y : " << cathodePosition.Y() << " mm, Z : " << cathodePosition.Z() << " mm" << RESTendl; - RESTMetadata << "-- Total drift distance : " << fTotalDriftDistance << " mm" << RESTendl; + RESTMetadata << "-- Total drift distance : " << fHeight << " mm" << RESTendl; RESTMetadata << "-- Charge collection : " << fChargeCollection << RESTendl; RESTMetadata << "-- Total modules : " << GetNumberOfModules() << RESTendl; RESTMetadata << "-- Total channels : " << GetNumberOfChannels() << RESTendl; RESTMetadata << "----------------------------------------------------------------" << RESTendl; - for (size_t i = 0; i < GetNumberOfModules(); i++) fReadoutModules[i].Print(DetailLevel - 1); + for (size_t i = 0; i < GetNumberOfModules(); i++) { + fReadoutModules[i].Print(DetailLevel - 1); + } } } @@ -390,7 +395,7 @@ void TRestDetectorReadoutPlane::Print(Int_t DetailLevel) { void TRestDetectorReadoutPlane::Draw() { this->GetReadoutHistogram()->Draw(); } /////////////////////////////////////////////// -/// \brief Creates and resturns a TH2Poly object with the +/// \brief Creates and returns a TH2Poly object with the /// readout pixel description. /// TH2Poly* TRestDetectorReadoutPlane::GetReadoutHistogram() { From af6b85f4a36810cb2a2e3d3e732ce332b0b73eae Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Thu, 8 Jun 2023 11:18:20 +0200 Subject: [PATCH 16/63] simplified initialization --- src/TRestDetectorReadout.cxx | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index 7d65e37d..2a9c9c4d 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -471,20 +471,17 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetHeight(GetDblParameterWithUnits("height", planeDefinition)); plane.SetNormal(StringTo3DVector(GetFieldValue("normal", planeDefinition))); - TVector3 reference = {1, 0, 0}; - TVector3 normal = plane.GetNormal(); + const TVector3 reference = {1, 0, 0}; + const TVector3& normal = plane.GetNormal(); - TVector3 xAxis = reference.Cross(normal).Cross(normal); - TVector3 yAxis = normal.Cross(xAxis); + const TVector3 xAxis = reference.Cross(normal).Cross(normal); + const TVector3 yAxis = normal.Cross(xAxis); plane.SetAxisX(xAxis); plane.SetAxisY(yAxis); plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition))); - Double_t tDriftDistance = plane.GetDistanceTo(plane.GetCathodePosition()); - plane.SetHeight(tDriftDistance); - #pragma region addReadoutModuleToPlane moduleVector.clear(); @@ -510,12 +507,12 @@ void TRestDetectorReadout::InitFromConfigFile() { if (firstDaqChannel == -1) firstDaqChannel = addedChannels; std::string decodingFile = GetFieldValue("decodingFile", moduleDefinition); - if (decodingFile == "Not defined" || decodingFile == "" || RESTREADOUT_DECODINGFILE_ERROR) + if (decodingFile == "Not defined" || decodingFile.empty() || RESTREADOUT_DECODINGFILE_ERROR) fDecoding = false; else fDecoding = true; - if (fDecoding && !TRestTools::fileExists(decodingFile.c_str())) { + if (fDecoding && !TRestTools::fileExists(decodingFile)) { RESTWarning << "The decoding file does not exist!" << RESTendl; RESTWarning << "--------------------------------" << RESTendl; RESTWarning << "File : " << decodingFile << RESTendl; @@ -532,7 +529,7 @@ void TRestDetectorReadout::InitFromConfigFile() { std::vector rChannel; std::vector dChannel; - if (fDecoding && TRestTools::fileExists(decodingFile.c_str())) { + if (fDecoding && TRestTools::fileExists(decodingFile)) { FILE* f = fopen(decodingFile.c_str(), "r"); Int_t daq, readout; From 036872794ccb20f70157e7ee9d369b540e1a510a Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Thu, 8 Jun 2023 11:20:29 +0200 Subject: [PATCH 17/63] remove #pragma region (local IDE settings should not be committed) --- src/TRestDetectorReadout.cxx | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index 2a9c9c4d..421d42a3 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -443,7 +443,6 @@ void TRestDetectorReadout::AddReadoutPlane(TRestDetectorReadoutPlane plane) { void TRestDetectorReadout::InitFromConfigFile() { fMappingNodes = StringToInteger(GetParameter("mappingNodes", "0")); -#pragma region ParseModuledefinition TiXmlElement* moduleDefinition = GetElement("readoutModule"); while (moduleDefinition != nullptr) { if (GetVerboseLevel() >= TRestStringOutput::REST_Verbose_Level::REST_Debug) { @@ -458,7 +457,6 @@ void TRestDetectorReadout::InitFromConfigFile() { fModuleDefinitions.push_back(module); moduleDefinition = GetNextElement(moduleDefinition); } -#pragma endregion TiXmlElement* planeDefinition = GetElement("readoutPlane"); std::vector moduleVector; @@ -482,8 +480,6 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition))); -#pragma region addReadoutModuleToPlane - moduleVector.clear(); TiXmlElement* moduleDefinition = GetElement("addReadoutModule", planeDefinition); while (moduleDefinition != nullptr) { @@ -501,8 +497,6 @@ void TRestDetectorReadout::InitFromConfigFile() { fModuleDefinitions[mid].SetOrigin(StringTo2DVector(GetFieldValue("origin", moduleDefinition))); fModuleDefinitions[mid].SetRotation(StringToDouble(GetFieldValue("rotation", moduleDefinition))); -#pragma region SetupDecodingFile - Int_t firstDaqChannel = StringToInteger(GetFieldValue("firstDaqChannel", moduleDefinition)); if (firstDaqChannel == -1) firstDaqChannel = addedChannels; @@ -581,7 +575,6 @@ void TRestDetectorReadout::InitFromConfigFile() { fModuleDefinitions[mid].GetChannel(rChannel[ch])->SetDaqID(dChannel[ch]); fModuleDefinitions[mid].GetChannel(rChannel[ch])->SetChannelID(rChannel[ch]); -#pragma endregion addedChannels++; } fModuleDefinitions[mid].SetMinMaxDaqIDs(); @@ -596,18 +589,9 @@ void TRestDetectorReadout::InitFromConfigFile() { // missing numbers in a multi-module readout plane. Modules can have their // special "id", e.g. M0, M2, M3, M4 in SJTU proto. We don't have M1 - for (Int_t i(0); i < (Int_t)moduleVector.size(); i++) { - plane.AddModule(moduleVector[i]); - // for ( Int_t j(0); j< (Int_t) moduleVector.size(); j++) - //{ - // if ( moduleVector[j].GetModuleID() == i ) - // { - // - // break; - // } - //} + for (auto& i : moduleVector) { + plane.AddModule(i); } -#pragma endregion this->AddReadoutPlane(plane); planeDefinition = GetNextElement(planeDefinition); @@ -627,7 +611,6 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle Double_t pixelTolerance = StringToDouble(GetFieldValue("pixelTolerance", moduleDefinition)); if (pixelTolerance == -1) pixelTolerance = 1.e-6; -#pragma region addChannel std::vector channelVector; std::vector channelIDVector; TiXmlElement* channelDefinition = GetElement("readoutChannel", moduleDefinition); @@ -638,7 +621,6 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle if (id != -1) channelIDVector.push_back(id); channel.SetDaqID(-1); -#pragma region addPixel std::vector pixelVector; std::vector pixelIDVector; TiXmlElement* pixelDefinition = GetElement("addPixel", channelDefinition); @@ -683,7 +665,6 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle << RESTendl; exit(0); } -#pragma endregion channelVector.push_back(channel); channelDefinition = GetNextElement(channelDefinition); @@ -719,7 +700,6 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle exit(0); } -#pragma endregion return mod; } From 2af0c738ccb1ba000951492651dac1217f77932d Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Thu, 8 Jun 2023 13:15:33 +0200 Subject: [PATCH 18/63] TRestDetectorReadout. Changing the sign of x-axis --- src/TRestDetectorReadout.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index f64e88a0..ecf59b51 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -474,8 +474,8 @@ void TRestDetectorReadout::InitFromConfigFile() { TVector3 reference = {1, 0, 0}; TVector3 normal = plane.GetNormal(); - TVector3 xAxis = reference.Cross(normal).Cross(normal); - TVector3 yAxis = normal.Cross(xAxis); + TVector3 xAxis = normal.Cross(reference.Cross(normal)); + TVector3 yAxis = xAxis.Cross(normal); plane.SetAxisX(xAxis); plane.SetAxisY(yAxis); From 7a05e4e3447a3996ed2d70f4d17341686d545a1f Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Thu, 8 Jun 2023 17:46:44 +0200 Subject: [PATCH 19/63] Readout updates --- inc/TRestDetectorReadoutPlane.h | 51 ++++++++++------------------ pipeline/readout/generateReadout.rml | 2 +- src/TRestDetectorReadout.cxx | 31 ++++++++--------- src/TRestDetectorReadoutPlane.cxx | 35 ++++++++++--------- 4 files changed, 49 insertions(+), 70 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index f8ba6d78..591cc87e 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -44,23 +44,17 @@ class TRestDetectorReadoutPlane { /// A vector that defines the plane orientation and the side of the active volume. TVector3 fNormal = {0, 0, 1}; //< - /// A vector contained in the plane that defines the plane local reference system + /// A vector contained in the plane that defines the plane local reference system. Calculated internally. TVector3 fAxisX = {1, 0, 0}; //< - /// An orthonormal to fAxisX contained in the plane. It is calculated internally - TVector3 fAxisY = {0, 1, 0}; //! - - /// The cathode position which delimites the active volume together with the readout plane. - TVector3 fCathodePosition = {0, 0, 1}; //< + /// An orthonormal to fAxisX contained in the plane. Calculated internally. + TVector3 fAxisY = {0, 1, 0}; //< /// The fraction of charge/energy this readout plane collects from a hit postion. Double_t fChargeCollection = 1; //< - /// The total drift distance defined between cathode and readout plane. It is calculated internally. - Double_t fTotalDriftDistance = 0; //! - - /// Keeps track of the number of modules that have been added to the readout plane - Int_t fNModules = 0; //< + /// A length in mm that confers a 3rd dimension to the readout plane and defines a volume. + Double_t fHeight = 0; //< ///< A list of TRestDetectorReadoutModule components contained in the readout plane. std::vector fReadoutModules; //< @@ -76,23 +70,14 @@ class TRestDetectorReadoutPlane { /// Sets the readout plane position void SetPosition(const TVector3& position) { fPosition = position; } - /// Sets the cathode plane position. By default is parallel to the readout plane. - void SetCathodePosition(const TVector3& position) { fCathodePosition = position; } - /// Sets the orientation of the readout plane, and defines the side of the active volume. - void SetNormal(const TVector3& vect) { fNormal = vect.Unit(); } - - /// Sets the vector contained in the plane that defines the internal X-axis - void SetAxisX(const TVector3& vect) { fAxisX = vect.Unit(); } - - /// Sets the vector contained in the plane that defines the internal Y-axis - void SetAxisY(const TVector3& vect) { fAxisY = vect.Unit(); } + void SetNormal(const TVector3& vect); /// Sets the value for the charge collection. void SetChargeCollection(Double_t charge) { fChargeCollection = charge; } /// Sets the value for the total drift distance - void SetTotalDriftDistance(Double_t d) { fTotalDriftDistance = d; } + void SetHeight(Double_t d) { fHeight = d; } // Getters /// Returns an integer with the plane id number. @@ -102,7 +87,7 @@ class TRestDetectorReadoutPlane { inline TVector3 GetPosition() const { return fPosition; } /// Returns a TVector3 with the cathode position - inline TVector3 GetCathodePosition() const { return fCathodePosition; } + inline TVector3 GetCathodePosition() const { return fPosition + fHeight * fNormal; } /// Returns a TVector3 with a vector normal to the readout plane inline TVector3 GetNormal() const { return fNormal; } @@ -116,15 +101,16 @@ class TRestDetectorReadoutPlane { /// Returns the charge collection ratio at this readout plane inline Double_t GetChargeCollection() const { return fChargeCollection; } - /// Returns the total drift distance - inline Double_t GetTotalDriftDistance() const { return fTotalDriftDistance; } + /// Returns the total drift distance. Equivalent to the height of the readout volume. + inline Double_t GetDriftDistance() const { return fHeight; } + + /// Returns the height of the readout volume. + inline Double_t GetHeight() const { return fHeight; } - /// Returns the perpendicular distance to the readout plane from a given - /// position *pos*. + /// Returns the perpendicular distance to the readout plane from a given position *pos*. Double_t GetDistanceTo(TVector3 position); - /// Returns the perpendicular distance to the readout plane from a given - /// position *x*, *y*, *z*. + /// Returns the perpendicular distance to the readout plane from a given position *x*, *y*, *z*. Double_t GetDistanceTo(Double_t x, Double_t y, Double_t z); /// Returns a TVector2 oriented as the shortest distance of a given position @@ -145,10 +131,7 @@ class TRestDetectorReadoutPlane { size_t GetNumberOfModules() { return fReadoutModules.size(); } /// Adds a new module to the readout plane - void AddModule(TRestDetectorReadoutModule& rModule) { - fReadoutModules.push_back(rModule); - fNModules++; - } + void AddModule(TRestDetectorReadoutModule& rModule) { fReadoutModules.push_back(rModule); } /// Prints the readout plane description void PrintMetadata() { Print(); } @@ -186,6 +169,6 @@ class TRestDetectorReadoutPlane { // Destructor virtual ~TRestDetectorReadoutPlane(); - ClassDef(TRestDetectorReadoutPlane, 3); + ClassDef(TRestDetectorReadoutPlane, 4); }; #endif diff --git a/pipeline/readout/generateReadout.rml b/pipeline/readout/generateReadout.rml index 86fff864..77d9e5e5 100644 --- a/pipeline/readout/generateReadout.rml +++ b/pipeline/readout/generateReadout.rml @@ -30,7 +30,7 @@ Finally we call the method TRestRun::FormOutputFile() through TRestManager to sa - + new readout plane configuration down to up view diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index ecf59b51..4d1562d1 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -401,6 +401,9 @@ TRestDetectorReadoutModule* TRestDetectorReadout::GetReadoutModuleWithID(int id) return nullptr; } +/////////////////////////////////////////////// +/// \brief Returns a pointer to the readout channel by daq id +/// TRestDetectorReadoutChannel* TRestDetectorReadout::GetReadoutChannelWithDaqID(int daqId) { int planeID = -1, moduleID = -1, channelID = -1; @@ -468,23 +471,10 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetID(GetNumberOfReadoutPlanes()); plane.SetPosition(Get3DVectorParameterWithUnits("position", planeDefinition)); - plane.SetCathodePosition(Get3DVectorParameterWithUnits("cathodePosition", planeDefinition)); - plane.SetNormal(StringTo3DVector(GetFieldValue("normal", planeDefinition))); - - TVector3 reference = {1, 0, 0}; - TVector3 normal = plane.GetNormal(); - - TVector3 xAxis = normal.Cross(reference.Cross(normal)); - TVector3 yAxis = xAxis.Cross(normal); - - plane.SetAxisX(xAxis); - plane.SetAxisY(yAxis); - + plane.SetNormal(Get3DVectorParameterWithUnits("normal", planeDefinition)); + plane.SetHeight(GetDblParameterWithUnits("height", planeDefinition)); plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition))); - Double_t tDriftDistance = plane.GetDistanceTo(plane.GetCathodePosition()); - plane.SetTotalDriftDistance(tDriftDistance); - #pragma region addReadoutModuleToPlane moduleVector.clear(); @@ -816,25 +806,32 @@ Int_t TRestDetectorReadout::GetHitsDaqChannelAtReadoutPlane(const TVector3& hitp return -1; } +/////////////////////////////////////////////// +/// \brief It returns the physical X-coordinate corresponding to +/// a given signal id in plane coordinates. +/// Double_t TRestDetectorReadout::GetX(Int_t signalID) { Int_t planeID, readoutChannel = -1, readoutModule; GetPlaneModuleChannel(signalID, planeID, readoutModule, readoutChannel); if (readoutChannel == -1) { - // 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); } +/////////////////////////////////////////////// +/// \brief It returns the physical Y-coordinate corresponding to +/// a given signal id in plane coordinates. +/// Double_t TRestDetectorReadout::GetY(Int_t signalID) { Int_t planeID, readoutChannel = -1, readoutModule; GetPlaneModuleChannel(signalID, planeID, readoutModule, readoutChannel); if (readoutChannel == -1) { - // 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); } + /////////////////////////////////////////////// /// \brief It returns the x-coordinate for the given readout /// plane, *plane*, a given module, *modID*, and a given diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index c0ece654..b88c5e01 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -60,14 +60,7 @@ TRestDetectorReadoutPlane::~TRestDetectorReadoutPlane() {} /////////////////////////////////////////////// /// \brief TRestDetectorReadoutPlane initialization /// -void TRestDetectorReadoutPlane::Initialize() { - fCathodePosition = TVector3(0, 0, 0); - fPosition = TVector3(0, 0, 0); - fNormal = TVector3(0, 0, 0); - - fNModules = 0; - fReadoutModules.clear(); -} +void TRestDetectorReadoutPlane::Initialize() {} /////////////////////////////////////////////// /// \brief Returns the total number of channels in the readout plane @@ -80,11 +73,17 @@ Int_t TRestDetectorReadoutPlane::GetNumberOfChannels() { } /////////////////////////////////////////////// -/// \brief Calculates the drift distance between readout plane and cathode +/// \brief It updates the value of the normal vector and recalculates +/// the correspoding X and Y axis. /// -void TRestDetectorReadoutPlane::SetDriftDistance() { - Double_t tDriftDistance = this->GetDistanceTo(this->GetCathodePosition()); - this->SetTotalDriftDistance(tDriftDistance); +void TRestDetectorReadoutPlane::SetNormal(const TVector3& vect) { + fNormal = vect; + TVector3 reference = {1, 0, 0}; + const TVector3& normal = GetNormal(); + if (normal == TVector3(1, 0, 0)) reference = {0, 1, 0}; + + fAxisX = reference.Cross(normal).Cross(normal); + fAxisY = normal.Cross(fAxisX); } /////////////////////////////////////////////// @@ -310,7 +309,7 @@ Int_t TRestDetectorReadoutPlane::isZInsideDriftVolume(const TVector3& position) Double_t distance = GetDistanceTo(posNew); - if (distance > 0 && distance < fTotalDriftDistance) return 1; + if (distance > 0 && distance < fHeight) return 1; return 0; } @@ -347,7 +346,7 @@ Int_t TRestDetectorReadoutPlane::GetModuleIDFromPosition(TVector3 pos) { Double_t distance = GetDistanceTo(posNew); - if (distance > 0 && distance < fTotalDriftDistance) { + if (distance > 0 && distance < fHeight) { for (size_t m = 0; m < GetNumberOfModules(); m++) if (fReadoutModules[m].isInside(posNew.X(), posNew.Y())) return fReadoutModules[m].GetModuleID(); } @@ -371,10 +370,10 @@ void TRestDetectorReadoutPlane::Print(Int_t DetailLevel) { << " Y : " << fAxisX.Y() << " mm, Z : " << fAxisX.Z() << " mm" << RESTendl; RESTMetadata << "-- Y-axis vector : Y = " << fAxisY.X() << " mm, " << " Y : " << fAxisY.Y() << " mm, Z : " << fAxisY.Z() << " mm" << RESTendl; - RESTMetadata << "-- Cathode Position : X = " << fCathodePosition.X() << " mm, " - << " Y : " << fCathodePosition.Y() << " mm, Z : " << fCathodePosition.Z() << " mm" - << RESTendl; - RESTMetadata << "-- Total drift distance : " << fTotalDriftDistance << " mm" << RESTendl; + RESTMetadata << "-- Cathode Position : X = " << GetCathodePosition().X() << " mm, " + << " Y : " << GetCathodePosition().Y() << " mm, Z : " << GetCathodePosition().Z() + << " mm" << RESTendl; + RESTMetadata << "-- Height : " << fHeight << " mm" << RESTendl; RESTMetadata << "-- Charge collection : " << fChargeCollection << RESTendl; RESTMetadata << "-- Total modules : " << GetNumberOfModules() << RESTendl; RESTMetadata << "-- Total channels : " << GetNumberOfChannels() << RESTendl; From d1482dd37e1ab8e7fa5f5a8341a728a3d821722c Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Thu, 8 Jun 2023 18:01:34 +0200 Subject: [PATCH 20/63] Fixing compilation issues --- inc/TRestDetectorReadoutPlane.h | 6 ++---- src/TRestDetectorReadoutPlane.cxx | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index d822a103..6626d6d8 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -70,14 +70,12 @@ class TRestDetectorReadoutPlane { /// Sets the readout plane position void SetPosition(const TVector3& position) { fPosition = position; } - /// Sets the orientation of the readout plane, and defines the side of the active volume. void SetNormal(const TVector3& vect); /// Sets the value for the charge collection. void SetChargeCollection(Double_t charge) { fChargeCollection = charge; } - /// Sets the value for the total drift distance - void SetHeight(Double_t d) { fHeight = d; } + void SetHeight(Double_t d); // Getters /// Returns an integer with the plane id number. @@ -108,7 +106,7 @@ class TRestDetectorReadoutPlane { inline Double_t GetHeight() const { return fHeight; } /// Returns the perpendicular distance to the readout plane from a given position *pos*. - Double_t GetDistanceTo(TVector3 position); + Double_t GetDistanceTo(const TVector3& pos); /// Returns the perpendicular distance to the readout plane from a given position *x*, *y*, *z*. Double_t GetDistanceTo(Double_t x, Double_t y, Double_t z); diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index b9c7a3d6..18208207 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -87,6 +87,19 @@ void TRestDetectorReadoutPlane::SetNormal(const TVector3& vect) { fAxisY = normal.Cross(fAxisX); } +/////////////////////////////////////////////// +/// \brief Used to define the height of the readout volume with sign crosscheck. +/// +void TRestDetectorReadoutPlane::SetHeight(Double_t height) { + if (height < 0) { + RESTError << "TRestDetectorReadoutPlane::SetHeight : height cannot be negative." << RESTendl; + RESTError << "Setting height equal to zero!" << RESTendl; + fHeight = 0; + } else { + fHeight = height; + } +} + /////////////////////////////////////////////// /// \brief Returns a pointer to a module using its internal module id /// @@ -269,13 +282,6 @@ Double_t TRestDetectorReadoutPlane::GetDistanceTo(const TVector3& pos) { return (pos - GetPosition()).Dot(GetNormal()); } -void TRestDetectorReadoutPlane::SetHeight(Double_t height) { - if (height < 0) { - RESTError << "TRestDetectorReadoutPlane::SetHeight : height cannot be negative." << RESTendl; - exit(1); - } - fHeight = height; -} /////////////////////////////////////////////// /// \brief This method determines if a given position in *z* is inside the drift /// volume drifting distance for this readout plane. From 00ce0c5a7dccea3e399a7b6907ac8ff5c04409a7 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Thu, 8 Jun 2023 22:15:56 +0200 Subject: [PATCH 21/63] compareFiles.py now validates only numeric values --- pipeline/readout/compareFiles.py | 9 ++++++++- pipeline/readout/validation.txt | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pipeline/readout/compareFiles.py b/pipeline/readout/compareFiles.py index c0f584dd..e5f58c75 100644 --- a/pipeline/readout/compareFiles.py +++ b/pipeline/readout/compareFiles.py @@ -26,7 +26,14 @@ maxN = 2700 n = 0 for line in file_1_text: - if line.rstrip() != file_2_text[n].rstrip(): + # We compare only numeric values + numeric_filter_1 = filter(str.isdigit, line.rstrip()) + numeric_string_1 = "".join(numeric_filter_1) + + numeric_filter_2 = filter(str.isdigit, file_2_text[n].rstrip()) + numeric_string_2 = "".join(numeric_filter_2) + + if numeric_string_1 != numeric_string_2: print("XX:" + line.rstrip()) print("YY:" + file_2_text[n].rstrip()) result = 1 diff --git a/pipeline/readout/validation.txt b/pipeline/readout/validation.txt index eb76588b..629771b5 100644 --- a/pipeline/readout/validation.txt +++ b/pipeline/readout/validation.txt @@ -20,7 +20,7 @@  || -- X-axis vector : X = -1 mm, Y : 0 mm, Z : 0 mm ||   || -- Y-axis vector : Y = 0 mm, Y : 1 mm, Z : 0 mm ||   || -- Cathode Position : X = 0 mm, Y : 0 mm, Z : 0 mm ||  - || -- Total drift distance : 0 mm ||  + || -- Total drift distance : 990 mm ||   || -- Charge collection : 1 ||   || -- Total modules : 7 ||   || -- Total channels : 896 ||  From 536b3e372e0049cc17780d6485db421ad33bb1a8 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Thu, 8 Jun 2023 22:45:03 +0200 Subject: [PATCH 22/63] compareFiles.py adding debug output --- pipeline/readout/compareFiles.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pipeline/readout/compareFiles.py b/pipeline/readout/compareFiles.py index e5f58c75..591ee248 100644 --- a/pipeline/readout/compareFiles.py +++ b/pipeline/readout/compareFiles.py @@ -33,7 +33,10 @@ numeric_filter_2 = filter(str.isdigit, file_2_text[n].rstrip()) numeric_string_2 = "".join(numeric_filter_2) + if numeric_string_1 != numeric_string_2: + print( "xx:" + numeric_string_1 ) + print( "yy:" + numeric_string_2 ) print("XX:" + line.rstrip()) print("YY:" + file_2_text[n].rstrip()) result = 1 From 84ab6ecb6de663644d9c3e3f06f3df7d0799d67b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 8 Jun 2023 20:45:18 +0000 Subject: [PATCH 23/63] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pipeline/readout/compareFiles.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pipeline/readout/compareFiles.py b/pipeline/readout/compareFiles.py index 591ee248..3ddf9546 100644 --- a/pipeline/readout/compareFiles.py +++ b/pipeline/readout/compareFiles.py @@ -33,10 +33,9 @@ numeric_filter_2 = filter(str.isdigit, file_2_text[n].rstrip()) numeric_string_2 = "".join(numeric_filter_2) - if numeric_string_1 != numeric_string_2: - print( "xx:" + numeric_string_1 ) - print( "yy:" + numeric_string_2 ) + print("xx:" + numeric_string_1) + print("yy:" + numeric_string_2) print("XX:" + line.rstrip()) print("YY:" + file_2_text[n].rstrip()) result = 1 From 131ee1ed61b9a882d1a1fb36fb2c93bb0519242d Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Thu, 8 Jun 2023 23:04:56 +0200 Subject: [PATCH 24/63] compareFiles.py removing color codes --- pipeline/readout/compareFiles.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pipeline/readout/compareFiles.py b/pipeline/readout/compareFiles.py index 591ee248..1bae793c 100644 --- a/pipeline/readout/compareFiles.py +++ b/pipeline/readout/compareFiles.py @@ -30,9 +30,18 @@ numeric_filter_1 = filter(str.isdigit, line.rstrip()) numeric_string_1 = "".join(numeric_filter_1) + if( numeric_string_1.find("132")): + # removing color codes + numeric_string_1 = numeric_string_1[3:len(numeric_string_1)-1] + + numeric_filter_2 = filter(str.isdigit, file_2_text[n].rstrip()) numeric_string_2 = "".join(numeric_filter_2) + if( numeric_string_2.find("132")): + # removing color codes + numeric_string_2 = numeric_string_2[3:len(numeric_string_2)-1] + if numeric_string_1 != numeric_string_2: print( "xx:" + numeric_string_1 ) From 5c30eee058a9b5ad0208729d184d2a062873114e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 8 Jun 2023 21:06:04 +0000 Subject: [PATCH 25/63] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pipeline/readout/compareFiles.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pipeline/readout/compareFiles.py b/pipeline/readout/compareFiles.py index 0bdf0d99..f70695ce 100644 --- a/pipeline/readout/compareFiles.py +++ b/pipeline/readout/compareFiles.py @@ -30,17 +30,16 @@ numeric_filter_1 = filter(str.isdigit, line.rstrip()) numeric_string_1 = "".join(numeric_filter_1) - if( numeric_string_1.find("132")): + if numeric_string_1.find("132"): # removing color codes - numeric_string_1 = numeric_string_1[3:len(numeric_string_1)-1] - + numeric_string_1 = numeric_string_1[3 : len(numeric_string_1) - 1] numeric_filter_2 = filter(str.isdigit, file_2_text[n].rstrip()) numeric_string_2 = "".join(numeric_filter_2) - if( numeric_string_2.find("132")): + if numeric_string_2.find("132"): # removing color codes - numeric_string_2 = numeric_string_2[3:len(numeric_string_2)-1] + numeric_string_2 = numeric_string_2[3 : len(numeric_string_2) - 1] if numeric_string_1 != numeric_string_2: print("xx:" + numeric_string_1) From e998e633f3af49032d76d972cd707aa2104f34fb Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Thu, 8 Jun 2023 23:19:03 +0200 Subject: [PATCH 26/63] compareFiles.py fixing typo --- pipeline/readout/compareFiles.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pipeline/readout/compareFiles.py b/pipeline/readout/compareFiles.py index 0bdf0d99..1159ad5a 100644 --- a/pipeline/readout/compareFiles.py +++ b/pipeline/readout/compareFiles.py @@ -30,7 +30,7 @@ numeric_filter_1 = filter(str.isdigit, line.rstrip()) numeric_string_1 = "".join(numeric_filter_1) - if( numeric_string_1.find("132")): + if( numeric_string_1.find("132") == 0): # removing color codes numeric_string_1 = numeric_string_1[3:len(numeric_string_1)-1] @@ -38,7 +38,7 @@ numeric_filter_2 = filter(str.isdigit, file_2_text[n].rstrip()) numeric_string_2 = "".join(numeric_filter_2) - if( numeric_string_2.find("132")): + if( numeric_string_2.find("132") == 0): # removing color codes numeric_string_2 = numeric_string_2[3:len(numeric_string_2)-1] From c50db37becf25fe229d13330b6856ca4d495a4d4 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 8 Jun 2023 21:20:35 +0000 Subject: [PATCH 27/63] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pipeline/readout/compareFiles.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pipeline/readout/compareFiles.py b/pipeline/readout/compareFiles.py index 47f8e1ce..944556de 100644 --- a/pipeline/readout/compareFiles.py +++ b/pipeline/readout/compareFiles.py @@ -30,14 +30,14 @@ numeric_filter_1 = filter(str.isdigit, line.rstrip()) numeric_string_1 = "".join(numeric_filter_1) - if( numeric_string_1.find("132") == 0): + if numeric_string_1.find("132") == 0: # removing color codes numeric_string_1 = numeric_string_1[3 : len(numeric_string_1) - 1] numeric_filter_2 = filter(str.isdigit, file_2_text[n].rstrip()) numeric_string_2 = "".join(numeric_filter_2) - if( numeric_string_2.find("132") == 0): + if numeric_string_2.find("132") == 0: # removing color codes numeric_string_2 = numeric_string_2[3 : len(numeric_string_2) - 1] From 7d41f20d883957d6221e9d74b1c4a51cede81225 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Thu, 8 Jun 2023 23:36:29 +0200 Subject: [PATCH 28/63] updating compareFiles.py --- pipeline/readout/compareFiles.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pipeline/readout/compareFiles.py b/pipeline/readout/compareFiles.py index 47f8e1ce..4752fd43 100644 --- a/pipeline/readout/compareFiles.py +++ b/pipeline/readout/compareFiles.py @@ -30,14 +30,14 @@ numeric_filter_1 = filter(str.isdigit, line.rstrip()) numeric_string_1 = "".join(numeric_filter_1) - if( numeric_string_1.find("132") == 0): + if( "[32m" in line): # removing color codes numeric_string_1 = numeric_string_1[3 : len(numeric_string_1) - 1] numeric_filter_2 = filter(str.isdigit, file_2_text[n].rstrip()) numeric_string_2 = "".join(numeric_filter_2) - if( numeric_string_2.find("132") == 0): + if( "[32m" in file_2_text[n].rstrip() ): # removing color codes numeric_string_2 = numeric_string_2[3 : len(numeric_string_2) - 1] From 33e2a74733f6f48ef6bb5880a219cbbf1670d8fc Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 8 Jun 2023 21:38:06 +0000 Subject: [PATCH 29/63] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pipeline/readout/compareFiles.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pipeline/readout/compareFiles.py b/pipeline/readout/compareFiles.py index 4752fd43..13d95823 100644 --- a/pipeline/readout/compareFiles.py +++ b/pipeline/readout/compareFiles.py @@ -30,14 +30,14 @@ numeric_filter_1 = filter(str.isdigit, line.rstrip()) numeric_string_1 = "".join(numeric_filter_1) - if( "[32m" in line): + if "[32m" in line: # removing color codes numeric_string_1 = numeric_string_1[3 : len(numeric_string_1) - 1] numeric_filter_2 = filter(str.isdigit, file_2_text[n].rstrip()) numeric_string_2 = "".join(numeric_filter_2) - if( "[32m" in file_2_text[n].rstrip() ): + if "[32m" in file_2_text[n].rstrip(): # removing color codes numeric_string_2 = numeric_string_2[3 : len(numeric_string_2) - 1] From f0628932c80ba088e26625b44189c754847e0eaa Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Thu, 8 Jun 2023 23:55:17 +0200 Subject: [PATCH 30/63] Updating pr-badge.yml --- .github/pr-badge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pr-badge.yml b/.github/pr-badge.yml index 2fbd97cd..2a76b5d6 100644 --- a/.github/pr-badge.yml +++ b/.github/pr-badge.yml @@ -13,5 +13,5 @@ message: "Ok: $additions" color: "green" when: "$additions < 100" -- imageUrl: "https://github.com/rest-for-physics/detectorlib/actions/workflows/validation.yml/badge.svg?branch=$branchName" +- imageUrl: "https://github.com/rest-for-physics/detectorlib/actions/workflows/frameworkValidation.yml/badge.svg?branch=$branchName" url: "https://github.com/rest-for-physics/detectorlib/commits/$branchName" From 318ad25cb501a2d4d290d85984012e4b3c241be1 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Fri, 9 Jun 2023 00:56:37 +0200 Subject: [PATCH 31/63] Updating pipeline branch validation --- .github/workflows/frameworkValidation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/frameworkValidation.yml b/.github/workflows/frameworkValidation.yml index 577a7362..ddf625ef 100644 --- a/.github/workflows/frameworkValidation.yml +++ b/.github/workflows/frameworkValidation.yml @@ -20,4 +20,4 @@ defaults: jobs: framework-validation: - uses: rest-for-physics/framework/.github/workflows/validation.yml@master + uses: rest-for-physics/framework/.github/workflows/validation.yml@jgalan-readoutplane-update From 1097ce44a464ea3ad48e1c2c233ce17ba26288e1 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Fri, 9 Jun 2023 11:14:37 +0200 Subject: [PATCH 32/63] use const refs --- inc/TRestDetectorReadoutPlane.h | 6 +++--- src/TRestDetectorReadoutPlane.cxx | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 6626d6d8..123e5d62 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -106,10 +106,10 @@ class TRestDetectorReadoutPlane { inline Double_t GetHeight() const { return fHeight; } /// Returns the perpendicular distance to the readout plane from a given position *pos*. - Double_t GetDistanceTo(const TVector3& pos); + Double_t GetDistanceTo(const TVector3& pos) const; /// Returns the perpendicular distance to the readout plane from a given position *x*, *y*, *z*. - Double_t GetDistanceTo(Double_t x, Double_t y, Double_t z); + Double_t GetDistanceTo(Double_t x, Double_t y, Double_t z) const; /// Returns a TVector2 oriented as the shortest distance of a given position /// *pos* on the plane to a specific module with id *mod* @@ -146,7 +146,7 @@ class TRestDetectorReadoutPlane { Bool_t isDaqIDInside(Int_t daqId); - Int_t GetModuleIDFromPosition(TVector3 position); + Int_t GetModuleIDFromPosition(const TVector3& position); Int_t GetModuleIDFromPosition(Double_t x, Double_t y, Double_t z); diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 18208207..36fcc7bd 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -55,7 +55,7 @@ TRestDetectorReadoutPlane::TRestDetectorReadoutPlane() { Initialize(); } /////////////////////////////////////////////// /// \brief Default TRestDetectorReadoutPlane destructor /// -TRestDetectorReadoutPlane::~TRestDetectorReadoutPlane() {} +TRestDetectorReadoutPlane::~TRestDetectorReadoutPlane() = default; /////////////////////////////////////////////// /// \brief TRestDetectorReadoutPlane initialization @@ -270,7 +270,7 @@ Int_t TRestDetectorReadoutPlane::FindChannel(Int_t module, const TVector2& posit /// \brief Returns the perpendicular distance to the readout plane of a given /// *x*, *y*, *z* position /// -Double_t TRestDetectorReadoutPlane::GetDistanceTo(Double_t x, Double_t y, Double_t z) { +Double_t TRestDetectorReadoutPlane::GetDistanceTo(Double_t x, Double_t y, Double_t z) const { return GetDistanceTo(TVector3(x, y, z)); } @@ -278,7 +278,7 @@ Double_t TRestDetectorReadoutPlane::GetDistanceTo(Double_t x, Double_t y, Double /// \brief Returns the perpendicular distance to the readout plane of a given /// TVector3 position /// -Double_t TRestDetectorReadoutPlane::GetDistanceTo(const TVector3& pos) { +Double_t TRestDetectorReadoutPlane::GetDistanceTo(const TVector3& pos) const { return (pos - GetPosition()).Dot(GetNormal()); } @@ -355,7 +355,7 @@ Int_t TRestDetectorReadoutPlane::GetModuleIDFromPosition(Double_t x, Double_t y, /// \return the module *id* where the hit is found. If no module *id* is found /// it returns -1. /// -Int_t TRestDetectorReadoutPlane::GetModuleIDFromPosition(TVector3 pos) { +Int_t TRestDetectorReadoutPlane::GetModuleIDFromPosition(const TVector3& pos) { TVector3 posNew = TVector3(pos.X() - fPosition.X(), pos.Y() - fPosition.Y(), pos.Z()); Double_t distance = GetDistanceTo(posNew); From 3d21748401a6a39dbdc0fab4a294ad07db2a74bf Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Fri, 9 Jun 2023 11:30:28 +0200 Subject: [PATCH 33/63] add TRestDetectorReadoutPlane::UpdateAxes, update how local reference frame is stored and updated, simplified --- inc/TRestDetectorReadoutPlane.h | 29 +++++++++------ src/TRestDetectorReadoutPlane.cxx | 62 +++++++++++++++++++++---------- 2 files changed, 61 insertions(+), 30 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 123e5d62..71d93881 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -44,24 +44,26 @@ class TRestDetectorReadoutPlane { /// A vector that defines the plane orientation and the side of the active volume. TVector3 fNormal = {0, 0, 1}; //< - /// A vector contained in the plane that defines the plane local reference system. Calculated internally. - TVector3 fAxisX = {1, 0, 0}; //< + /// Coordinate axes are orthonormal vectors contained in the plane (and perpendicular to the normal + /// vector). They are calculated internally from the normal vector and the rotation angle. A normal vector + /// of (0,0,1) and a rotation of 0 degrees will result in a plane with axes (1,0,0) and (0,1,0). See the + /// TRestDetectorReadoutPlane::UpdateAxes() method for details. + std::pair fCoordinateAxes; //< - /// An orthonormal to fAxisX contained in the plane. Calculated internally. - TVector3 fAxisY = {0, 1, 0}; //< - - /// The fraction of charge/energy this readout plane collects from a hit postion. + /// The fraction of charge/energy this readout plane collects from a hit position. Double_t fChargeCollection = 1; //< /// A length in mm that confers a 3rd dimension to the readout plane and defines a volume. Double_t fHeight = 0; //< + /// Rotation in degrees of the readout plane around the normal vector. + Double_t fRotation = 0; //< + ///< A list of TRestDetectorReadoutModule components contained in the readout plane. std::vector fReadoutModules; //< - void Initialize(); + void UpdateAxes(); - protected: public: // Setters /// Sets the planeId. This is done by TRestDetectorReadout during initialization @@ -70,13 +72,15 @@ class TRestDetectorReadoutPlane { /// Sets the readout plane position void SetPosition(const TVector3& position) { fPosition = position; } - void SetNormal(const TVector3& vect); + void SetNormal(const TVector3& normal); /// Sets the value for the charge collection. void SetChargeCollection(Double_t charge) { fChargeCollection = charge; } void SetHeight(Double_t d); + void SetRotation(Double_t degrees); + // Getters /// Returns an integer with the plane id number. inline Int_t GetID() const { return fId; } @@ -84,6 +88,9 @@ class TRestDetectorReadoutPlane { /// Returns a TVector3 with the readout plane position inline TVector3 GetPosition() const { return fPosition; } + /// Returns the rotation angle in degrees of the reference frame with respect to the normal vector + Double_t GetRotation() const { return fRotation; } + /// Returns a TVector3 with the cathode position inline TVector3 GetCathodePosition() const { return fPosition + fHeight * fNormal; } @@ -91,10 +98,10 @@ class TRestDetectorReadoutPlane { inline TVector3 GetNormal() const { return fNormal; } /// Returns a TVector3 with a vector that defines the X-axis plane coordinate system - inline TVector3 GetAxisX() const { return fAxisX; } + inline TVector3 GetAxisX() const { return fCoordinateAxes.first; } /// Returns a TVector3 with a vector that defines the Y-axis plane coordinate system - inline TVector3 GetAxisY() const { return fAxisY; } + inline TVector3 GetAxisY() const { return fCoordinateAxes.second; } /// Returns the charge collection ratio at this readout plane inline Double_t GetChargeCollection() const { return fChargeCollection; } diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 36fcc7bd..51d6de64 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -50,18 +50,16 @@ ClassImp(TRestDetectorReadoutPlane); /////////////////////////////////////////////// /// \brief Default TRestDetectorReadoutPlane constructor /// -TRestDetectorReadoutPlane::TRestDetectorReadoutPlane() { Initialize(); } +TRestDetectorReadoutPlane::TRestDetectorReadoutPlane() { + // We call UpdateAxes() to calculate the X and Y axis from the normal vector and rotation. + UpdateAxes(); +} /////////////////////////////////////////////// /// \brief Default TRestDetectorReadoutPlane destructor /// TRestDetectorReadoutPlane::~TRestDetectorReadoutPlane() = default; -/////////////////////////////////////////////// -/// \brief TRestDetectorReadoutPlane initialization -/// -void TRestDetectorReadoutPlane::Initialize() {} - /////////////////////////////////////////////// /// \brief Returns the total number of channels in the readout plane /// @@ -75,16 +73,11 @@ Int_t TRestDetectorReadoutPlane::GetNumberOfChannels() { /////////////////////////////////////////////// /// \brief It updates the value of the normal vector and recalculates -/// the correspoding X and Y axis. +/// the corresponding X and Y axis. /// -void TRestDetectorReadoutPlane::SetNormal(const TVector3& vect) { - fNormal = vect; - TVector3 reference = {1, 0, 0}; - const TVector3& normal = GetNormal(); - if (normal == TVector3(1, 0, 0)) reference = {0, 1, 0}; - - fAxisX = reference.Cross(normal).Cross(normal); - fAxisY = normal.Cross(fAxisX); +void TRestDetectorReadoutPlane::SetNormal(const TVector3& normal) { + fNormal = normal.Unit(); + UpdateAxes(); } /////////////////////////////////////////////// @@ -383,10 +376,12 @@ void TRestDetectorReadoutPlane::Print(Int_t DetailLevel) { << " Y : " << fPosition.Y() << " mm, Z : " << fPosition.Z() << " mm" << RESTendl; RESTMetadata << "-- Normal vector : X = " << fNormal.X() << " mm, " << " Y : " << fNormal.Y() << " mm, Z : " << fNormal.Z() << " mm" << RESTendl; - RESTMetadata << "-- X-axis vector : X = " << fAxisX.X() << " mm, " - << " Y : " << fAxisX.Y() << " mm, Z : " << fAxisX.Z() << " mm" << RESTendl; - RESTMetadata << "-- Y-axis vector : Y = " << fAxisY.X() << " mm, " - << " Y : " << fAxisY.Y() << " mm, Z : " << fAxisY.Z() << " mm" << RESTendl; + RESTMetadata << "-- X-axis vector : X = " << fCoordinateAxes.first.X() << " mm, " + << " Y : " << fCoordinateAxes.first.Y() << " mm, Z : " << fCoordinateAxes.first.Z() + << " mm" << RESTendl; + RESTMetadata << "-- Y-axis vector : Y = " << fCoordinateAxes.second.X() << " mm, " + << " Y : " << fCoordinateAxes.second.Y() << " mm, Z : " << fCoordinateAxes.second.Z() + << " mm" << RESTendl; RESTMetadata << "-- Cathode Position : X = " << GetCathodePosition().X() << " mm, " << " Y : " << GetCathodePosition().Y() << " mm, Z : " << GetCathodePosition().Z() << " mm" << RESTendl; @@ -469,3 +464,32 @@ void TRestDetectorReadoutPlane::GetBoundaries(double& xmin, double& xmax, double } } } + +void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent + fCoordinateAxes.first = {1, 0, 0}; + fCoordinateAxes.second = {0, 1, 0}; + + // Check if fNormal is different from the original normal + const TVector3 originalNormal = {0, 0, 1}; + if (fNormal != originalNormal) { + // Calculate the rotation axis by taking the cross product between the original normal and fNormal + TVector3 rotationAxis = originalNormal.Cross(fNormal); + + // Calculate the rotation angle using the dot product between the original normal and fNormal + double rotationAngle = acos(originalNormal.Dot(fNormal) / (originalNormal.Mag() * fNormal.Mag())); + + // Rotate the axes around the rotation axis by the rotation angle + fCoordinateAxes.first.Rotate(rotationAngle, rotationAxis); + fCoordinateAxes.second.Rotate(rotationAngle, rotationAxis); + } + + // rotate around normal by rotation angle + fCoordinateAxes.first.Rotate(fRotation * TMath::DegToRad(), fNormal); + fCoordinateAxes.second.Rotate(fRotation * TMath::DegToRad(), fNormal); +} + +void TRestDetectorReadoutPlane::SetRotation(Double_t degrees) { + // modulo 360.0 + fRotation = degrees - 360.0 * floor(degrees / 360.0); + UpdateAxes(); +} From 02348eb1e3d8f5926cf7dd902a81bb0306cbee13 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Fri, 9 Jun 2023 11:32:47 +0200 Subject: [PATCH 34/63] Remove redundant TRestDetectorReadoutPlane::GetDistanceTo method --- inc/TRestDetectorReadoutPlane.h | 3 --- src/TRestDetectorElectronDiffusionProcess.cxx | 2 +- src/TRestDetectorHitsToSignalProcess.cxx | 2 +- src/TRestDetectorReadoutPlane.cxx | 8 -------- 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 71d93881..7f4802b8 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -115,9 +115,6 @@ class TRestDetectorReadoutPlane { /// Returns the perpendicular distance to the readout plane from a given position *pos*. Double_t GetDistanceTo(const TVector3& pos) const; - /// Returns the perpendicular distance to the readout plane from a given position *x*, *y*, *z*. - Double_t GetDistanceTo(Double_t x, Double_t y, Double_t z) const; - /// 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, const TVector2& position) { diff --git a/src/TRestDetectorElectronDiffusionProcess.cxx b/src/TRestDetectorElectronDiffusionProcess.cxx index ebe80525..98d6b6f1 100644 --- a/src/TRestDetectorElectronDiffusionProcess.cxx +++ b/src/TRestDetectorElectronDiffusionProcess.cxx @@ -147,7 +147,7 @@ TRestEvent* TRestDetectorElectronDiffusionProcess::ProcessEvent(TRestEvent* inpu if (plane->isZInsideDriftVolume(z)) { Double_t xDiff, yDiff, zDiff; - Double_t driftDistance = plane->GetDistanceTo(x, y, z); + Double_t driftDistance = plane->GetDistanceTo({x, y, z}); Int_t numberOfElectrons; if (fPoissonElectronExcitation) { diff --git a/src/TRestDetectorHitsToSignalProcess.cxx b/src/TRestDetectorHitsToSignalProcess.cxx index 9179c865..3838d29c 100644 --- a/src/TRestDetectorHitsToSignalProcess.cxx +++ b/src/TRestDetectorHitsToSignalProcess.cxx @@ -237,7 +237,7 @@ TRestEvent* TRestDetectorHitsToSignalProcess::ProcessEvent(TRestEvent* inputEven if (daqId >= 0) { Double_t energy = fHitsEvent->GetEnergy(hit); - Double_t time = plane->GetDistanceTo(x, y, z) / fDriftVelocity + t; + Double_t time = plane->GetDistanceTo({x, y, z}) / fDriftVelocity + t; if (GetVerboseLevel() >= TRestStringOutput::REST_Verbose_Level::REST_Debug && hit < 20) cout << "Module : " << moduleId << " Channel : " << channelId << " daq ID : " << daqId diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 51d6de64..dd06bfe3 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -259,14 +259,6 @@ Int_t TRestDetectorReadoutPlane::FindChannel(Int_t module, const TVector2& posit return fReadoutModules[module].FindChannel(relativePosition); } -/////////////////////////////////////////////// -/// \brief Returns the perpendicular distance to the readout plane of a given -/// *x*, *y*, *z* position -/// -Double_t TRestDetectorReadoutPlane::GetDistanceTo(Double_t x, Double_t y, Double_t z) const { - return GetDistanceTo(TVector3(x, y, z)); -} - /////////////////////////////////////////////// /// \brief Returns the perpendicular distance to the readout plane of a given /// TVector3 position From 05cab644d24c46ee3b35154d1ca4cd9d56a51b73 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Fri, 9 Jun 2023 11:52:59 +0200 Subject: [PATCH 35/63] SetHeight with bad parameter raises exception --- src/TRestDetectorReadoutPlane.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index dd06bfe3..15b2a75f 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -85,9 +85,9 @@ void TRestDetectorReadoutPlane::SetNormal(const TVector3& normal) { /// void TRestDetectorReadoutPlane::SetHeight(Double_t height) { if (height < 0) { - RESTError << "TRestDetectorReadoutPlane::SetHeight : height cannot be negative." << RESTendl; - RESTError << "Setting height equal to zero!" << RESTendl; fHeight = 0; + RESTError << "TRestDetectorReadoutPlane::SetHeight : height cannot be negative." << RESTendl; + exit(1); } else { fHeight = height; } @@ -97,8 +97,9 @@ void TRestDetectorReadoutPlane::SetHeight(Double_t height) { /// \brief Returns a pointer to a module using its internal module id /// TRestDetectorReadoutModule* TRestDetectorReadoutPlane::GetModuleByID(Int_t modID) { - for (size_t 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; return nullptr; From 97a0e26cf4284c13b9db87b70efbe860263235a9 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Fri, 9 Jun 2023 12:01:30 +0200 Subject: [PATCH 36/63] TRestDetectorReadout. Adding rotation parameter --- src/TRestDetectorReadout.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index c70af71c..c77de851 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -472,6 +472,7 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetNormal(Get3DVectorParameterWithUnits("normal", planeDefinition)); plane.SetHeight(GetDblParameterWithUnits("height", planeDefinition)); plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition))); + plane.SetRotation(GetDblParameterWithUnits(GetFieldValue("rotation", planeDefinition))); #pragma region addReadoutModuleToPlane From db710ad17693a9452ab06ba3b9943e35246aab41 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Fri, 9 Jun 2023 12:04:10 +0200 Subject: [PATCH 37/63] use radians as angular unit --- inc/TRestDetectorReadoutPlane.h | 6 +++--- src/TRestDetectorReadoutPlane.cxx | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 7f4802b8..46e2cd93 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -56,7 +56,7 @@ class TRestDetectorReadoutPlane { /// A length in mm that confers a 3rd dimension to the readout plane and defines a volume. Double_t fHeight = 0; //< - /// Rotation in degrees of the readout plane around the normal vector. + /// Rotation (in radians) of the readout plane around the normal vector. Double_t fRotation = 0; //< ///< A list of TRestDetectorReadoutModule components contained in the readout plane. @@ -79,7 +79,7 @@ class TRestDetectorReadoutPlane { void SetHeight(Double_t d); - void SetRotation(Double_t degrees); + void SetRotation(Double_t radians); // Getters /// Returns an integer with the plane id number. @@ -88,7 +88,7 @@ class TRestDetectorReadoutPlane { /// Returns a TVector3 with the readout plane position inline TVector3 GetPosition() const { return fPosition; } - /// Returns the rotation angle in degrees of the reference frame with respect to the normal vector + /// Returns the rotation angle in radians of the reference frame with respect to the normal vector Double_t GetRotation() const { return fRotation; } /// Returns a TVector3 with the cathode position diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 15b2a75f..3e1faa08 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -429,7 +429,7 @@ TH2Poly* TRestDetectorReadoutPlane::GetReadoutHistogram() { } } - readoutHistogram->SetStats(0); + readoutHistogram->SetStats(false); return readoutHistogram; } @@ -476,13 +476,13 @@ void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent fCoordinateAxes.second.Rotate(rotationAngle, rotationAxis); } - // rotate around normal by rotation angle - fCoordinateAxes.first.Rotate(fRotation * TMath::DegToRad(), fNormal); - fCoordinateAxes.second.Rotate(fRotation * TMath::DegToRad(), fNormal); + // rotate around normal by rotation angle (angle in radians) + fCoordinateAxes.first.Rotate(fRotation, fNormal); + fCoordinateAxes.second.Rotate(fRotation, fNormal); } -void TRestDetectorReadoutPlane::SetRotation(Double_t degrees) { +void TRestDetectorReadoutPlane::SetRotation(Double_t radians) { // modulo 360.0 - fRotation = degrees - 360.0 * floor(degrees / 360.0); + fRotation = radians - TMath::TwoPi() * TMath::Floor(radians / TMath::TwoPi()); UpdateAxes(); } From 6462b9bc2bb9492d4b4edbf965c40102a3828950 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Fri, 9 Jun 2023 12:13:09 +0200 Subject: [PATCH 38/63] TRestDetectorReadoutModule::fModuleRotation is now in radians --- inc/TRestDetectorReadoutModule.h | 9 ++++----- src/TRestDetectorReadout.cxx | 4 ++-- src/TRestDetectorReadoutModule.cxx | 14 +++++++------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index 27d56036..93caec82 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -43,9 +43,8 @@ class TRestDetectorReadoutModule { 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 - ///< degrees. + /// The rotation of the module around the module origin (fModuleOriginX, fModuleOriginY) in radians. + Double_t fModuleRotation = 0; //< Int_t fMinimumDaqId; ///< The minimum daq channel id associated to the ///< module. @@ -69,7 +68,7 @@ class TRestDetectorReadoutModule { /// system to the readout module reference system. inline TVector2 TransformToModuleCoordinates(const TVector2& xyPhysical) const { auto coords = xyPhysical - fModuleOrigin; - TVector2 rot = coords.Rotate(-fModuleRotation * TMath::Pi() / 180.); + TVector2 rot = coords.Rotate(-fModuleRotation); return rot; } @@ -79,7 +78,7 @@ class TRestDetectorReadoutModule { inline TVector2 TransformToPlaneCoordinates(Double_t xMod, Double_t yMod) const { TVector2 coords(xMod, yMod); - coords = coords.Rotate(fModuleRotation * TMath::Pi() / 180.); + coords = coords.Rotate(fModuleRotation); coords += fModuleOrigin; return coords; diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index c77de851..3be9935f 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -472,7 +472,7 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetNormal(Get3DVectorParameterWithUnits("normal", planeDefinition)); plane.SetHeight(GetDblParameterWithUnits("height", planeDefinition)); plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition))); - plane.SetRotation(GetDblParameterWithUnits(GetFieldValue("rotation", planeDefinition))); + plane.SetRotation(GetDblParameterWithUnits("rotation", planeDefinition)); #pragma region addReadoutModuleToPlane @@ -491,7 +491,7 @@ void TRestDetectorReadout::InitFromConfigFile() { fModuleDefinitions[mid].SetModuleID(StringToInteger(GetFieldValue("id", moduleDefinition))); fModuleDefinitions[mid].SetOrigin(StringTo2DVector(GetFieldValue("origin", moduleDefinition))); - fModuleDefinitions[mid].SetRotation(StringToDouble(GetFieldValue("rotation", moduleDefinition))); + fModuleDefinitions[mid].SetRotation(GetDblParameterWithUnits("rotation", moduleDefinition)); Int_t firstDaqChannel = StringToInteger(GetFieldValue("firstDaqChannel", moduleDefinition)); if (firstDaqChannel == -1) firstDaqChannel = addedChannels; diff --git a/src/TRestDetectorReadoutModule.cxx b/src/TRestDetectorReadoutModule.cxx index 6e843aff..b1f821bb 100644 --- a/src/TRestDetectorReadoutModule.cxx +++ b/src/TRestDetectorReadoutModule.cxx @@ -401,7 +401,7 @@ TVector2 TRestDetectorReadoutModule::GetPixelOrigin(Int_t channel, Int_t pixel) 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.Rotate(fModuleRotation); pixPosition = pixPosition + fModuleOrigin; return pixPosition; } @@ -416,7 +416,7 @@ TVector2 TRestDetectorReadoutModule::GetPixelVertex(Int_t channel, Int_t pixel, 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.Rotate(fModuleRotation); pixCenter = pixCenter + fModuleOrigin; return pixCenter; } @@ -440,7 +440,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.Rotate(fModuleRotation); pixPosition = pixPosition + fModuleOrigin; return pixPosition; } @@ -471,17 +471,17 @@ TVector2 TRestDetectorReadoutModule::GetVertex(int n) const { return origin; else if (n % 4 == 1) { vertex.Set(fModuleSize.X(), 0); - vertex = vertex.Rotate(fModuleRotation * TMath::Pi() / 180.); + vertex = vertex.Rotate(fModuleRotation); vertex = vertex + origin; } else if (n % 4 == 2) { vertex.Set(fModuleSize.X(), fModuleSize.Y()); - vertex = vertex.Rotate(fModuleRotation * TMath::Pi() / 180.); + vertex = vertex.Rotate(fModuleRotation); vertex = vertex + origin; } else if (n % 4 == 3) { vertex.Set(0, fModuleSize.Y()); - vertex = vertex.Rotate(fModuleRotation * TMath::Pi() / 180.); + vertex = vertex.Rotate(fModuleRotation); vertex = vertex + origin; } @@ -530,7 +530,7 @@ void TRestDetectorReadoutModule::Print(Int_t DetailLevel) { 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 << "-- Rotation : " << fModuleRotation * units("degrees") << " degrees" << RESTendl; RESTMetadata << "-- Total channels : " << GetNumberOfChannels() << RESTendl; RESTMetadata << "-- Tolerance : " << fTolerance << RESTendl; RESTMetadata << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << RESTendl; From 9babbdf2851dab14ba00539134b351ad019839f2 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Fri, 9 Jun 2023 12:14:45 +0200 Subject: [PATCH 39/63] TRestDetectorReadoutModule::fModuleRotation renamed to fRotation --- inc/TRestDetectorReadoutModule.h | 10 +++++----- src/TRestDetectorReadoutModule.cxx | 16 ++++++++-------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index 93caec82..72fe5a39 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -44,7 +44,7 @@ class TRestDetectorReadoutModule { TVector2 fModuleSize; ///< The module (x, y) size. All pixels should be contained within this size. /// The rotation of the module around the module origin (fModuleOriginX, fModuleOriginY) in radians. - Double_t fModuleRotation = 0; //< + Double_t fRotation = 0; //< Int_t fMinimumDaqId; ///< The minimum daq channel id associated to the ///< module. @@ -68,7 +68,7 @@ class TRestDetectorReadoutModule { /// system to the readout module reference system. inline TVector2 TransformToModuleCoordinates(const TVector2& xyPhysical) const { auto coords = xyPhysical - fModuleOrigin; - TVector2 rot = coords.Rotate(-fModuleRotation); + TVector2 rot = coords.Rotate(-fRotation); return rot; } @@ -78,7 +78,7 @@ class TRestDetectorReadoutModule { inline TVector2 TransformToPlaneCoordinates(Double_t xMod, Double_t yMod) const { TVector2 coords(xMod, yMod); - coords = coords.Rotate(fModuleRotation); + coords = coords.Rotate(fRotation); coords += fModuleOrigin; return coords; @@ -101,7 +101,7 @@ class TRestDetectorReadoutModule { inline void SetOrigin(Double_t x, Double_t y) { SetOrigin({x, y}); } /// Sets the module rotation in degrees - inline void SetRotation(Double_t rotation) { fModuleRotation = rotation; } + inline void SetRotation(Double_t rotation) { fRotation = rotation; } /// Sets the name of the readout module inline void SetName(const TString& name) { fModuleName = name; } @@ -148,7 +148,7 @@ class TRestDetectorReadoutModule { inline Double_t GetModuleSizeY() const { return fModuleSize.Y(); } /// Returns the module rotation in degrees - inline Double_t GetModuleRotation() const { return fModuleRotation; } + inline Double_t GetModuleRotation() const { return fRotation; } /// Converts the coordinates given by TVector2 in the readout plane reference /// system to the readout module reference system. diff --git a/src/TRestDetectorReadoutModule.cxx b/src/TRestDetectorReadoutModule.cxx index b1f821bb..0bfcafff 100644 --- a/src/TRestDetectorReadoutModule.cxx +++ b/src/TRestDetectorReadoutModule.cxx @@ -71,7 +71,7 @@ void TRestDetectorReadoutModule::Initialize() { fModuleOrigin = {0, 0}; fModuleSize = {0, 0}; - fModuleRotation = 0; + fRotation = 0; fMaximumDaqId = -1; fMinimumDaqId = -1; @@ -401,7 +401,7 @@ TVector2 TRestDetectorReadoutModule::GetPixelOrigin(Int_t channel, Int_t pixel) TVector2 TRestDetectorReadoutModule::GetPixelVertex(Int_t channel, Int_t pixel, Int_t vertex) { TVector2 pixPosition = GetChannel(channel)->GetPixel(pixel)->GetVertex(vertex); - pixPosition = pixPosition.Rotate(fModuleRotation); + pixPosition = pixPosition.Rotate(fRotation); pixPosition = pixPosition + fModuleOrigin; return pixPosition; } @@ -416,7 +416,7 @@ TVector2 TRestDetectorReadoutModule::GetPixelVertex(Int_t channel, Int_t pixel, TVector2 TRestDetectorReadoutModule::GetPixelCenter(Int_t channel, Int_t pixel) { TVector2 pixCenter = GetChannel(channel)->GetPixel(pixel)->GetCenter(); - pixCenter = pixCenter.Rotate(fModuleRotation); + pixCenter = pixCenter.Rotate(fRotation); pixCenter = pixCenter + fModuleOrigin; return pixCenter; } @@ -440,7 +440,7 @@ TVector2 TRestDetectorReadoutModule::GetPixelOrigin(TRestDetectorReadoutPixel* p TVector2 TRestDetectorReadoutModule::GetPixelVertex(TRestDetectorReadoutPixel* pix, Int_t vertex) { TVector2 pixPosition = pix->GetVertex(vertex); - pixPosition = pixPosition.Rotate(fModuleRotation); + pixPosition = pixPosition.Rotate(fRotation); pixPosition = pixPosition + fModuleOrigin; return pixPosition; } @@ -471,17 +471,17 @@ TVector2 TRestDetectorReadoutModule::GetVertex(int n) const { return origin; else if (n % 4 == 1) { vertex.Set(fModuleSize.X(), 0); - vertex = vertex.Rotate(fModuleRotation); + vertex = vertex.Rotate(fRotation); vertex = vertex + origin; } else if (n % 4 == 2) { vertex.Set(fModuleSize.X(), fModuleSize.Y()); - vertex = vertex.Rotate(fModuleRotation); + vertex = vertex.Rotate(fRotation); vertex = vertex + origin; } else if (n % 4 == 3) { vertex.Set(0, fModuleSize.Y()); - vertex = vertex.Rotate(fModuleRotation); + vertex = vertex.Rotate(fRotation); vertex = vertex + origin; } @@ -530,7 +530,7 @@ void TRestDetectorReadoutModule::Print(Int_t DetailLevel) { RESTMetadata << "-- Origin position : X = " << fModuleOrigin.X() << " mm " << " Y : " << fModuleOrigin.Y() << " mm" << RESTendl; RESTMetadata << "-- Size : X = " << fModuleSize.X() << " Y : " << fModuleSize.Y() << RESTendl; - RESTMetadata << "-- Rotation : " << fModuleRotation * units("degrees") << " degrees" << RESTendl; + RESTMetadata << "-- Rotation : " << fRotation * units("degrees") << " degrees" << RESTendl; RESTMetadata << "-- Total channels : " << GetNumberOfChannels() << RESTendl; RESTMetadata << "-- Tolerance : " << fTolerance << RESTendl; RESTMetadata << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << RESTendl; From 18327cba99e1a51668b16786ea4a5cb270c6f252 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Fri, 9 Jun 2023 12:18:51 +0200 Subject: [PATCH 40/63] TRestDetectorReadoutModule. Increasing class version --- inc/TRestDetectorReadoutModule.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index 72fe5a39..f65f262b 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -225,6 +225,6 @@ class TRestDetectorReadoutModule { // Destructor virtual ~TRestDetectorReadoutModule(); - ClassDef(TRestDetectorReadoutModule, 2); + ClassDef(TRestDetectorReadoutModule, 3); }; #endif From 49679cb307f8d455b5248fefa84eeae1bc66f32e Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Fri, 9 Jun 2023 12:49:38 +0200 Subject: [PATCH 41/63] renamed some parameters to be coherent with changes in TRestReadoutPlane --- inc/TRestDetectorReadoutModule.h | 54 ++++++++++-------------- src/TRestDetectorGainMap.cxx | 2 +- src/TRestDetectorReadoutModule.cxx | 46 ++++++++++---------- src/TRestDetectorReadoutPlane.cxx | 4 +- src/TRestDetectorSignalToHitsProcess.cxx | 4 +- 5 files changed, 51 insertions(+), 59 deletions(-) diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index f65f262b..ed151721 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -35,13 +35,13 @@ /// allows to integrate any number of independent readout channels. class TRestDetectorReadoutModule { private: - Int_t fModuleID; ///< The module id given by the readout definition. + Int_t fId = -1; ///< The module id given by the readout definition. - TString fModuleName; ///< The assigned module name. + std::string fName; ///< The assigned module name. - TVector2 fModuleOrigin; ///< The module (x, y) position relative to the readout plane position. + TVector2 fOrigin = {0, 0}; ///< The module (x, y) position relative to the readout plane position. - TVector2 fModuleSize; ///< The module (x, y) size. All pixels should be contained within this size. + TVector2 fSize = {0, 0}; ///< The module (x, y) size. All pixels should be contained within this size. /// The rotation of the module around the module origin (fModuleOriginX, fModuleOriginY) in radians. Double_t fRotation = 0; //< @@ -67,7 +67,7 @@ class TRestDetectorReadoutModule { /// Converts the coordinates (xPhys,yPhys) in the readout plane reference /// system to the readout module reference system. inline TVector2 TransformToModuleCoordinates(const TVector2& xyPhysical) const { - auto coords = xyPhysical - fModuleOrigin; + auto coords = xyPhysical - fOrigin; TVector2 rot = coords.Rotate(-fRotation); return rot; @@ -79,7 +79,7 @@ class TRestDetectorReadoutModule { TVector2 coords(xMod, yMod); coords = coords.Rotate(fRotation); - coords += fModuleOrigin; + coords += fOrigin; return coords; } @@ -89,22 +89,19 @@ class TRestDetectorReadoutModule { // Setters /// Sets the module by id definition - inline void SetModuleID(Int_t modID) { fModuleID = modID; } + inline void SetModuleID(Int_t modID) { fId = modID; } /// Sets the module size by definition using TVector2 input - inline void SetSize(const TVector2& size) { fModuleSize = size; } + inline void SetSize(const TVector2& size) { fSize = size; } /// Sets the module origin by definition using TVector2 input - 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}); } + inline void SetOrigin(const TVector2& origin) { fOrigin = origin; } /// Sets the module rotation in degrees inline void SetRotation(Double_t rotation) { fRotation = rotation; } /// Sets the name of the readout module - inline void SetName(const TString& name) { fModuleName = name; } + inline void SetName(const std::string& name) { fName = name; } /// Sets the tolerance for independent pixel overlaps inline void SetTolerance(Double_t tolerance) { fTolerance = tolerance; } @@ -118,8 +115,7 @@ class TRestDetectorReadoutModule { /// Returns the maximum daq id number inline Int_t GetMaxDaqID() const { return fMaximumDaqId; } - /// Returns the physical readout channel index for a given daq id channel - /// number + /// Returns the physical readout channel index for a given daq id channel number inline Int_t DaqToReadoutChannel(Int_t daqChannel) { for (size_t n = 0; n < GetNumberOfChannels(); n++) if (GetChannel(n)->GetDaqID() == daqChannel) return n; @@ -127,28 +123,22 @@ class TRestDetectorReadoutModule { } /// Returns the module id - inline Int_t GetModuleID() const { return fModuleID; } - - /// Returns the module x-coordinate origin - inline Double_t GetModuleOriginX() const { return fModuleOrigin.X(); } - - /// Returns the module y-coordinate origin - inline Double_t GetModuleOriginY() const { return fModuleOrigin.Y(); } + inline Int_t GetModuleID() const { return fId; } - /// Returns the module x-coordinate origin - inline Double_t GetOriginX() const { return fModuleOrigin.X(); } + /// Returns the module origin position + inline TVector2 GetOrigin() const { return fOrigin; } - /// Returns the module y-coordinate origin - inline Double_t GetOriginY() const { return fModuleOrigin.Y(); } + /// Returns the module size (x, y) in mm + inline TVector2 GetSize() const { return fSize; } /// Returns the module size x-coordinate - inline Double_t GetModuleSizeX() const { return fModuleSize.X(); } + inline Double_t GetSizeX() const { return fSize.X(); } /// Returns the module size y-coordinate - inline Double_t GetModuleSizeY() const { return fModuleSize.Y(); } + inline Double_t GetSizeZ() const { return fSize.Y(); } /// Returns the module rotation in degrees - inline Double_t GetModuleRotation() const { return fRotation; } + inline Double_t GetRotation() const { return fRotation; } /// Converts the coordinates given by TVector2 in the readout plane reference /// system to the readout module reference system. @@ -159,7 +149,7 @@ class TRestDetectorReadoutModule { TVector2 GetPlaneCoordinates(const TVector2& p) { return TransformToPlaneCoordinates(p.X(), p.Y()); } /// Returns the module name - inline const char* GetName() const { return fModuleName.Data(); } + inline const char* GetName() const { return fName.c_str(); } /// Returns a pointer to the readout mapping inline TRestDetectorReadoutMapping* GetMapping() { return &fMapping; } @@ -168,7 +158,9 @@ class TRestDetectorReadoutModule { /// Returns a pointer to a readout channel by index inline TRestDetectorReadoutChannel* GetChannel(size_t n) { - if (n >= GetNumberOfChannels()) return nullptr; + if (n >= GetNumberOfChannels()) { + return nullptr; + } return &fReadoutChannel[n]; } diff --git a/src/TRestDetectorGainMap.cxx b/src/TRestDetectorGainMap.cxx index 8c10316f..8bdf1e6f 100644 --- a/src/TRestDetectorGainMap.cxx +++ b/src/TRestDetectorGainMap.cxx @@ -35,7 +35,7 @@ void TRestDetectorGainMap::DrawChannelGainMap(TRestDetectorReadoutModule* mod) { } h->Draw(); } else { - double xmin = 0, xmax = mod->GetModuleSizeX(), ymin = 0, ymax = mod->GetModuleSizeY(); + double xmin = 0, xmax = mod->GetSizeX(), ymin = 0, ymax = mod->GetSizeZ(); cout << xmin << " " << xmax << " " << ymin << " " << ymax << endl; TCanvas* c1 = new TCanvas(); diff --git a/src/TRestDetectorReadoutModule.cxx b/src/TRestDetectorReadoutModule.cxx index 0bfcafff..422e4c06 100644 --- a/src/TRestDetectorReadoutModule.cxx +++ b/src/TRestDetectorReadoutModule.cxx @@ -66,10 +66,10 @@ TRestDetectorReadoutModule::~TRestDetectorReadoutModule() {} /// void TRestDetectorReadoutModule::Initialize() { fReadoutChannel.clear(); - fModuleID = -1; + fId = -1; - fModuleOrigin = {0, 0}; - fModuleSize = {0, 0}; + fOrigin = {0, 0}; + fSize = {0, 0}; fRotation = 0; @@ -127,7 +127,7 @@ void TRestDetectorReadoutModule::DoReadoutMapping(Int_t nodes) { cout << "Total number of pixels : " << totalNumberOfPixels << endl; cout << "Nodes : " << nodes << endl; - fMapping.Initialize(nodes, nodes, GetModuleSizeX(), GetModuleSizeY()); + fMapping.Initialize(nodes, nodes, GetSizeX(), GetSizeZ()); for (size_t ch = 0; ch < this->GetNumberOfChannels(); ch++) { for (int px = 0; px < this->GetChannel(ch)->GetNumberOfPixels(); px++) { @@ -322,8 +322,8 @@ Int_t TRestDetectorReadoutModule::FindChannel(const TVector2& position) { Bool_t TRestDetectorReadoutModule::isInside(const TVector2& position) { TVector2 positionRotated = TransformToModuleCoordinates(position); - if (positionRotated.X() >= 0 && positionRotated.X() <= fModuleSize.X() && positionRotated.Y() >= 0 && - positionRotated.Y() <= fModuleSize.Y()) + if (positionRotated.X() >= 0 && positionRotated.X() <= fSize.X() && positionRotated.Y() >= 0 && + positionRotated.Y() <= fSize.Y()) return true; return false; @@ -372,13 +372,13 @@ TVector2 TRestDetectorReadoutModule::GetDistanceToModule(const TVector2& positio Double_t dx = 0, dy = 0; if (newPos.X() < 0) dx = -newPos.X(); - else if (fModuleSize.X() - newPos.X() < 0) - dx = fModuleSize.X() - newPos.X(); + else if (fSize.X() - newPos.X() < 0) + dx = fSize.X() - newPos.X(); if (newPos.Y() < 0) dy = -newPos.Y(); - else if (fModuleSize.Y() - newPos.Y() < 0) - dy = fModuleSize.Y() - newPos.Y(); + else if (fSize.Y() - newPos.Y() < 0) + dy = fSize.Y() - newPos.Y(); TVector2 dist = TVector2(dx, dy); return dist; @@ -402,7 +402,7 @@ TVector2 TRestDetectorReadoutModule::GetPixelVertex(Int_t channel, Int_t pixel, TVector2 pixPosition = GetChannel(channel)->GetPixel(pixel)->GetVertex(vertex); pixPosition = pixPosition.Rotate(fRotation); - pixPosition = pixPosition + fModuleOrigin; + pixPosition = pixPosition + fOrigin; return pixPosition; } @@ -417,7 +417,7 @@ TVector2 TRestDetectorReadoutModule::GetPixelCenter(Int_t channel, Int_t pixel) TVector2 pixCenter = GetChannel(channel)->GetPixel(pixel)->GetCenter(); pixCenter = pixCenter.Rotate(fRotation); - pixCenter = pixCenter + fModuleOrigin; + pixCenter = pixCenter + fOrigin; return pixCenter; } @@ -441,7 +441,7 @@ TVector2 TRestDetectorReadoutModule::GetPixelOrigin(TRestDetectorReadoutPixel* p TVector2 TRestDetectorReadoutModule::GetPixelVertex(TRestDetectorReadoutPixel* pix, Int_t vertex) { TVector2 pixPosition = pix->GetVertex(vertex); pixPosition = pixPosition.Rotate(fRotation); - pixPosition = pixPosition + fModuleOrigin; + pixPosition = pixPosition + fOrigin; return pixPosition; } @@ -465,22 +465,22 @@ Bool_t TRestDetectorReadoutModule::GetPixelTriangle(TRestDetectorReadoutPixel* p /// TVector2 TRestDetectorReadoutModule::GetVertex(int n) const { TVector2 vertex(0, 0); - const TVector2& origin = fModuleOrigin; + const TVector2& origin = fOrigin; if (n % 4 == 0) return origin; else if (n % 4 == 1) { - vertex.Set(fModuleSize.X(), 0); + vertex.Set(fSize.X(), 0); vertex = vertex.Rotate(fRotation); vertex = vertex + origin; } else if (n % 4 == 2) { - vertex.Set(fModuleSize.X(), fModuleSize.Y()); + vertex.Set(fSize.X(), fSize.Y()); vertex = vertex.Rotate(fRotation); vertex = vertex + origin; } else if (n % 4 == 3) { - vertex.Set(0, fModuleSize.Y()); + vertex.Set(0, fSize.Y()); vertex = vertex.Rotate(fRotation); vertex = vertex + origin; @@ -500,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 > fModuleSize.X() || - sY - fTolerance > fModuleSize.Y()) { + if (oX + fTolerance < 0 || oY + fTolerance < 0 || sX - fTolerance > fSize.X() || + sY - fTolerance > fSize.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 = (" << fModuleSize.X() << " , " << fModuleSize.Y() << ")" << endl; + cout << "Module size = (" << fSize.X() << " , " << fSize.Y() << ")" << endl; } } } @@ -527,9 +527,9 @@ void TRestDetectorReadoutModule::Print(Int_t DetailLevel) { if (DetailLevel >= 0) { RESTMetadata << "-- Readout module : " << GetModuleID() << RESTendl; RESTMetadata << "----------------------------------------------------------------" << RESTendl; - RESTMetadata << "-- Origin position : X = " << fModuleOrigin.X() << " mm " - << " Y : " << fModuleOrigin.Y() << " mm" << RESTendl; - RESTMetadata << "-- Size : X = " << fModuleSize.X() << " Y : " << fModuleSize.Y() << RESTendl; + RESTMetadata << "-- Origin position : X = " << fOrigin.X() << " mm " + << " Y : " << fOrigin.Y() << " mm" << RESTendl; + RESTMetadata << "-- Size : X = " << fSize.X() << " Y : " << fSize.Y() << RESTendl; RESTMetadata << "-- Rotation : " << fRotation * units("degrees") << " degrees" << RESTendl; RESTMetadata << "-- Total channels : " << GetNumberOfChannels() << RESTendl; RESTMetadata << "-- Tolerance : " << fTolerance << RESTendl; diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 3e1faa08..0de2a8b1 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -153,7 +153,7 @@ Double_t TRestDetectorReadoutPlane::GetX(Int_t modID, Int_t chID) { Double_t deltaX = abs(x2 - x1); Double_t deltaY = abs(y2 - y1); - Int_t rotation = (Int_t)rModule->GetModuleRotation(); + Int_t rotation = (Int_t)rModule->GetRotation(); if (rotation % 90 == 0) { if (rotation / 90 % 2 == 0) // rotation is 0, 180, 360... { @@ -223,7 +223,7 @@ Double_t TRestDetectorReadoutPlane::GetY(Int_t modID, Int_t chID) { Double_t deltaX = abs(x2 - x1); Double_t deltaY = abs(y2 - y1); - Int_t rotation = (Int_t)rModule->GetModuleRotation(); + Int_t rotation = (Int_t)rModule->GetRotation(); if (rotation % 90 == 0) { if (rotation / 90 % 2 == 0) // rotation is 0, 180, 360... { diff --git a/src/TRestDetectorSignalToHitsProcess.cxx b/src/TRestDetectorSignalToHitsProcess.cxx index 3ba6c147..4751c9e8 100644 --- a/src/TRestDetectorSignalToHitsProcess.cxx +++ b/src/TRestDetectorSignalToHitsProcess.cxx @@ -267,10 +267,10 @@ TRestEvent* TRestDetectorSignalToHitsProcess::ProcessEvent(TRestEvent* inputEven REST_HitType type = XYZ; TRestDetectorReadoutModule* mod = plane->GetModuleByID(readoutModule); if (TMath::IsNaN(x)) { - x = mod->GetPlaneCoordinates(TVector2(mod->GetModuleSizeX() / 2, mod->GetModuleSizeY() / 2)).X(); + x = mod->GetPlaneCoordinates(TVector2(mod->GetSizeX() / 2, mod->GetSizeZ() / 2)).X(); type = YZ; } else if (TMath::IsNaN(y)) { - y = mod->GetPlaneCoordinates(TVector2(mod->GetModuleSizeX() / 2, mod->GetModuleSizeY() / 2)).Y(); + y = mod->GetPlaneCoordinates(TVector2(mod->GetSizeX() / 2, mod->GetSizeZ() / 2)).Y(); type = XZ; } From 5db58fdfe8162f80ef33a596f91ef1a2fab47a6f Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Fri, 9 Jun 2023 12:54:08 +0200 Subject: [PATCH 42/63] use single parameter for min and max daq ids (daqidrange) --- inc/TRestDetectorReadoutModule.h | 16 +++++++++------- src/TRestDetectorReadoutModule.cxx | 25 +++++++++++++++---------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index ed151721..eb19c7fe 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -46,9 +46,8 @@ class TRestDetectorReadoutModule { /// The rotation of the module around the module origin (fModuleOriginX, fModuleOriginY) in radians. Double_t fRotation = 0; //< - Int_t fMinimumDaqId; ///< The minimum daq channel id associated to the - ///< module. - Int_t fMaximumDaqId; ///< The maximum daq channel id associated to the module. + std::pair fDaqIdRange = { + -1, -1}; ///< The minimum and maximum daq channel ids associated to the module. std::vector fReadoutChannel; ///< A std::vector of the instances of TRestDetectorReadoutChannel @@ -110,15 +109,18 @@ class TRestDetectorReadoutModule { inline Double_t GetTolerance() const { return fTolerance; } /// Returns the minimum daq id number - inline Int_t GetMinDaqID() const { return fMinimumDaqId; } + inline Int_t GetMinDaqID() const { return fDaqIdRange.first; } /// Returns the maximum daq id number - inline Int_t GetMaxDaqID() const { return fMaximumDaqId; } + inline Int_t GetMaxDaqID() const { return fDaqIdRange.second; } /// Returns the physical readout channel index for a given daq id channel number inline Int_t DaqToReadoutChannel(Int_t daqChannel) { - for (size_t n = 0; n < GetNumberOfChannels(); n++) - if (GetChannel(n)->GetDaqID() == daqChannel) return n; + for (size_t n = 0; n < GetNumberOfChannels(); n++) { + if (GetChannel(n)->GetDaqID() == daqChannel) { + return n; + } + } return -1; } diff --git a/src/TRestDetectorReadoutModule.cxx b/src/TRestDetectorReadoutModule.cxx index 422e4c06..88b26033 100644 --- a/src/TRestDetectorReadoutModule.cxx +++ b/src/TRestDetectorReadoutModule.cxx @@ -73,8 +73,7 @@ void TRestDetectorReadoutModule::Initialize() { fRotation = 0; - fMaximumDaqId = -1; - fMinimumDaqId = -1; + fDaqIdRange = {-1, -1}; fTolerance = 1.e-3; @@ -89,13 +88,15 @@ void TRestDetectorReadoutModule::SetMinMaxDaqIDs() { Int_t minID = GetChannel(0)->GetDaqID(); for (size_t ch = 0; ch < this->GetNumberOfChannels(); ch++) { Int_t daqID = GetChannel(ch)->GetDaqID(); - if (daqID > maxID) maxID = daqID; - - if (daqID < minID) minID = daqID; + if (daqID > maxID) { + maxID = daqID; + } + if (daqID < minID) { + minID = daqID; + } } - fMaximumDaqId = maxID; - fMinimumDaqId = minID; + fDaqIdRange = {minID, maxID}; } /////////////////////////////////////////////// @@ -107,7 +108,7 @@ void TRestDetectorReadoutModule::DoReadoutMapping(Int_t nodes) { /////////////////////////////////////////////////////////////////////////////// // We initialize the mapping readout net to sqrt(numberOfPixels) // However this might not be good for readouts where the pixels are - // assymmetric + // asymmetric // ///////////////////////////////////////////////////////////////////////////// Int_t totalNumberOfPixels = 0; for (size_t ch = 0; ch < this->GetNumberOfChannels(); ch++) @@ -217,7 +218,9 @@ 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 >= fMinimumDaqId && daqID <= fMaximumDaqId) return true; + if (daqID >= GetMinDaqID() && daqID <= GetMaxDaqID()) { + return true; + } return false; } @@ -229,7 +232,9 @@ Bool_t TRestDetectorReadoutModule::isDaqIDInside(Int_t daqID) { /// the pixel where coordinates absX and absY fall in. /// Int_t TRestDetectorReadoutModule::FindChannel(const TVector2& position) { - if (!isInside(position)) return -1; + if (!isInside(position)) { + return -1; + } const auto transformedCoordinates = TransformToModuleCoordinates(position); const auto& x = transformedCoordinates.X(); From 844841b6d0c5e5d5be20960ee83f91d484ba20ef Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Fri, 9 Jun 2023 12:59:01 +0200 Subject: [PATCH 43/63] remove confusing `GetSizeZ` method (should be called Y?). Single interface to access module size --- inc/TRestDetectorReadoutModule.h | 6 ------ src/TRestDetectorGainMap.cxx | 2 +- src/TRestDetectorReadoutModule.cxx | 2 +- src/TRestDetectorSignalToHitsProcess.cxx | 4 ++-- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/inc/TRestDetectorReadoutModule.h b/inc/TRestDetectorReadoutModule.h index eb19c7fe..774f9ed4 100644 --- a/inc/TRestDetectorReadoutModule.h +++ b/inc/TRestDetectorReadoutModule.h @@ -133,12 +133,6 @@ class TRestDetectorReadoutModule { /// Returns the module size (x, y) in mm inline TVector2 GetSize() const { return fSize; } - /// Returns the module size x-coordinate - inline Double_t GetSizeX() const { return fSize.X(); } - - /// Returns the module size y-coordinate - inline Double_t GetSizeZ() const { return fSize.Y(); } - /// Returns the module rotation in degrees inline Double_t GetRotation() const { return fRotation; } diff --git a/src/TRestDetectorGainMap.cxx b/src/TRestDetectorGainMap.cxx index 8bdf1e6f..8d056462 100644 --- a/src/TRestDetectorGainMap.cxx +++ b/src/TRestDetectorGainMap.cxx @@ -35,7 +35,7 @@ void TRestDetectorGainMap::DrawChannelGainMap(TRestDetectorReadoutModule* mod) { } h->Draw(); } else { - double xmin = 0, xmax = mod->GetSizeX(), ymin = 0, ymax = mod->GetSizeZ(); + double xmin = 0, xmax = mod->GetSize().X(), ymin = 0, ymax = mod->GetSize().Y(); cout << xmin << " " << xmax << " " << ymin << " " << ymax << endl; TCanvas* c1 = new TCanvas(); diff --git a/src/TRestDetectorReadoutModule.cxx b/src/TRestDetectorReadoutModule.cxx index 88b26033..37229610 100644 --- a/src/TRestDetectorReadoutModule.cxx +++ b/src/TRestDetectorReadoutModule.cxx @@ -128,7 +128,7 @@ void TRestDetectorReadoutModule::DoReadoutMapping(Int_t nodes) { cout << "Total number of pixels : " << totalNumberOfPixels << endl; cout << "Nodes : " << nodes << endl; - fMapping.Initialize(nodes, nodes, GetSizeX(), GetSizeZ()); + fMapping.Initialize(nodes, nodes, GetSize().X(), GetSize().Y()); for (size_t ch = 0; ch < this->GetNumberOfChannels(); ch++) { for (int px = 0; px < this->GetChannel(ch)->GetNumberOfPixels(); px++) { diff --git a/src/TRestDetectorSignalToHitsProcess.cxx b/src/TRestDetectorSignalToHitsProcess.cxx index 4751c9e8..30bfaca4 100644 --- a/src/TRestDetectorSignalToHitsProcess.cxx +++ b/src/TRestDetectorSignalToHitsProcess.cxx @@ -267,10 +267,10 @@ TRestEvent* TRestDetectorSignalToHitsProcess::ProcessEvent(TRestEvent* inputEven REST_HitType type = XYZ; TRestDetectorReadoutModule* mod = plane->GetModuleByID(readoutModule); if (TMath::IsNaN(x)) { - x = mod->GetPlaneCoordinates(TVector2(mod->GetSizeX() / 2, mod->GetSizeZ() / 2)).X(); + x = mod->GetPlaneCoordinates(TVector2(mod->GetSize().X() / 2, mod->GetSize().Y() / 2)).X(); type = YZ; } else if (TMath::IsNaN(y)) { - y = mod->GetPlaneCoordinates(TVector2(mod->GetSizeX() / 2, mod->GetSizeZ() / 2)).Y(); + y = mod->GetPlaneCoordinates(TVector2(mod->GetSize().X() / 2, mod->GetSize().Y() / 2)).Y(); type = XZ; } From da3356b7ef519e7a5772a399697ed98c3b51765f Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Fri, 9 Jun 2023 13:07:01 +0200 Subject: [PATCH 44/63] TRestDetectorReadoutPlane. Increasing class version --- inc/TRestDetectorReadoutPlane.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 46e2cd93..89363c63 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -171,6 +171,6 @@ class TRestDetectorReadoutPlane { // Destructor virtual ~TRestDetectorReadoutPlane(); - ClassDef(TRestDetectorReadoutPlane, 4); + ClassDef(TRestDetectorReadoutPlane, 5); }; #endif From 9d3b51dde1267b76f825f5543078581ab448a4a8 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Sun, 11 Jun 2023 19:36:34 +0200 Subject: [PATCH 45/63] TRestDetectorReadoutPlane. Recovering fAxisX and fAxisY --- inc/TRestDetectorReadoutPlane.h | 14 +++---- src/TRestDetectorReadoutPlane.cxx | 63 ++++++++++++------------------- 2 files changed, 31 insertions(+), 46 deletions(-) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index 89363c63..fe285b61 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -44,11 +44,11 @@ class TRestDetectorReadoutPlane { /// A vector that defines the plane orientation and the side of the active volume. TVector3 fNormal = {0, 0, 1}; //< - /// Coordinate axes are orthonormal vectors contained in the plane (and perpendicular to the normal - /// vector). They are calculated internally from the normal vector and the rotation angle. A normal vector - /// of (0,0,1) and a rotation of 0 degrees will result in a plane with axes (1,0,0) and (0,1,0). See the - /// TRestDetectorReadoutPlane::UpdateAxes() method for details. - std::pair fCoordinateAxes; //< + /// A vector contained in the plane that defines the plane X-axis + TVector3 fAxisX = {0, 0, 0}; //< + + /// A vector contained in the plane that defines the plane Y-axis + TVector3 fAxisY = {0, 0, 0}; //< /// The fraction of charge/energy this readout plane collects from a hit position. Double_t fChargeCollection = 1; //< @@ -98,10 +98,10 @@ class TRestDetectorReadoutPlane { inline TVector3 GetNormal() const { return fNormal; } /// Returns a TVector3 with a vector that defines the X-axis plane coordinate system - inline TVector3 GetAxisX() const { return fCoordinateAxes.first; } + inline TVector3 GetAxisX() const { return fAxisX; } /// Returns a TVector3 with a vector that defines the Y-axis plane coordinate system - inline TVector3 GetAxisY() const { return fCoordinateAxes.second; } + inline TVector3 GetAxisY() const { return fAxisY; } /// Returns the charge collection ratio at this readout plane inline Double_t GetChargeCollection() const { return fChargeCollection; } diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 0de2a8b1..cf82e5f4 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -1,24 +1,3 @@ -/************************************************************************* - * This file is part of the REST software framework. * - * * - * Copyright (C) 2016 GIFNA/TREX (University of Zaragoza) * - * For more information see http://gifna.unizar.es/trex * - * * - * REST is free software: you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation, either version 3 of the License, or * - * (at your option) any later version. * - * * - * REST is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have a copy of the GNU General Public License along with * - * REST in $REST_PATH/LICENSE. * - * If not, see http://www.gnu.org/licenses/. * - * For the list of contributors see $REST_PATH/CREDITS. * - *************************************************************************/ ////////////////////////////////////////////////////////////////////////// /// @@ -27,6 +6,16 @@ /// a vector of TRestDetectorReadoutModule with the readout modules that are /// implemented in the readout plane. /// +/// ### Coordinate axes +/// +/// In order to define 2-dimensional components in an arbitrary readout plane +/// orientation we use coordinate axes which are orthonormal vectors contained +/// in the plane, `fAxisX` and `fAxisY`, therefore perpendicular to the normal +/// vector. They are calculated internally from the normal vector and the +/// plane rotation. A normal vector of (0,0,1) and a rotation of 0 degrees +/// will result in a plane with axes (1,0,0) and (0,1,0). See the +/// TRestDetectorReadoutPlane::UpdateAxes() method for details. +/// ///-------------------------------------------------------------------------- /// /// RESTsoft - Software for Rare Event Searches with TPCs @@ -50,10 +39,7 @@ ClassImp(TRestDetectorReadoutPlane); /////////////////////////////////////////////// /// \brief Default TRestDetectorReadoutPlane constructor /// -TRestDetectorReadoutPlane::TRestDetectorReadoutPlane() { - // We call UpdateAxes() to calculate the X and Y axis from the normal vector and rotation. - UpdateAxes(); -} +TRestDetectorReadoutPlane::TRestDetectorReadoutPlane() {} /////////////////////////////////////////////// /// \brief Default TRestDetectorReadoutPlane destructor @@ -369,12 +355,10 @@ void TRestDetectorReadoutPlane::Print(Int_t DetailLevel) { << " Y : " << fPosition.Y() << " mm, Z : " << fPosition.Z() << " mm" << RESTendl; RESTMetadata << "-- Normal vector : X = " << fNormal.X() << " mm, " << " Y : " << fNormal.Y() << " mm, Z : " << fNormal.Z() << " mm" << RESTendl; - RESTMetadata << "-- X-axis vector : X = " << fCoordinateAxes.first.X() << " mm, " - << " Y : " << fCoordinateAxes.first.Y() << " mm, Z : " << fCoordinateAxes.first.Z() - << " mm" << RESTendl; - RESTMetadata << "-- Y-axis vector : Y = " << fCoordinateAxes.second.X() << " mm, " - << " Y : " << fCoordinateAxes.second.Y() << " mm, Z : " << fCoordinateAxes.second.Z() - << " mm" << RESTendl; + RESTMetadata << "-- X-axis vector : X = " << fAxisX.X() << " mm, " + << " Y : " << fAxisX.Y() << " mm, Z : " << fAxisX.Z() << " mm" << RESTendl; + RESTMetadata << "-- Y-axis vector : Y = " << fAxisY.X() << " mm, Y : " << fAxisY.Y() + << " mm, Z : " << fAxisY.Z() << " mm" << RESTendl; RESTMetadata << "-- Cathode Position : X = " << GetCathodePosition().X() << " mm, " << " Y : " << GetCathodePosition().Y() << " mm, Z : " << GetCathodePosition().Z() << " mm" << RESTendl; @@ -459,8 +443,10 @@ void TRestDetectorReadoutPlane::GetBoundaries(double& xmin, double& xmax, double } void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent - fCoordinateAxes.first = {1, 0, 0}; - fCoordinateAxes.second = {0, 1, 0}; + if (fNormal == TVector3(0, 0, 0)) return; + + fAxisX = {1, 0, 0}; + fAxisY = {0, 1, 0}; // Check if fNormal is different from the original normal const TVector3 originalNormal = {0, 0, 1}; @@ -472,17 +458,16 @@ void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent double rotationAngle = acos(originalNormal.Dot(fNormal) / (originalNormal.Mag() * fNormal.Mag())); // Rotate the axes around the rotation axis by the rotation angle - fCoordinateAxes.first.Rotate(rotationAngle, rotationAxis); - fCoordinateAxes.second.Rotate(rotationAngle, rotationAxis); + fAxisX.Rotate(rotationAngle, rotationAxis); + fAxisY.Rotate(rotationAngle, rotationAxis); } // rotate around normal by rotation angle (angle in radians) - fCoordinateAxes.first.Rotate(fRotation, fNormal); - fCoordinateAxes.second.Rotate(fRotation, fNormal); + fAxisX.Rotate(fRotation, fNormal); + fAxisY.Rotate(fRotation, fNormal); } void TRestDetectorReadoutPlane::SetRotation(Double_t radians) { - // modulo 360.0 - fRotation = radians - TMath::TwoPi() * TMath::Floor(radians / TMath::TwoPi()); + fRotation = radians; UpdateAxes(); } From e0f4578f4f187bb2536b961fee0c9db93911322f Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Mon, 12 Jun 2023 09:55:21 +0200 Subject: [PATCH 46/63] remove #pragma region directive --- src/TRestDetectorReadout.cxx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index 3be9935f..d2e03ee3 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -474,8 +474,6 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition))); plane.SetRotation(GetDblParameterWithUnits("rotation", planeDefinition)); -#pragma region addReadoutModuleToPlane - moduleVector.clear(); TiXmlElement* moduleDefinition = GetElement("addReadoutModule", planeDefinition); while (moduleDefinition != nullptr) { @@ -597,7 +595,7 @@ void TRestDetectorReadout::InitFromConfigFile() { } TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlElement* moduleDefinition) { - TRestDetectorReadoutModule* mod = new TRestDetectorReadoutModule(); + auto mod = new TRestDetectorReadoutModule(); TRestDetectorReadoutModule& module = *mod; if (GetVerboseLevel() >= TRestStringOutput::REST_Verbose_Level::REST_Warning) module.EnableWarnings(); @@ -636,7 +634,7 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle pixelDefinition = GetNextElement(pixelDefinition); } - if (pixelIDVector.size() > 0 && pixelIDVector.size() != pixelVector.size()) { + if (!pixelIDVector.empty() && pixelIDVector.size() != pixelVector.size()) { RESTError << "pixel id definition may be wrong! It must be coherent and starts from 0. Check your " "readout module definition!" @@ -666,7 +664,7 @@ TRestDetectorReadoutModule* TRestDetectorReadout::ParseModuleDefinition(TiXmlEle channelDefinition = GetNextElement(channelDefinition); } - if (channelIDVector.size() > 0 && channelIDVector.size() != channelVector.size()) { + if (!channelIDVector.empty() && channelIDVector.size() != channelVector.size()) { RESTError << "TRestDetectorReadout::ParseModuleDefinition. Channel id definition may be wrong!" << "check your readout module definition!" << RESTendl; RESTError << " " << RESTendl; From d1521c25e93d13fd5f4a14186d9190f2f75bfef5 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Mon, 12 Jun 2023 10:53:37 +0200 Subject: [PATCH 47/63] TRestDetectorReadoutPlane. Fixing a piece of code where module rotation needs to be worked out in degrees --- src/TRestDetectorReadoutPlane.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index cf82e5f4..e2193e73 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -139,7 +139,7 @@ Double_t TRestDetectorReadoutPlane::GetX(Int_t modID, Int_t chID) { Double_t deltaX = abs(x2 - x1); Double_t deltaY = abs(y2 - y1); - Int_t rotation = (Int_t)rModule->GetRotation(); + Int_t rotation = (Int_t)(std::round(rModule->GetRotation() * units("degrees"))); if (rotation % 90 == 0) { if (rotation / 90 % 2 == 0) // rotation is 0, 180, 360... { @@ -209,7 +209,7 @@ Double_t TRestDetectorReadoutPlane::GetY(Int_t modID, Int_t chID) { Double_t deltaX = abs(x2 - x1); Double_t deltaY = abs(y2 - y1); - Int_t rotation = (Int_t)rModule->GetRotation(); + Int_t rotation = (Int_t)std::round(rModule->GetRotation() * units("degrees")); if (rotation % 90 == 0) { if (rotation / 90 % 2 == 0) // rotation is 0, 180, 360... { From e78c22783c182702fb4ae015e2e93ed442e88c69 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Mon, 12 Jun 2023 11:22:41 +0200 Subject: [PATCH 48/63] prevent user from setting zero vector as normal --- src/TRestDetectorReadoutPlane.cxx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index e2193e73..510919bb 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -63,6 +63,12 @@ Int_t TRestDetectorReadoutPlane::GetNumberOfChannels() { /// void TRestDetectorReadoutPlane::SetNormal(const TVector3& normal) { fNormal = normal.Unit(); + // prevent user from declaring the zero vector as normal + if (TMath::Abs(fNormal.Mag2() - 1.0) > 1E-6) { + // only the zero vector will have a magnitude different from 1.0 after normalization + RESTError << "TRestDetectorReadoutPlane::SetNormal : normal vector cannot be zero." << RESTendl; + exit(1); + } UpdateAxes(); } From 8e40b13793295e05210fd68b51c16ccbfab54bc2 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Mon, 12 Jun 2023 11:23:17 +0200 Subject: [PATCH 49/63] verify axes and normal are orthonormal reference frame --- src/TRestDetectorReadoutPlane.cxx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 510919bb..a97d75c3 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -449,8 +449,6 @@ void TRestDetectorReadoutPlane::GetBoundaries(double& xmin, double& xmax, double } void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent - if (fNormal == TVector3(0, 0, 0)) return; - fAxisX = {1, 0, 0}; fAxisY = {0, 1, 0}; @@ -471,6 +469,23 @@ void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent // rotate around normal by rotation angle (angle in radians) fAxisX.Rotate(fRotation, fNormal); fAxisY.Rotate(fRotation, fNormal); + + // verify that fNormal, fAxisX and fAxisY are orthogonal and unitary + constexpr double tolerance = 1E-6; + if (TMath::Abs(fNormal.Mag2() - 1.0) > tolerance || TMath::Abs(fAxisX.Mag2() - 1.0) > tolerance || + TMath::Abs(fAxisY.Mag2() - 1.0) > tolerance) { + RESTError << "TRestDetectorReadoutPlane::UpdateAxes() : " + << "The normal vector, the X-axis vector and the Y-axis vector must be unitary." + << RESTendl; + exit(1); + } + if (TMath::Abs(fNormal.Dot(fAxisX)) > tolerance || TMath::Abs(fNormal.Dot(fAxisY)) > tolerance || + TMath::Abs(fAxisX.Dot(fAxisY)) > tolerance) { + RESTError << "TRestDetectorReadoutPlane::UpdateAxes() : " + << "The normal vector, the X-axis vector and the Y-axis vector must be orthogonal." + << RESTendl; + exit(1); + } } void TRestDetectorReadoutPlane::SetRotation(Double_t radians) { From cc014aa23fcde9ad4f7a086666c0279bef83d36a Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Mon, 12 Jun 2023 11:43:26 +0200 Subject: [PATCH 50/63] handle case when normal is exactly opposite to originalNormal. Add additional check --- src/TRestDetectorReadoutPlane.cxx | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index a97d75c3..9baf17c1 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -449,12 +449,20 @@ void TRestDetectorReadoutPlane::GetBoundaries(double& xmin, double& xmax, double } void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent + const TVector3 originalNormal = {0, 0, 1}; fAxisX = {1, 0, 0}; fAxisY = {0, 1, 0}; + constexpr double tolerance = 1E-6; + // Check if fNormal is different from the original normal - const TVector3 originalNormal = {0, 0, 1}; - if (fNormal != originalNormal) { + if ((fNormal - originalNormal).Mag2() < tolerance) { + // do nothing + } else if ((fNormal + originalNormal).Mag2() < tolerance) { + // normal vector is opposite to the original normal (0,0,-1), we must also flip the axes + fAxisX *= -1; + fAxisY *= -1; + } else { // Calculate the rotation axis by taking the cross product between the original normal and fNormal TVector3 rotationAxis = originalNormal.Cross(fNormal); @@ -471,7 +479,6 @@ void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent fAxisY.Rotate(fRotation, fNormal); // verify that fNormal, fAxisX and fAxisY are orthogonal and unitary - constexpr double tolerance = 1E-6; if (TMath::Abs(fNormal.Mag2() - 1.0) > tolerance || TMath::Abs(fAxisX.Mag2() - 1.0) > tolerance || TMath::Abs(fAxisY.Mag2() - 1.0) > tolerance) { RESTError << "TRestDetectorReadoutPlane::UpdateAxes() : " @@ -486,6 +493,14 @@ void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent << RESTendl; exit(1); } + // verify that the correct order of axes is being used: X cross Y = normal (and not - normal) + if ((fAxisX.Cross(fAxisY) - fNormal).Mag2() > tolerance) { + RESTError + << "TRestDetectorReadoutPlane::UpdateAxes() : " + << "The normal vector is not the cross product between the X-axis vector and the Y-axis vector." + << RESTendl; + exit(1); + } } void TRestDetectorReadoutPlane::SetRotation(Double_t radians) { From 2cd0ca7296464b5be4fee335e4b2d0588a68f554 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Mon, 12 Jun 2023 13:09:10 +0200 Subject: [PATCH 51/63] update axes initialization. Add tests for axes --- inc/TRestDetectorReadoutPlane.h | 4 +-- src/TRestDetectorReadoutPlane.cxx | 6 ++-- test/src/TRestDetectorReadout.cxx | 56 +++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 test/src/TRestDetectorReadout.cxx diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index fe285b61..bc5df878 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -45,10 +45,10 @@ class TRestDetectorReadoutPlane { TVector3 fNormal = {0, 0, 1}; //< /// A vector contained in the plane that defines the plane X-axis - TVector3 fAxisX = {0, 0, 0}; //< + TVector3 fAxisX; //< /// A vector contained in the plane that defines the plane Y-axis - TVector3 fAxisY = {0, 0, 0}; //< + TVector3 fAxisY; //< /// The fraction of charge/energy this readout plane collects from a hit position. Double_t fChargeCollection = 1; //< diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 9baf17c1..e86236f2 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -39,7 +39,7 @@ ClassImp(TRestDetectorReadoutPlane); /////////////////////////////////////////////// /// \brief Default TRestDetectorReadoutPlane constructor /// -TRestDetectorReadoutPlane::TRestDetectorReadoutPlane() {} +TRestDetectorReadoutPlane::TRestDetectorReadoutPlane() { UpdateAxes(); } /////////////////////////////////////////////// /// \brief Default TRestDetectorReadoutPlane destructor @@ -460,8 +460,8 @@ void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent // do nothing } else if ((fNormal + originalNormal).Mag2() < tolerance) { // normal vector is opposite to the original normal (0,0,-1), we must also flip the axes - fAxisX *= -1; - fAxisY *= -1; + fAxisX = {0, -1, 0}; + fAxisY = {-1, 0, 0}; } else { // Calculate the rotation axis by taking the cross product between the original normal and fNormal TVector3 rotationAxis = originalNormal.Cross(fNormal); diff --git a/test/src/TRestDetectorReadout.cxx b/test/src/TRestDetectorReadout.cxx new file mode 100644 index 00000000..add1536f --- /dev/null +++ b/test/src/TRestDetectorReadout.cxx @@ -0,0 +1,56 @@ + +#include +#include + +#include + +namespace fs = std::filesystem; + +using namespace std; + +const auto filesPath = fs::path(__FILE__).parent_path().parent_path() / "files"; + +constexpr double tolerance = 1E-6; + +bool AreEqual(const TVector3& a, const TVector3& b) { return (a - b).Mag2() < tolerance; } + +TEST(TRestDetectorReadout, TestFiles) { + cout << "FrameworkCore test files path: " << filesPath << endl; + + // Check dir exists and is a directory + EXPECT_TRUE(fs::is_directory(filesPath)); + // Check it's not empty + EXPECT_TRUE(!fs::is_empty(filesPath)); +} + +TEST(TRestDetectorReadout, Axes) { + { + TRestDetectorReadoutPlane plane; + plane.PrintMetadata(); + // default values + + EXPECT_TRUE(AreEqual(plane.GetNormal(), {0, 0, 1})); + EXPECT_TRUE(AreEqual(plane.GetAxisX(), {1, 0, 0})); + EXPECT_TRUE(AreEqual(plane.GetAxisY(), {0, 1, 0})); + } + + { + TRestDetectorReadoutPlane plane; + plane.SetNormal({0, 0, -1}); + plane.PrintMetadata(); + + EXPECT_TRUE(AreEqual(plane.GetNormal(), {0, 0, -1})); + EXPECT_TRUE(AreEqual(plane.GetAxisX(), {0, -1, 0})); + EXPECT_TRUE(AreEqual(plane.GetAxisY(), {-1, 0, 0})); + } + + { + TRestDetectorReadoutPlane plane; + plane.SetNormal({0, 0.01, 1}); + plane.PrintMetadata(); + + EXPECT_TRUE(AreEqual(plane.GetNormal(), {0, 0.0099995, 0.99995})); + EXPECT_TRUE(AreEqual(plane.GetAxisX(), {1, 0, 0})); + EXPECT_TRUE(AreEqual(plane.GetAxisY(), {0, 0.99995, -0.0099995})); + } +} From 65a2f67479abab0dd7ca288861c439733188cc75 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Tue, 13 Jun 2023 09:22:34 +0200 Subject: [PATCH 52/63] TRestDetectorReadout. Adding default values for rotation and chargeCollection --- src/TRestDetectorReadout.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index d2e03ee3..7dfca8e5 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -471,8 +471,8 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetPosition(Get3DVectorParameterWithUnits("position", planeDefinition)); plane.SetNormal(Get3DVectorParameterWithUnits("normal", planeDefinition)); plane.SetHeight(GetDblParameterWithUnits("height", planeDefinition)); - plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition))); - plane.SetRotation(GetDblParameterWithUnits("rotation", planeDefinition)); + plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition, 1))); + plane.SetRotation(GetDblParameterWithUnits("rotation", planeDefinition, 0)); moduleVector.clear(); TiXmlElement* moduleDefinition = GetElement("addReadoutModule", planeDefinition); From 95b166feaa95df19f70d5f41f39a2d917b2059cb Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Tue, 13 Jun 2023 09:23:04 +0200 Subject: [PATCH 53/63] generateReadout.rml removing units from normal definition --- pipeline/readout/generateReadout.rml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pipeline/readout/generateReadout.rml b/pipeline/readout/generateReadout.rml index 77d9e5e5..df6c004b 100644 --- a/pipeline/readout/generateReadout.rml +++ b/pipeline/readout/generateReadout.rml @@ -30,7 +30,7 @@ Finally we call the method TRestRun::FormOutputFile() through TRestManager to sa - + new readout plane configuration down to up view From a9831e7ffda211f586875b503e1ef06cc9affb36 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Tue, 13 Jun 2023 10:08:25 +0200 Subject: [PATCH 54/63] TRestDetectorReadout. Charge collection default value removed --- src/TRestDetectorReadout.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TRestDetectorReadout.cxx b/src/TRestDetectorReadout.cxx index 7dfca8e5..9d1c5b16 100644 --- a/src/TRestDetectorReadout.cxx +++ b/src/TRestDetectorReadout.cxx @@ -471,7 +471,7 @@ void TRestDetectorReadout::InitFromConfigFile() { plane.SetPosition(Get3DVectorParameterWithUnits("position", planeDefinition)); plane.SetNormal(Get3DVectorParameterWithUnits("normal", planeDefinition)); plane.SetHeight(GetDblParameterWithUnits("height", planeDefinition)); - plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition, 1))); + plane.SetChargeCollection(StringToDouble(GetFieldValue("chargeCollection", planeDefinition))); plane.SetRotation(GetDblParameterWithUnits("rotation", planeDefinition, 0)); moduleVector.clear(); From 9a672371d4295192b01a7016dbcf073f2293f62e Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Tue, 13 Jun 2023 11:15:56 +0200 Subject: [PATCH 55/63] readout/validation.txt Fixing validation axis orientation --- pipeline/readout/validation.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pipeline/readout/validation.txt b/pipeline/readout/validation.txt index 629771b5..3507c345 100644 --- a/pipeline/readout/validation.txt +++ b/pipeline/readout/validation.txt @@ -17,8 +17,8 @@  ----------------------------------------------------------------------------------------------------   || -- Position : X = 0 mm, Y : 0 mm, Z : 990 mm ||   || -- Normal vector : X = 0 mm, Y : 0 mm, Z : -1 mm ||  - || -- X-axis vector : X = -1 mm, Y : 0 mm, Z : 0 mm ||  - || -- Y-axis vector : Y = 0 mm, Y : 1 mm, Z : 0 mm ||  + || -- X-axis vector : X = 0 mm, Y : -1 mm, Z : 0 mm ||  + || -- Y-axis vector : Y = -1 mm, Y : 0 mm, Z : 0 mm ||   || -- Cathode Position : X = 0 mm, Y : 0 mm, Z : 0 mm ||   || -- Total drift distance : 990 mm ||   || -- Charge collection : 1 ||  From 05dafc988403040fbf6b5537a3805cbdfa61fd97 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Tue, 13 Jun 2023 11:19:24 +0200 Subject: [PATCH 56/63] pipeline/generateReadout.rml adding units --- pipeline/readout/generateReadout.rml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pipeline/readout/generateReadout.rml b/pipeline/readout/generateReadout.rml index df6c004b..1f78eed1 100644 --- a/pipeline/readout/generateReadout.rml +++ b/pipeline/readout/generateReadout.rml @@ -40,13 +40,13 @@ Finally we call the method TRestRun::FormOutputFile() through TRestManager to sa (-292.175,194.65) (292.175,1.15) - - - - - - - + + + + + + + From 5a21b30caaef43a999cd580d84c2659bf450d69c Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Tue, 13 Jun 2023 13:20:39 +0200 Subject: [PATCH 57/63] methods to go from/to global/local coords --- inc/TRestDetectorReadoutPlane.h | 5 +++++ src/TRestDetectorReadoutPlane.cxx | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index bc5df878..e5365404 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -154,6 +154,11 @@ class TRestDetectorReadoutPlane { Int_t GetModuleIDFromPosition(Double_t x, Double_t y, Double_t z); + TVector2 GetPositionInPlane(const TVector3& point) const; + Double_t GetDistanceToPlane(const TVector3& point) const; + + TVector3 GetPositionInWorld(const TVector2& point, Double_t height = 0) const; + void Draw(); void Print(Int_t DetailLevel = 0); diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index e86236f2..c25765b0 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -507,3 +507,18 @@ void TRestDetectorReadoutPlane::SetRotation(Double_t radians) { fRotation = radians; UpdateAxes(); } + +TVector2 TRestDetectorReadoutPlane::GetPositionInPlane(const TVector3& point) const { + // Given a point in space, returns the position of the point in the plane using the plane's axes + // The position is returned in the plane's local coordinates (in mm) + return {fAxisX.Dot(point - fPosition), + fAxisY.Dot(point - fPosition)}; // dot product between vectors is the projection +} + +TVector3 TRestDetectorReadoutPlane::GetPositionInWorld(const TVector2& point, Double_t height) const { + return fPosition + point.X() * fAxisX + point.Y() * fAxisY + height * fNormal; +} + +Double_t TRestDetectorReadoutPlane::GetDistanceToPlane(const TVector3& point) const { + return (point - fPosition).Dot(fNormal); +} From 0fe6b35d8c75fb8fc7f7a0e5d1d7d57e9c14a67e Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Tue, 13 Jun 2023 13:23:37 +0200 Subject: [PATCH 58/63] rotation is now saved as a value from 0 to 2pi --- src/TRestDetectorReadoutPlane.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index c25765b0..33ed1331 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -504,7 +504,8 @@ void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent } void TRestDetectorReadoutPlane::SetRotation(Double_t radians) { - fRotation = radians; + // sets fRotation modulo 2pi + fRotation = TVector2::Phi_0_2pi(radians); UpdateAxes(); } From b24413347d3588717b697e95441f57efdf3937b2 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Tue, 13 Jun 2023 14:08:41 +0200 Subject: [PATCH 59/63] add method to set plane x-axis explicitly. Add validation --- inc/TRestDetectorReadoutPlane.h | 2 ++ src/TRestDetectorReadoutPlane.cxx | 14 +++++++++++ test/src/TRestDetectorReadout.cxx | 40 +++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+) diff --git a/inc/TRestDetectorReadoutPlane.h b/inc/TRestDetectorReadoutPlane.h index e5365404..c3a9e8d8 100644 --- a/inc/TRestDetectorReadoutPlane.h +++ b/inc/TRestDetectorReadoutPlane.h @@ -81,6 +81,8 @@ class TRestDetectorReadoutPlane { void SetRotation(Double_t radians); + void SetAxisX(const TVector3& axis); + // Getters /// Returns an integer with the plane id number. inline Int_t GetID() const { return fId; } diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 33ed1331..63d3d0e7 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -523,3 +523,17 @@ TVector3 TRestDetectorReadoutPlane::GetPositionInWorld(const TVector2& point, Do Double_t TRestDetectorReadoutPlane::GetDistanceToPlane(const TVector3& point) const { return (point - fPosition).Dot(fNormal); } + +void TRestDetectorReadoutPlane::SetAxisX(const TVector3& axis) { + const TVector3 axisInPlane = (axis - axis.Dot(fNormal) * fNormal).Unit(); + if (axisInPlane.Mag2() < 1E-6) { + RESTError << "TRestDetectorReadoutPlane::SetAxisX() : " + << "The X-axis vector must not be parallel to the normal vector." << RESTendl; + exit(1); + } + + // compute the angle between the new axis and the old axis + const Double_t angle = fAxisX.Angle(axisInPlane); + + SetRotation(fRotation - angle); +} diff --git a/test/src/TRestDetectorReadout.cxx b/test/src/TRestDetectorReadout.cxx index add1536f..9bc23846 100644 --- a/test/src/TRestDetectorReadout.cxx +++ b/test/src/TRestDetectorReadout.cxx @@ -54,3 +54,43 @@ TEST(TRestDetectorReadout, Axes) { EXPECT_TRUE(AreEqual(plane.GetAxisY(), {0, 0.99995, -0.0099995})); } } + +TEST(TRestDetectorReadout, SetAxisX) { + TRestDetectorReadoutPlane plane; + plane.SetNormal({0, 0.5, 1}); + plane.SetPosition({10.0, 5.0, 50.0}); + plane.SetRotation(TMath::DegToRad() * 32.0); + plane.SetHeight(10.0); + plane.PrintMetadata(); + // default values + + // axis will be projected into the plane + const TVector3 newXAxis = {1.0, -2.0, 5.0}; + + plane.SetAxisX(newXAxis); + + const TVector3 axisX = plane.GetAxisX(); + const TVector3 newXAxisProjected = + (newXAxis - plane.GetNormal() * newXAxis.Dot(plane.GetNormal())).Unit(); + cout << "axisX: " << axisX.X() << ", " << axisX.Y() << ", " << axisX.Z() << endl; + cout << "axisXProjected: " << newXAxisProjected.X() << ", " << newXAxisProjected.Y() << ", " + << newXAxisProjected.Z() << endl; + EXPECT_TRUE(AreEqual(plane.GetAxisX(), newXAxisProjected)); +} + +TEST(TRestDetectorReadout, Module) { + TRestDetectorReadoutPlane plane; + plane.SetNormal({0, 0, 1}); + plane.SetPosition({10.0, 5.0, 50.0}); + plane.SetRotation(TMath::DegToRad() * 90.0); + plane.SetHeight(10.0); + + plane.PrintMetadata(); + + const TVector3 worldPoint = {0, 0, 100.0}; + const TVector2 local = plane.GetPositionInPlane(worldPoint); + cout << "local: " << local.X() << ", " << local.Y() << endl; + + const auto distance = plane.GetDistanceToPlane(worldPoint); + cout << "distance: " << distance << endl; +} From a5159dc7b5787355fab95123e25b7ce82f8f5171 Mon Sep 17 00:00:00 2001 From: Luis Antonio Obis Aparicio Date: Tue, 13 Jun 2023 14:10:32 +0200 Subject: [PATCH 60/63] rename originalNormal to zUnit (internal method) --- src/TRestDetectorReadoutPlane.cxx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/TRestDetectorReadoutPlane.cxx b/src/TRestDetectorReadoutPlane.cxx index 63d3d0e7..9f291022 100644 --- a/src/TRestDetectorReadoutPlane.cxx +++ b/src/TRestDetectorReadoutPlane.cxx @@ -449,25 +449,25 @@ void TRestDetectorReadoutPlane::GetBoundaries(double& xmin, double& xmax, double } void TRestDetectorReadoutPlane::UpdateAxes() { // idempotent - const TVector3 originalNormal = {0, 0, 1}; + const TVector3 zUnit = {0, 0, 1}; fAxisX = {1, 0, 0}; fAxisY = {0, 1, 0}; constexpr double tolerance = 1E-6; - // Check if fNormal is different from the original normal - if ((fNormal - originalNormal).Mag2() < tolerance) { + // Check if fNormal is different from (0,0,1) + if ((fNormal - zUnit).Mag2() < tolerance) { // do nothing - } else if ((fNormal + originalNormal).Mag2() < tolerance) { - // normal vector is opposite to the original normal (0,0,-1), we must also flip the axes + } else if ((fNormal + zUnit).Mag2() < tolerance) { + // normal vector is opposite to (0,0,1), we must also flip the axes fAxisX = {0, -1, 0}; fAxisY = {-1, 0, 0}; } else { // Calculate the rotation axis by taking the cross product between the original normal and fNormal - TVector3 rotationAxis = originalNormal.Cross(fNormal); + TVector3 rotationAxis = zUnit.Cross(fNormal); // Calculate the rotation angle using the dot product between the original normal and fNormal - double rotationAngle = acos(originalNormal.Dot(fNormal) / (originalNormal.Mag() * fNormal.Mag())); + double rotationAngle = acos(zUnit.Dot(fNormal) / (zUnit.Mag() * fNormal.Mag())); // Rotate the axes around the rotation axis by the rotation angle fAxisX.Rotate(rotationAngle, rotationAxis); From 92da00a47682fedaac2029e4573673205040ca0c Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 14 Jun 2023 10:46:10 +0200 Subject: [PATCH 61/63] Transferring basic-readouts validation --- .github/workflows/validation.yml | 37 ++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/.github/workflows/validation.yml b/.github/workflows/validation.yml index 30b9439c..75fc849c 100644 --- a/.github/workflows/validation.yml +++ b/.github/workflows/validation.yml @@ -55,7 +55,7 @@ jobs: - name: Build and install uses: rest-for-physics/framework/.github/actions/build@master with: - cmake-flags: "-DCMAKE_INSTALL_PREFIX=${{ env.REST_PATH }} -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -DREST_WELCOME=ON -DRESTLIB_DETECTOR=ON" + cmake-flags: "-DCMAKE_INSTALL_PREFIX=${{ env.REST_PATH }} -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -DREST_WELCOME=ON -DRESTLIB_DETECTOR=ON -DREST_GARFIELD=ON" branch: ${{ env.BRANCH_NAME }} - name: Load REST libraries run: | @@ -67,6 +67,19 @@ jobs: 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 readout: name: "Readout" @@ -86,19 +99,7 @@ jobs: 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 + - name: Manager readout generation run: | source ${{ env.REST_PATH }}/thisREST.sh cd ${{ env.DETECTOR_LIB_PATH }}/pipeline/readout @@ -108,6 +109,14 @@ jobs: ls echo "Validating" python3 compareFiles.py + - name: Basic Readout repository tests + run: | + source ${{ env.REST_PATH }}/thisREST.sh + git clone https://github.com/rest-for-physics/basic-readouts.git + cd basic-readouts/ + restRoot -b -q GenerateReadouts.C'("basic.root")' + restRoot -b -q BasicValidation.C'("basic.root", "pixelDecoding")' + # We need to introduce basic validation here # - diff validation.txt print.txt # - name: Basic Readout From ee94ffb5569965f7f36d9bf7ee77194d591b7e53 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 14 Jun 2023 08:47:06 +0000 Subject: [PATCH 62/63] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .github/workflows/validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/validation.yml b/.github/workflows/validation.yml index 75fc849c..5f0d6b90 100644 --- a/.github/workflows/validation.yml +++ b/.github/workflows/validation.yml @@ -67,7 +67,7 @@ jobs: with: key: ${{ env.BRANCH_NAME }}-${{ github.sha }} path: ${{ env.REST_PATH }} - + #- name: Load Gas # run: | #source ${{ env.REST_PATH }}/thisREST.sh From 4c9606b1741c0d2262fb2eb7ca98685dbbfb85e1 Mon Sep 17 00:00:00 2001 From: Javier Galan Date: Wed, 14 Jun 2023 12:26:02 +0200 Subject: [PATCH 63/63] Updating to master validation --- .github/workflows/frameworkValidation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/frameworkValidation.yml b/.github/workflows/frameworkValidation.yml index ddf625ef..577a7362 100644 --- a/.github/workflows/frameworkValidation.yml +++ b/.github/workflows/frameworkValidation.yml @@ -20,4 +20,4 @@ defaults: jobs: framework-validation: - uses: rest-for-physics/framework/.github/workflows/validation.yml@jgalan-readoutplane-update + uses: rest-for-physics/framework/.github/workflows/validation.yml@master