Belle II Software  release-05-02-19
KLMDisplacementGenerator Class Reference

Module for generation of KLM displacement or alignment data. More...

#include <KLMDisplacementGenerator.h>

Collaboration diagram for KLMDisplacementGenerator:

Public Member Functions

 KLMDisplacementGenerator ()
 Constructor.
 
 ~KLMDisplacementGenerator ()
 Destructor.
 
void fillZeroDisplacements (EKLMAlignment *alignment, EKLMSegmentAlignment *segmentAlignment)
 Fill EKLMAlignment with zero displacements. More...
 
void generateFixedModuleDisplacement (double deltaU, double deltaV, double deltaGamma)
 Generation of fixed module displacements. More...
 
void generateRandomDisplacement (EKLMAlignment *alignment, EKLMSegmentAlignment *segmentAlignment, bool displaceModule, bool displaceSegment, bool moduleSameDisplacement=false, bool moduleZeroDeltaU=false, bool moduleZeroDeltaV=false, bool moduleZeroDeltaGamma=false)
 Generation of random displacements. More...
 
void readDisplacementFromROOTFile (EKLMAlignment *alignment, EKLMSegmentAlignment *segmentAlignment, const char *inputFile)
 Read displacement from ROOT file. More...
 
void studyModuleAlignmentLimits (TFile *f)
 Generate random module displacements and check if they are correct (no overlaps). More...
 
void studySegmentAlignmentLimits (TFile *f)
 Generate random segment displacements and check if they are correct (no overlaps). More...
 
void studyAlignmentLimits (const char *outputFile)
 Generate random displacements and check if they are correct (no overlaps). More...
 
void saveDisplacement (EKLMAlignment *alignment, EKLMSegmentAlignment *segmentAlignment, const char *outputFile)
 Save displacements to a ROOT file. More...
 

Private Attributes

const EKLM::GeometryDatam_GeoDat
 Geometry data.
 
const KLMElementNumbersm_ElementNumbers
 Element numbers.
 
const EKLMElementNumbersm_eklmElementNumbers
 EKLM element numbers.
 

Detailed Description

Module for generation of KLM displacement or alignment data.

Definition at line 40 of file KLMDisplacementGenerator.h.

Member Function Documentation

◆ fillZeroDisplacements()

void fillZeroDisplacements ( EKLMAlignment alignment,
EKLMSegmentAlignment segmentAlignment 
)

Fill EKLMAlignment with zero displacements.

Parameters
[out]alignmentDisplacements.
[out]segmentAlignmentSegment displacements.

Definition at line 39 of file KLMDisplacementGenerator.cc.

41 {
42  KLMAlignmentData alignmentData(0, 0, 0, 0, 0, 0);
43  int iSection, iLayer, iSector, iPlane, iSegment, segment;
44  for (iSection = 1; iSection <= m_GeoDat->getNSections(); iSection++) {
45  for (iLayer = 1; iLayer <= m_GeoDat->getNDetectorLayers(iSection);
46  iLayer++) {
47  for (iSector = 1; iSector <= m_GeoDat->getNSectors(); iSector++) {
48  int module = m_ElementNumbers->moduleNumberEKLM(iSection, iSector, iLayer);
49  alignment->setModuleAlignment(module, &alignmentData);
50  for (iPlane = 1; iPlane <= m_GeoDat->getNPlanes(); iPlane++) {
51  for (iSegment = 1; iSegment <= m_GeoDat->getNSegments(); iSegment++) {
53  iSection, iLayer, iSector, iPlane, iSegment);
54  segmentAlignment->setSegmentAlignment(segment, &alignmentData);
55  }
56  }
57  }
58  }
59  }
60 }

◆ generateFixedModuleDisplacement()

void generateFixedModuleDisplacement ( double  deltaU,
double  deltaV,
double  deltaGamma 
)

Generation of fixed module displacements.

Parameters
[in]deltaUShift in U.
[in]deltaVShift in V.
[in]deltaGammaRotation in Gamma.

Definition at line 62 of file KLMDisplacementGenerator.cc.

◆ generateRandomDisplacement()

void generateRandomDisplacement ( EKLMAlignment alignment,
EKLMSegmentAlignment segmentAlignment,
bool  displaceModule,
bool  displaceSegment,
bool  moduleSameDisplacement = false,
bool  moduleZeroDeltaU = false,
bool  moduleZeroDeltaV = false,
bool  moduleZeroDeltaGamma = false 
)

Generation of random displacements.

Parameters
[out]alignmentDisplacements.
[out]segmentAlignmentSegment displacements.
[in]displaceModuleWhether modules should be displaced.
[in]displaceSegmentWhether segments should be displaced.
[in]moduleSameDisplacementIf the displacement should be the same for all modules.
[in]moduleZeroDeltaUFix module deltaU at 0.
[in]moduleZeroDeltaVFix module deltaV at 0.
[in]moduleZeroDeltaGammaFix module deltaGamma at 0.

Definition at line 81 of file KLMDisplacementGenerator.cc.

◆ readDisplacementFromROOTFile()

void readDisplacementFromROOTFile ( EKLMAlignment alignment,
EKLMSegmentAlignment segmentAlignment,
const char *  inputFile 
)

Read displacement from ROOT file.

Parameters
[out]alignmentDisplacements.
[out]segmentAlignmentSegment displacements.
[in]inputFileInput file.

Definition at line 187 of file KLMDisplacementGenerator.cc.

◆ saveDisplacement()

void saveDisplacement ( EKLMAlignment alignment,
EKLMSegmentAlignment segmentAlignment,
const char *  outputFile 
)

Save displacements to a ROOT file.

Parameters
[in]alignmentDisplacements.
[in]segmentAlignmentSegment displacements.
[in]outputFileOutput file.

Definition at line 365 of file KLMDisplacementGenerator.cc.

◆ studyAlignmentLimits()

void studyAlignmentLimits ( const char *  outputFile)

Generate random displacements and check if they are correct (no overlaps).

Parameters
[in]outputFileOutput file.

Definition at line 356 of file KLMDisplacementGenerator.cc.

◆ studyModuleAlignmentLimits()

void studyModuleAlignmentLimits ( TFile *  f)

Generate random module displacements and check if they are correct (no overlaps).

@oaram[in] f Output file.

Definition at line 249 of file KLMDisplacementGenerator.cc.

◆ studySegmentAlignmentLimits()

void studySegmentAlignmentLimits ( TFile *  f)

Generate random segment displacements and check if they are correct (no overlaps).

@oaram[in] f Output file.

Definition at line 297 of file KLMDisplacementGenerator.cc.


The documentation for this class was generated from the following files:
Belle2::EKLMGeometry::getNSegments
int getNSegments() const
Get number of segments.
Definition: EKLMGeometry.h:1725
Belle2::EKLMSegmentAlignment::setSegmentAlignment
void setSegmentAlignment(uint16_t segment, KLMAlignmentData *dat)
Set segment alignment data.
Definition: EKLMSegmentAlignment.cc:24
Belle2::EKLMGeometry::getNPlanes
int getNPlanes() const
Get number of planes.
Definition: EKLMGeometry.h:1717
Belle2::KLMDisplacementGenerator::m_eklmElementNumbers
const EKLMElementNumbers * m_eklmElementNumbers
EKLM element numbers.
Definition: KLMDisplacementGenerator.h:154
Belle2::EKLMElementNumbers::segmentNumber
int segmentNumber(int section, int layer, int sector, int plane, int segment) const
Get segment number.
Definition: EKLMElementNumbers.cc:191
Belle2::KLMElementNumbers::moduleNumberEKLM
uint16_t moduleNumberEKLM(int section, int sector, int layer) const
Get module number for EKLM.
Definition: KLMElementNumbers.cc:166
Belle2::EKLMGeometry::getNDetectorLayers
int getNDetectorLayers(int section) const
Get number of detector layers.
Definition: EKLMGeometry.cc:295
Belle2::KLMDisplacementGenerator::m_ElementNumbers
const KLMElementNumbers * m_ElementNumbers
Element numbers.
Definition: KLMDisplacementGenerator.h:151
Belle2::KLMDisplacementGenerator::m_GeoDat
const EKLM::GeometryData * m_GeoDat
Geometry data.
Definition: KLMDisplacementGenerator.h:148
Belle2::KLMAlignmentData
KLM Alignment data.
Definition: KLMAlignmentData.h:33
Belle2::EKLMGeometry::getNSections
int getNSections() const
Get number of sections.
Definition: EKLMGeometry.h:1687
Belle2::EKLMGeometry::getNSectors
int getNSectors() const
Get number of sectors.
Definition: EKLMGeometry.h:1709