24#include "GeoModelKernel/GeoVolumeCursor.h"
25#include "GeoModelKernel/GeoBox.h"
31#include <Inventor/nodes/SoShape.h>
32#include <Inventor/nodes/SoGroup.h>
33#include <Inventor/nodes/SoTransform.h>
34#include <Inventor/nodes/SoMaterial.h>
49 l <<
"Channel ID [0-15]: " + QString::number(
data->getChannel())+
" ("+QString(
isHighAttenuationChannel(
data->getChannel())?
"High":
"Low")+
" attenuation channel)";
50 l <<
"Position of first pulse [0-63]: " + QString::number(
data->getPulse1Position());
51 l <<
"Width of first pulse [0-31]: " + QString::number(
data->getPulse1Width());
52 l <<
"Position of second pulse [0-63]: " + QString::number(
data->getPulse2Position());
53 l <<
"Width of second pulse [0-31]: " + QString::number(
data->getPulse2Width());
54 l <<
"Level one accept [0-63]: " + QString::number(
data->getLVL1A());
55 l <<
"Bunch crossing ID [0-4096]: " + QString::number(
data->getBCID());
56 l <<
"Level 1 ID [0+]: " + QString::number(
data->getLVL1ID());
60 for (
const QString& s : l)
96 accumTransf = p.first;
99 accumTransf = (accumTransf*p.first);
101 a.handleBox(p.second);
131 GeoVolumeCursor av(*world);
132 while (!av.atEnd()) {
133 if (av.getName()==
"Pixel") {
135 GeoVolumeCursor pv(av.getVolume());
136 while (!pv.atEnd()) {
137 int bcmModLogCopyNumber(-1);
138 if (pv.getVolume()->getLogVol()->getName()==
"bcmModLog") {
140 std::optional<int> Qint = pv.getId();
142 bcmModLogCopyNumber = *Qint;
144 GeoVolumeCursor bv(pv.getVolume());
145 while (!bv.atEnd()) {
146 if (bv.getVolume()->getLogVol()->getName()==
"bcmDiamondLog") {
148 const GeoBox * box = bv.getVolume()->getLogVol()->getShape()->typeID()==GeoBox::getClassTypeID() ?
149 static_cast<const GeoBox*
>(bv.getVolume()->getLogVol()->getShape()) : 0;
150 modInfo->
addBox(tr_pix*tr_bcmmod*tr_diamond,box);
154 (*moduleID2ModuleInfo)[modInfo->
moduleID()] = modInfo;
186 case 0:
return "F410";
187 case 1:
return "F405";
188 case 2:
return "F413";
189 case 3:
return "F404";
190 case 4:
return "F424";
191 case 5:
return "F420";
192 case 6:
return "F422";
193 case 7:
return "F408";
194 default:
return "Unknown";
202 case 0:
return "Marko";
203 case 1:
return "Helmut/Peter";
204 case 2:
return "William";
205 case 3:
return "Harris";
206 case 4:
return "Ewa";
207 case 5:
return "Heinz";
208 case 6:
return "Irena";
209 case 7:
return "Andrej";
210 default:
return "Unknown";
218 case 0:
return "A, +x";
219 case 1:
return "A, +y";
220 case 2:
return "A, -x";
221 case 3:
return "A, -y";
222 case 4:
return "C, +x";
223 case 5:
return "C, +y";
224 case 6:
return "C, -x";
225 case 7:
return "C, -y";
226 default:
return "Unknown";
234 l <<
" ===> BCM Hit(s)";
235 l <<
" -- Module ID: "+QString::number(
moduleID());
238 l <<
" -- Number of hits: "+QString::number(
nHits());
241 for (
int i=0;i<
m_data.count();++i) {
242 l <<
" ------> BCM_RawData [hit "+QString::number(i+1)+
"/"+QString::number(
m_data.count())+
"]";
246 l <<
" -- (turn on verbose output for more information)";
262 SoGroup *
gr =
new SoGroup;
263 gr->addChild(
coll()->
common()->controller()->bcmHighAttMaterial());
char data[hepevt_bytes_allocation_ATLAS]
SoNode * getShapeNode_Point()
SoTransform * getUnitTransform()
static const GeoPVConstLink * geoModelWorld()
static SoTransform * toSoTransform(const HepGeom::Transform3D &, SoTransform *t=0)
HitsSoNodeManager * nodeManager() const
VP1RawDataCommonData * common() const
VP1RawDataHandleBase(VP1RawDataCollBase *)
static QString unsignedToHex(unsigned)
VP1RawDataCollBase * coll() const
QList< QPair< Amg::Transform3D, const GeoBox * > > m_transformsAndBoxes
SoTransform * m_transform
SoTransform * getTransform()
void addBox(const Amg::Transform3D &t, const GeoBox *b)
static void ensureInitModuleInfo()
static std::map< int, ModuleInfo * > * moduleID2ModuleInfo
static QStringList describeHit(const BCM_RawData *data, const QString &prefix="")
virtual ~VP1RawDataHandle_BCM_RDO()
VP1RawDataHandle_BCM_RDO(VP1RawDataCollBase *, int moduleID, const QList< const BCM_RawData * > &)
QList< const BCM_RawData * > m_data
static bool isHighAttenuationChannel(int channelID)
int m_nHighAttenuationHits
QString moduleNick() const
SoTransform * buildTransform()
QStringList clicked(bool verbose) const
int numberOfHighAttenuationHits() const
QString modulePosDescription() const
QString moduleName() const
Eigen::Affine3d Transform3D