Commit 9257f04a authored by Irene Mateos Dominguez's avatar Irene Mateos Dominguez
Browse files

Merge branch 'Dev' of https://gitlab.cern.ch/cms_tk_ph2/Ph2_ACF into irene/InterfaceDev

Conflicts:
	HWDescription/SSA.cc
	HWInterface/D19cFWInterface.cc
	HWInterface/D19cFWInterface.h
	HWInterface/D19cOpticalInterface.cc
	HWInterface/FEConfigurationInterface.h
	HWInterface/MPAInterface.cc
	HWInterface/SSAInterface.cc
	HWInterface/lpGBTInterface.cc
	NetworkUtils
	Utils/D19cPSEventAS.cc
	settings/address_tables/uDTC_OT_address_table.xml
	src/feh_ps_test.cc
	tools/BackEndAlignment.cc
	tools/OTHybridTester.cc
	tools/PSHybridTester.cc
parents e3e586aa 3b5f7550
Pipeline #4125764 failed with stages
in 9 minutes and 57 seconds
......@@ -31,8 +31,5 @@ rundir*
ReadRootFile.py
core.*
FEH_PS*/
*.cc
*.bin
.vscode/*
*.py
*.txt
## YAML script for CI of Ph2_ACF Software/Middleware
## Author: Emery Nibigira (IPHC-Strasbourg)
## Author: Emery Nibigira (IPHC-Strasbourg, U. of Tennessee)
## emery.nibigira@cern.ch
## Updates: Lawrence Lee (U. of Tennessee)
## lawrence.lee.jr@cern.ch
## SETUP ##########
## The pipeline starts when a merge request is created
......@@ -19,7 +22,9 @@ workflow:
when: always
allow_failure: true
image: gitlab-registry.cern.ch/cms-iphc/tk_ph2/dockerimageph2acf
image:
name: gitlab-registry.cern.ch/cms_tk_ph2/docker_exploration/cmstkph2_ci_c7:latest
entrypoint: ["/bin/sh","-c"]
variables:
GIT_SUBMODULE_STRATEGY: recursive
......@@ -29,6 +34,7 @@ stages:
- build
- run
- check
- deploy
## QUALITY ##########
......@@ -41,102 +47,74 @@ include:
.build:
stage: build
needs: []
image:
name: gitlab-registry.cern.ch/cms_tk_ph2/docker_exploration/cmstkph2_ci_c7:latest
entrypoint: ["/bin/sh","-c"]
before_script:
- source ./setup.sh
- source ./setup.sh ci
script:
- mkdir -p build; cd build
- cmake ..
- make -j4
artifacts:
paths:
- $CI_PROJECT_DIR/
expire_in: 1 week
# Stand-alone application, without data streaming
build:StandAlone_woDS:
extends: .build
before_script:
- source ./setup.sh
- export CompileForHerd=false
- export CompileForShep=false
- export CompileWithEUDAQ=false
- export CompileWithTCUSB=false
- export UseTCUSBforROH=false
- export UseTCUSBTcpServer=false
artifacts:
paths:
- bin/ot_module_test
- bin/commission
- bin/CMSITminiDAQ
expire_in: 1 week
# artifacts:
# paths:
# - bin/ot_module_test
# - bin/commission
# - bin/CMSITminiDAQ
# expire_in: 1 week
# Stand-alone application, with data streaming
build:StandAlone_wDS:
extends: .build
before_script:
- source ./setup.sh
- source ./setup.sh ci
- export CompileForHerd=true
- export CompileForShep=true
- export CompileWithEUDAQ=false
- export CompileWithTCUSB=false
- export UseTCUSBforROH=false
- export UseTCUSBTcpServer=false
# Herd application
build:HerdApplication:
extends: .build
before_script:
- source ./setup.sh
- source ./setup.sh ci
- export CompileForHerd=true
- export CompileForShep=false
- export CompileWithEUDAQ=false
- export CompileWithTCUSB=false
- export UseTCUSBforROH=false
- export UseTCUSBTcpServer=false
# Shep application
build:ShepApplication:
extends: .build
before_script:
- source ./setup.sh
- export CompileForHerd=false
- source ./setup.sh ci
- export CompileForShep=true
- export CompileWithEUDAQ=false
- export CompileWithTCUSB=false
- export UseTCUSBforROH=false
- export UseTCUSBTcpServer=false
# Compile with EUDAQ libraries
build:StandAlone_wEUDAQ:
extends: .build
before_script:
- source ./setup.sh
- export CompileForHerd=false
- export CompileForShep=false
- source ./setup.sh ci
- export CompileWithEUDAQ=true
- export CompileWithTCUSB=false
- export UseTCUSBforROH=false
- export UseTCUSBTcpServer=false
# Herd application with EUDAQ libraries
build:HerdApplication_wEUDAQ:
extends: .build
before_script:
- source ./setup.sh
- source ./setup.sh ci
- export CompileForHerd=true
- export CompileForShep=false
- export CompileWithEUDAQ=true
- export CompileWithTCUSB=false
- export UseTCUSBforROH=false
- export UseTCUSBTcpServer=false
# Compile with TC_USB library
build:StandAlone_wTC_USB_SEH:
extends: .build
before_script:
- yum install -y libusb-devel libusbx-devel
- source ./setup.sh
- export CompileForHerd=false
- export CompileForShep=false
- export CompileWithEUDAQ=false
- source ./setup.sh ci
- export CompileWithTCUSB=true
- export UseTCUSBforROH=false
- export UseTCUSBTcpServer=true
......@@ -145,27 +123,35 @@ build:StandAlone_wTC_USB_ROH:
extends: .build
before_script:
- yum install -y libusb-devel libusbx-devel
- source ./setup.sh
- export CompileForHerd=false
- export CompileForShep=false
- export CompileWithEUDAQ=false
- source ./setup.sh ci
- export CompileWithTCUSB=true
- export UseTCUSBforROH=true
- export UseTCUSBTcpServer=true
## RUN ##########
## IT hybrid
run_on_IT:
.run:
stage: run
needs:
- build:StandAlone_woDS
before_script:
- printf $USER_PASS | base64 -d | kinit $USER_NAME
- xrdcp -r root://eosuser.cern.ch//eos/user/c/cmstkph2/ci_repo/ci_tools .
rules:
- if: $CI_MERGE_REQUEST_ID
when: always
allow_failure: false
- when: manual
allow_failure: true
## IT hybrid
run:IT:
extends: .run
script:
- source ./setup.sh
- source ./setup.sh ci
- cd ci_tools
- cp CMSIT_RD53.txt CMSIT_RD53_default.txt
- CMSITminiDAQ -f CMSIT.xml -r
......@@ -176,6 +162,8 @@ run_on_IT:
- cp ci_tools/Results/Run000000_PixelAlive.root .
- cp ci_tools/Results/Run000001_ThrEqualization.root .
- cp ci_tools/Results/Run000002_SCurve.root .
- gdb bin/ot_module_test core.* -ex where --batch > coreAnalysisRD53.log
- cp coreAnalysisRD53.log .
artifacts:
paths:
- Run000000_PixelAlive.root
......@@ -183,53 +171,80 @@ run_on_IT:
- Run000002_SCurve.root
- ci_tools/plot_canvas.py
- ci_tools/CMSIT*
- coreAnalysisRD53.log
expire_in: 1 week
## 2S hybrid
run_on_2S:
stage: run
needs:
- build:StandAlone_woDS
before_script:
- printf $USER_PASS | base64 -d | kinit $USER_NAME
- xrdcp -r root://eosuser.cern.ch//eos/user/c/cmstkph2/ci_repo/ci_tools .
#- python ci_tools/status_manager.py 2s_status.txt --get_status --delay 180 --iter 3
run:2S:
extends: .run
script:
- python ci_tools/status_manager.py 2s_status.txt --set_status 1
- source ./setup.sh
- source ./setup.sh ci
- cd ci_tools
- ot_module_test -f CMS2S.xml -t -m -a -b --reconfigure
after_script:
- python ci_tools/status_manager.py 2s_status.txt --set_status 0
- cp ci_tools/Results/*/Hybrid.root .
- gdb bin/ot_module_test core.* -ex where --batch > coreAnalysis2S.log
- cp coreAnalysis2S.log .
artifacts:
paths:
- Hybrid.root
- ci_tools/plot_hist.py
- coreAnalysis2S.log
expire_in: 1 week
## CHECK ##########
check_run_on_IT:
## CHECK ##########
.check:
stage: check
needs: [run_on_IT]
script:
- python ci_tools/plot_canvas.py Run000000_PixelAlive.root "Detector/Board_0/OpticalGroup_0/Hybrid_0/Chip_0/D_B(0)_O(0)_H(0)_PixelAlive_Chip(0)" -o plots
- python ci_tools/plot_canvas.py Run000001_ThrEqualization.root "Detector/Board_0/OpticalGroup_0/Hybrid_0/Chip_0/D_B(0)_O(0)_H(0)_ThrEqualization_Chip(0)" -o plots
- python ci_tools/plot_canvas.py Run000002_SCurve.root "Detector/Board_0/OpticalGroup_0/Hybrid_0/Chip_0/D_B(0)_O(0)_H(0)_SCurves_Chip(0)" -o plots
rules:
- if: $CI_MERGE_REQUEST_ID
when: always
allow_failure: false
- when: manual
allow_failure: true
artifacts:
paths:
- plots
expire_in: 1 week
check_run_on_2S:
stage: check
needs: [run_on_2S]
check:IT:
extends: .check
needs:
- run:IT
script:
- python ci_tools/plot_hist.py Hybrid.root "Detector/Board_0/OpticalGroup_0/Hybrid_0/D_B(0)_O(0)_HybridNoiseDistribution_Hybrid(0)" -o plots
artifacts:
paths:
- plots
expire_in: 1 week
- python3 ci_tools/plot_canvas.py Run000000_PixelAlive.root "Detector/Board_0/OpticalGroup_0/Hybrid_0/Chip_0/D_B(0)_O(0)_H(0)_PixelAlive_Chip(0)" -o plots
- python3 ci_tools/plot_canvas.py Run000001_ThrEqualization.root "Detector/Board_0/OpticalGroup_0/Hybrid_0/Chip_0/D_B(0)_O(0)_H(0)_ThrEqualization_Chip(0)" -o plots
- python3 ci_tools/plot_canvas.py Run000002_SCurve.root "Detector/Board_0/OpticalGroup_0/Hybrid_0/Chip_0/D_B(0)_O(0)_H(0)_SCurves_Chip(0)" -o plots
check:2S:
extends: .check
needs:
- run:2S
script:
- python3 ci_tools/plot_hist.py Hybrid.root "Detector/Board_0/OpticalGroup_0/Hybrid_0/D_B(0)_O(0)_HybridNoiseDistribution_Hybrid(0)" -o plots
## DEPLOY ##########
deploy:
stage: deploy
trigger: cms_tk_ph2/docker_exploration
rules:
- if: $CI_COMMIT_TAG
when: always
variables:
IMAGE_TAG: ph2_acf_$CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == "Dev"
when: always
variables:
IMAGE_TAG: nightly-dev
- if: $DEBUG
when: always
variables:
IMAGE_TAG: upstream-test
- when: never
......@@ -67,7 +67,6 @@ if(NOT DEFINED ENV{OTSDAQ_CMSOUTERTRACKER_DIR})
set(NoDataShipping false)
endif()
MESSAGE(STATUS "")
MESSAGE(STATUS " ${BoldYellow}COMPILATION FLAGS:${Reset}")
MESSAGE(STATUS " CompileForShep = ${BoldRed}${CompileForShep}${Reset}")
MESSAGE(STATUS " CompileForHerd = ${BoldRed}${CompileForHerd}${Reset}")
......@@ -97,7 +96,8 @@ if(NOT DEFINED ENV{OTSDAQ_CMSOUTERTRACKER_DIR})
set (GCC_NOERROR_FLAGS "${GCC_NOERROR_FLAGS} ${GCC_9_NOERROR_FLAGS}")
endif()
endif ()
set (CMAKE_CXX_FLAGS "-g -std=c++1y -gdwarf-4 -O3 -fopenmp -fno-omit-frame-pointer -Werror -pedantic -Wno-unused-parameter -Wno-ignored-qualifiers -Wno-missing-field-initializers -Wall -Werror=return-type -Wextra -Winit-self -Wno-unused-local-typedefs -Woverloaded-virtual -Wnon-virtual-dtor -Wdelete-non-virtual-dtor ${GCC_NOERROR_FLAGS} -pthread -Wcpp -fPIC ${CMAKE_CXX_FLAGS} -DELPP_THREAD_SAFE")
#-std=c++1z
set (CMAKE_CXX_FLAGS "-g $ENV{STDCXX} -gdwarf-4 -O3 -fopenmp -fno-omit-frame-pointer -Werror -pedantic -Wno-unused-parameter -Wno-ignored-qualifiers -Wno-missing-field-initializers -Wall -Werror=return-type -Wextra -Winit-self -Wno-unused-local-typedefs -Woverloaded-virtual -Wnon-virtual-dtor -Wdelete-non-virtual-dtor ${GCC_NOERROR_FLAGS} -pthread -Wcpp -fPIC ${CMAKE_CXX_FLAGS} -DELPP_THREAD_SAFE")
if(NoDataShipping)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} $ENV{UseRootFlag}")
endif()
......@@ -125,13 +125,13 @@ if(NOT DEFINED ENV{OTSDAQ_CMSOUTERTRACKER_DIR})
endif()
# AMC13
find_package(CACTUS) #========================================================
find_package(CACTUS)
if(${CACTUS_AMC13_FOUND})
message(STATUS " Enabling AMC13 component")
endif(${CACTUS_AMC13_FOUND})
# Antenna
find_package(PH2_ANTENNA) #========================================================
find_package(PH2_ANTENNA)
if(PH2_ANTENNA_FOUND)
message(STATUS " Building the Antenna components")
endif(PH2_ANTENNA_FOUND)
......@@ -170,7 +170,7 @@ if(NOT DEFINED ENV{OTSDAQ_CMSOUTERTRACKER_DIR})
if ($ENV{CompileWithEUDAQ}) # Asked for EUDAQ
message(STATUS "Building with EUDAQ")
set(USE_EUDAQ ON)
if(NOT (DEFINED ENV{EUDAQDIR} AND EXISTS ENV{EUDAQDIR} ) )
if(NOT DEFINED ENV{EUDAQDIR})
message(WARNING " Couldn't find EUDAQ. Obtaining from gitlab ref $ENV{EUDAQ_REF}")
ExternalProject_Add( ext_eudaq
GIT_REPOSITORY https://gitlab.cern.ch/cms_tk_ph2/eudaq.git
......@@ -178,7 +178,7 @@ if(NOT DEFINED ENV{OTSDAQ_CMSOUTERTRACKER_DIR})
PREFIX ${EXTERNAL_INSTALL_LOCATION}
)
set(ENV{EUDAQDIR} ${EXTERNAL_INSTALL_LOCATION}/src/ext_eudaq/ )
endif(NOT (DEFINED ENV{EUDAQDIR} AND EXISTS ENV{EUDAQDIR} ) )
endif(NOT DEFINED ENV{EUDAQDIR})
include_directories($ENV{EUDAQDIR}/include)
set(EUDAQ_LIB -L$ENV{EUDAQDIR}/lib eudaq_core)
......@@ -188,7 +188,7 @@ if(NOT DEFINED ENV{OTSDAQ_CMSOUTERTRACKER_DIR})
endif($ENV{CompileWithEUDAQ})
# ZeroMQ
find_package(ZMQ) #========================================================
find_package(ZMQ)
if(ZMQ_FOUND)
find_package(PH2_USBINSTLIB)
if(PH2_USBINSTLIB_FOUND)
......@@ -196,9 +196,12 @@ if(NOT DEFINED ENV{OTSDAQ_CMSOUTERTRACKER_DIR})
endif(ZMQ_FOUND)
# Boost
find_package(Boost 1.53 REQUIRED system filesystem serialization iostreams program_options)
# To use a local installtion of BOOST
#set(BOOST_ROOT "" CACHE PATH "Boost library path")
#set(Boost_NO_SYSTEM_PATHS on CACHE BOOL "Do not search system for Boost")
find_package(Boost 1.53 REQUIRED COMPONENTS system filesystem serialization iostreams program_options)
message("-- ${BoldCyan}#### Done ####${Reset}")
message("-- ${BoldCyan}#### End ####${Reset}")
# All the subdirs
if(${CACTUS_AMC13_FOUND})
......@@ -264,13 +267,13 @@ else() # ------------------------------- Compilation in the otsdaq environment -
endif(${CACTUS_AMC13_FOUND})
# Antenna
find_package(PH2_ANTENNA) #========================================================
find_package(PH2_ANTENNA)
if(PH2_ANTENNA_FOUND)
message(STATUS " Building the Antenna components")
endif(PH2_ANTENNA_FOUND)
# ZeroMQ
find_package(ZMQ) #========================================================
find_package(ZMQ)
if(ZMQ_FOUND)
find_package(PH2_USBINSTLIB)
if(PH2_USBINSTLIB_FOUND)
......@@ -306,6 +309,10 @@ else() # ------------------------------- Compilation in the otsdaq environment -
add_subdirectory(miniDAQ)
add_subdirectory(MonitorUtils)
cet_set_compiler_flags(
EXTRA_FLAGS -DELPP_THREAD_SAFE
)
MESSAGE(STATUS " ")
MESSAGE(STATUS "${BoldYellow}MIDDLEWARE${Reset} [otsdaq]: [${BoldCyan}${PH2ACF_BASE_DIR}/CMakeLists.txt${Reset}]")
MESSAGE(STATUS "${BoldYellow}MIDDLEWARE${Reset} [otsdaq]: Compilation of the middleware package done.")
......
......@@ -109,11 +109,11 @@ class DQMEvent
for(std::vector<bool>::const_iterator it = v.begin() + ishift; it != v.begin() + ishift + len; ++it, ++i) retval.push_back((*it));
return retval;
}
static uint16_t encodeId(const uint8_t& pFeId, const uint8_t& pCbcId) { return (pFeId << 8 | pCbcId); }
static void decodeId(const uint16_t& pKey, uint8_t& pFeId, uint8_t& pCbcId)
static uint16_t encodeId(const uint8_t& pHybridId, const uint8_t& pCbcId) { return (pHybridId << 8 | pCbcId); }
static void decodeId(const uint16_t& pKey, uint8_t& pHybridId, uint8_t& pCbcId)
{
pFeId = (pKey >> 8) & MASK_BITS_8;
pCbcId = pKey & MASK_BITS_8;
pHybridId = (pKey >> 8) & MASK_BITS_8;
pCbcId = pKey & MASK_BITS_8;
}
// total number of Readout units conencted
static size_t nReadout(const uint64_t& word) { return ((word >> 8) & MASK_BITS_16); }
......@@ -333,9 +333,9 @@ class DQMEvent
// throws an out_of_range exception if the key cKey is not found in the container (map)
return readoutDataMap_.at(cKey).first;
}
const ReadoutStatus& readoutStatus(uint8_t feId, uint8_t readoutId) const
const ReadoutStatus& readoutStatus(uint8_t hybridId, uint8_t readoutId) const
{
uint16_t cKey = encodeId(feId, readoutId);
uint16_t cKey = encodeId(hybridId, readoutId);
return readoutStatus(cKey);
}
// Get Readout Channel data
......@@ -344,9 +344,9 @@ class DQMEvent
// throws an out_of_range exception if the key cKey is not found in the container (map)
return readoutDataMap_.at(cKey).second;
}
const std::vector<bool>& channelData(uint8_t feId, uint8_t readoutId) const
const std::vector<bool>& channelData(uint8_t hybridId, uint8_t readoutId) const
{
uint16_t cKey = encodeId(feId, readoutId);
uint16_t cKey = encodeId(hybridId, readoutId);
return channelData(cKey);
}
// Overall Readout data
......@@ -355,9 +355,9 @@ class DQMEvent
// throws an out_of_range exception if the key cKey is not found in the container (map)
return readoutDataMap_.at(cKey);
}
const std::pair<ReadoutStatus, std::vector<bool>>& readoutData(uint8_t feId, uint8_t readoutId) const
const std::pair<ReadoutStatus, std::vector<bool>>& readoutData(uint8_t hybridId, uint8_t readoutId) const
{
uint16_t cKey = encodeId(feId, readoutId);
uint16_t cKey = encodeId(hybridId, readoutId);
return readoutData(cKey);
}
size_t nwords() const { return nwords_; }
......@@ -367,9 +367,9 @@ class DQMEvent
for(std::map<uint16_t, std::pair<ReadoutStatus, std::vector<bool>>>::const_iterator it = readoutDataMap_.begin(); it != readoutDataMap_.end(); ++it)
{
uint16_t cKey = it->first;
uint8_t feId, readoutId;
decodeId(cKey, feId, readoutId);
os << "== feId: <" << +feId << ">, readoutId: <" << +readoutId << ">" << std::endl;
uint8_t hybridId, readoutId;
decodeId(cKey, hybridId, readoutId);
os << "== hybridId: <" << +hybridId << ">, readoutId: <" << +readoutId << ">" << std::endl;
const ReadoutStatus& rs = it->second.first;
rs.print(true, os);
......@@ -433,22 +433,22 @@ class DQMEvent
os << "[StubData]" << std::endl;
for(const auto& v: dMap_)
{
os << "feId: <" << +v.first << ">" << std::endl;
os << "hybridId: <" << +v.first << ">" << std::endl;
const std::vector<StubInfo>& stubList = v.second;
for(size_t i = 0; i < stubList.size(); ++i) stubList.at(i).print((i == 0 ? true : false));
}
}
const std::map<uint8_t, std::vector<StubInfo>>& getMap() const { return dMap_; }
const std::vector<StubInfo>& stubs(uint8_t feId) const
const std::vector<StubInfo>& stubs(uint8_t hybridId) const
{
// throws an out_of_range exception if the key feId is not found in the container (map)
return dMap_.at(feId);
// throws an out_of_range exception if the key hybridId is not found in the container (map)
return dMap_.at(hybridId);
}
const StubInfo& stub(uint8_t feId, size_t stub_index) const
const StubInfo& stub(uint8_t hybridId, size_t stub_index) const
{
// throws an out_of_range exception if either the key feId is not found in the container (map)
// throws an out_of_range exception if either the key hybridId is not found in the container (map)
// or stub_index is out-of-range in the vector
return dMap_.at(feId).at(stub_index);
return dMap_.at(hybridId).at(stub_index);
}
size_t nwords() const { return nwords_; }
......@@ -461,20 +461,20 @@ class DQMEvent
public:
void set(uint64_t word)
{
uint8_t feId = (word >> 56) & MASK_BITS_8;
uint8_t xId = (word >> 52) & MASK_BITS_4; // roID or sensorId
uint8_t i2cPage = (word >> 48) & MASK_BITS_4;
uint8_t i2cReg = (word >> 40) & MASK_BITS_8;
uint8_t uid = (word >> 32) & MASK_BITS_8;
size_t value = word & MASK_BITS_32;
dList_.push_back(std::make_tuple(feId, xId, i2cPage, i2cReg, uid, value));
uint8_t hybridId = (word >> 56) & MASK_BITS_8;
uint8_t xId = (word >> 52) & MASK_BITS_4; // roID or sensorId
uint8_t i2cPage = (word >> 48) & MASK_BITS_4;
uint8_t i2cReg = (word >> 40) & MASK_BITS_8;
uint8_t uid = (word >> 32) & MASK_BITS_8;
size_t value = word & MASK_BITS_32;
dList_.push_back(std::make_tuple(hybridId, xId, i2cPage, i2cReg, uid, value));
}
void print(std::ostream& os = std::cout) const
{
os << "[ConditionData]" << std::endl;
os << " for UID=1 x=Readout, UID=5 x=Sensor" << std::endl;
os << " index feID xID i2cPage i2cReg UID value" << std::endl;
os << " index hybridId xID i2cPage i2cReg UID value" << std::endl;
for(size_t i = 0; i < dList_.size(); ++i)
{
const auto& t = dList_[i];
......@@ -491,7 +491,7 @@ class DQMEvent
}
private:
// <feId, readout/sensor-Id, i2cPage, i2cRegister, UID, value>
// <hybridId, readout/sensor-Id, i2cPage, i2cRegister, UID, value>
std::vector<std::tuple<uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, size_t>> dList_;
};
......
......@@ -630,7 +630,7 @@ void DQMHistogramBeamTestCheck::fillLatencyPlots(uint16_t pLatency, uint16_t pTr
cStripId = cStripOffset - (chip->getId() * chip->size() / 2 + cChnlIndx / 2);
}
if(channel.fOccupancy > 0)
LOG(DEBUG) << BOLDMAGENTA << "\t\t..ROC#" << +chip->getId() << " Channel " << cChnlIndx << " strip number " << cChnlIndx / 2.0 << " strip offset is " << cStripOffset
LOG(DEBUG) << BOLDMAGENTA << "\t\t..Chip#" << +chip->getId() << " Channel " << cChnlIndx << " strip number " << cChnlIndx / 2.0 << " strip offset is " << cStripOffset
<< " global strip number " << +cStripId << " hit is in S" << +(cChnlIndx % 2 == 0) << " - have found " << channel.fOccupancy << " hits." << RESET;
cBin = cHitMap->FindBin((float)pLatency, cStripId);
......@@ -850,7 +850,7 @@ void DQMHistogramBeamTestCheck::fillHitMaps(DetectorDataContainer& theHitMap, De
auto cBin = (cSensorId == 0) ? cStubMapS0->FindBin((float)cLocalX, (float)cLocalY) : cStubMapS1->FindBin((float)cLocalX, (float)cLocalY);
if(channel.fOccupancy > 0)
LOG(DEBUG) << BOLDMAGENTA << "\t\t..ROC#" << +chip->getId() << " Hybrid#" << +hybrid->getId() << " Sensor" << +cSensorId << " Channel " << +cChnlIndx << " Row " << +cRow
LOG(DEBUG) << BOLDMAGENTA << "\t\t..Chip#" << +chip->getId() << " Hybrid#" << +hybrid->getId() << " Sensor" << +cSensorId << " Channel " << +cChnlIndx << " Row " << +cRow
<< " Column " << +cCol << " Offset is " << cXOffset << " Local x coordinate " << +cLocalX << " Local y coordinate " << cLocalY << " bin# " << cBin << " Channel "
<< cChnlIndx << " offset is " << cXOffset << " - have found " << channel.fOccupancy << " hits " << RESET;
......@@ -860,7 +860,7 @@ void DQMHistogramBeamTestCheck::fillHitMaps(DetectorDataContainer& theHitMap, De
// if(hybrid->getId() % 2 == 0) cStripId = cOffset + (chip->size() - cChnlIndx) / cDivider;
// auto cBin = cStubMapS0->FindBin((float)cStripId, (float)cLocalY);
// if(channel.fOccupancy > 0)
// LOG(DEBUG) << BOLDBLUE << "\t\t..ROC#" << +chip->getId() << " Hybrid#" << +hybrid->getId() << " Sensor" << +cSensorId << " Local x coordinate " << +cStripId << " bin# "
// LOG(DEBUG) << BOLDBLUE << "\t\t..Chip#" << +chip->getId() << " Hybrid#" << +hybrid->getId() << " Sensor" << +cSensorId << " Local x coordinate " << +cStripId << " bin# "
// << cBin << " Channel " << cChnlIndx << " offset is " << cStripOffset << " - have found " << channel.fOccupancy << " stubs " << RESET;
if(cSensorId == 0)
......@@ -902,7 +902,7 @@ void DQMHistogramBeamTestCheck::fillHitMaps(DetectorDataContainer& theHitMap, De
auto cBinX = (cSensorId == 0) ? cHitMapS0->GetXaxis()->FindBin(cLocalX) : cHitMapS1->GetXaxis()->FindBin(cLocalX);
auto cBin = (cSensorId == 0) ? cHitMapS0->FindBin((float)cLocalX, (float)cLocalY) : cHitMapS1->FindBin((float)cLocalX, (float)cLocalY);
if(channel.fOccupancy > 0 && hybrid->getId() % 2 == 1)
LOG(DEBUG) << BOLDMAGENTA << "\t\t..ROC#" << +chip->getId() << " Hybrid#" << +hybrid->getId() << " Sensor" << +cSensorId << " [" << cNChannels << " channels]"
LOG(DEBUG) << BOLDMAGENTA << "\t\t..Chip#" << +chip->getId() << " Hybrid#" << +hybrid->getId() << " Sensor" << +cSensorId << " [" << cNChannels << " channels]"
<< " Row " << +cRow << " Column " << +cCol << " BinX " << cBinX << " Offset is " << cXOffset << " Local x coordinate " << +cLocalX << " Local y coordinate "
<< cLocalY << " bin# " << cBin << " Channel " << cChnlIndx << " offset is " << cXOffset << " - have found " << channel.fOccupancy << " hits " << RESET;
if(cSensorId == 0)
......@@ -934,7 +934,7 @@ void DQMHistogramBeamTestCheck::fillHitMaps(DetectorDataContainer& theHitMap, De
cLatencyTDC->SetBinError(cBin, std::sqrt((float)cNhits)); // for now
}
} // ROCs
} // Chips
} // hybrids
} // OG
} // board
......@@ -1000,7 +1000,7 @@ void DQMHistogramBeamTestCheck::fillCorrelations(DetectorDataContainer& theHitMa
if(cLocalX != cLocalXS1)
// if( chip->getId() != cOtherChip->getId() )
LOG(DEBUG) << BOLDYELLOW << " Correlation plot S0:S1 "
<< " Hybrid#" << +hybrid->getId() << "\t\t..ROC#" << +chip->getId() << "\t\t.. ROC#" << +cOtherChip->getId() << " Row [S0] " << +cRow
<< " Hybrid#" << +hybrid->getId() << "\t\t..Chip#" << +chip->getId() << "\t\t.. Chip#" << +cOtherChip->getId() << " Row [S0] " << +cRow
<< " Column [S0] " << +cCol << " Row [S1] " << +cRowS1 << " Column [S1] " << +cColS1 << RESET;
} // print
cChnlIndxS1++;
......@@ -1030,7 +1030,7 @@ void DQMHistogramBeamTestCheck::fillCorrelations(DetectorDataContainer& theHitMa
// uint32_t cLinkOffset = (hybrid->getId()%2)*(cNChannels*8) ;
// uint32_t cLinkOffset = opticalGroup->getIndex()*(2*cNChannels*8) + (hybrid->getId()%2)*(cNChannels*8) ;
LOG(DEBUG) << BOLDYELLOW << " Correlation plot Stubs:HitsS1 "
<< " Link#" << +opticalGroup->getId() << " Hybrid#" << +hybrid->getId() << " ROC#" << +chip->getId() << " Stub Row [S" << +cSensorId << "] " << +cRow
<< " Link#" << +opticalGroup->getId() << " Hybrid#" << +hybrid->getId() << " Chip#" << +chip->getId() << " Stub Row [S" << +cSensorId << "] " << +cRow
<< " Local X " << cLocalX << " local offset on link is " << cLinkOffset << " link position is this " << cLinkOffset + cLocalX << " which is X-axis bin "
<< cLinkCorrS0->GetXaxis()->FindBin(cLinkOffset + cLocalX) << RESET;
// look for correlations in all other links
......@@ -1058,8 +1058,8 @@ void DQMHistogramBeamTestCheck::fillCorrelations(DetectorDataContainer& theHitMa
cLinkCorrS0->SetBinContent(cBin, cBinContent + 1);
cLinkCorrS0->SetBinError(cBin, std::sqrt(cBinContent + 1));