Belle II Software  release-05-02-19
KLMDisplacementGenerator.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2012 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Kirill Chilikin *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 /* KLM headers. */
14 #include <klm/dataobjects/eklm/EKLMElementNumbers.h>
15 #include <klm/dataobjects/KLMElementNumbers.h>
16 #include <klm/dbobjects/eklm/EKLMAlignment.h>
17 #include <klm/dbobjects/eklm/EKLMSegmentAlignment.h>
18 #include <klm/eklm/geometry/GeometryData.h>
19 
20 /* ROOT headers. */
21 #include <TFile.h>
22 
23 namespace Belle2 {
32  class KLMDisplacementGenerator {
33 
34  public:
35 
40 
45 
51  void fillZeroDisplacements(EKLMAlignment* alignment,
52  EKLMSegmentAlignment* segmentAlignment);
53 
60  void generateFixedModuleDisplacement(double deltaU, double deltaV,
61  double deltaGamma);
62 
91  EKLMAlignment* alignment, EKLMSegmentAlignment* segmentAlignment,
92  bool displaceModule, bool displaceSegment,
93  bool moduleSameDisplacement = false, bool moduleZeroDeltaU = false,
94  bool moduleZeroDeltaV = false, bool moduleZeroDeltaGamma = false);
95 
103  EKLMSegmentAlignment* segmentAlignment,
104  const char* inputFile);
105 
111  void studyModuleAlignmentLimits(TFile* f);
112 
118  void studySegmentAlignmentLimits(TFile* f);
119 
125  void studyAlignmentLimits(const char* outputFile);
126 
133  void saveDisplacement(EKLMAlignment* alignment,
134  EKLMSegmentAlignment* segmentAlignment,
135  const char* outputFile);
136 
137  private:
138 
141 
144 
147 
148  };
149 
151 }
Belle2::KLMDisplacementGenerator::generateFixedModuleDisplacement
void generateFixedModuleDisplacement(double deltaU, double deltaV, double deltaGamma)
Generation of fixed module displacements.
Definition: KLMDisplacementGenerator.cc:62
Belle2::KLMDisplacementGenerator::~KLMDisplacementGenerator
~KLMDisplacementGenerator()
Destructor.
Definition: KLMDisplacementGenerator.cc:35
Belle2::EKLMElementNumbers
EKLM element numbers.
Definition: EKLMElementNumbers.h:34
Belle2::KLMDisplacementGenerator::readDisplacementFromROOTFile
void readDisplacementFromROOTFile(EKLMAlignment *alignment, EKLMSegmentAlignment *segmentAlignment, const char *inputFile)
Read displacement from ROOT file.
Definition: KLMDisplacementGenerator.cc:187
Belle2::KLMDisplacementGenerator::saveDisplacement
void saveDisplacement(EKLMAlignment *alignment, EKLMSegmentAlignment *segmentAlignment, const char *outputFile)
Save displacements to a ROOT file.
Definition: KLMDisplacementGenerator.cc:365
Belle2::KLMDisplacementGenerator::studyModuleAlignmentLimits
void studyModuleAlignmentLimits(TFile *f)
Generate random module displacements and check if they are correct (no overlaps).
Definition: KLMDisplacementGenerator.cc:249
Belle2::KLMDisplacementGenerator::studySegmentAlignmentLimits
void studySegmentAlignmentLimits(TFile *f)
Generate random segment displacements and check if they are correct (no overlaps).
Definition: KLMDisplacementGenerator.cc:297
Belle2::EKLMAlignment
Class to store EKLM alignment data in the database.
Definition: EKLMAlignment.h:40
Belle2::KLMDisplacementGenerator::m_eklmElementNumbers
const EKLMElementNumbers * m_eklmElementNumbers
EKLM element numbers.
Definition: KLMDisplacementGenerator.h:154
Belle2::KLMDisplacementGenerator::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.
Definition: KLMDisplacementGenerator.cc:81
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::KLMDisplacementGenerator::fillZeroDisplacements
void fillZeroDisplacements(EKLMAlignment *alignment, EKLMSegmentAlignment *segmentAlignment)
Fill EKLMAlignment with zero displacements.
Definition: KLMDisplacementGenerator.cc:39
Belle2::EKLM::GeometryData
EKLM geometry data.
Definition: GeometryData.h:40
Belle2::EKLMSegmentAlignment
Class to store EKLM alignment data in the database.
Definition: EKLMSegmentAlignment.h:40
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::KLMElementNumbers
KLM element numbers.
Definition: KLMElementNumbers.h:37
Belle2::KLMDisplacementGenerator::studyAlignmentLimits
void studyAlignmentLimits(const char *outputFile)
Generate random displacements and check if they are correct (no overlaps).
Definition: KLMDisplacementGenerator.cc:356
Belle2::KLMDisplacementGenerator::KLMDisplacementGenerator
KLMDisplacementGenerator()
Constructor.
Definition: KLMDisplacementGenerator.cc:28