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

DQM of Alignment for off line residuals per sensor, layer, keep also On-Line DQM from tracking: their momentum, Number of hits in tracks, Number of tracks. More...

#include <AlignDQMModule.h>

Inheritance diagram for AlignDQMModule:
Collaboration diagram for AlignDQMModule:

Public Types

enum  EModulePropFlags {
  c_Input = 1,
  c_Output = 2,
  c_ParallelProcessingCertified = 4,
  c_HistogramManager = 8,
  c_InternalSerializer = 16,
  c_TerminateInAllProcesses = 32,
  c_DontCollectStatistics = 64
}
 Each module can be tagged with property flags, which indicate certain features of the module. More...
 
typedef ModuleCondition::EAfterConditionPath EAfterConditionPath
 Forward the EAfterConditionPath definition from the ModuleCondition.
 

Public Member Functions

 AlignDQMModule ()
 Constructor.
 
void initialize () override final
 Module function initialize.
 
void beginRun () override final
 Module function beginRun.
 
void event () override final
 Module function event. More...
 
void endRun () override final
 Module function endRun.
 
void defineHisto () override final
 Histogram definitions such as TH1(), TH2(), TNtuple(), TTree().... More...
 
virtual void terminate () override
 Function to terminate module.
 
virtual std::vector< std::string > getFileNames (__attribute__((unused)) bool outputFiles)
 Return a list of output filenames for this modules. More...
 
const std::string & getName () const
 Returns the name of the module. More...
 
const std::string & getType () const
 Returns the type of the module (i.e. More...
 
const std::string & getPackage () const
 Returns the package this module is in.
 
const std::string & getDescription () const
 Returns the description of the module.
 
void setName (const std::string &name)
 Set the name of the module. More...
 
void setPropertyFlags (unsigned int propertyFlags)
 Sets the flags for the module properties. More...
 
LogConfiggetLogConfig ()
 Returns the log system configuration.
 
void setLogConfig (const LogConfig &logConfig)
 Set the log system configuration.
 
void setLogLevel (int logLevel)
 Configure the log level.
 
void setDebugLevel (int debugLevel)
 Configure the debug messaging level.
 
void setAbortLevel (int abortLevel)
 Configure the abort log level.
 
void setLogInfo (int logLevel, unsigned int logInfo)
 Configure the printed log information for the given level. More...
 
void if_value (const std::string &expression, const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 Add a condition to the module. More...
 
void if_false (const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 A simplified version to add a condition to the module. More...
 
void if_true (const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 A simplified version to set the condition of the module. More...
 
bool hasCondition () const
 Returns true if at least one condition was set for the module.
 
const ModuleConditiongetCondition () const
 Return a pointer to the first condition (or nullptr, if none was set)
 
const std::vector< ModuleCondition > & getAllConditions () const
 Return all set conditions for this module.
 
bool evalCondition () const
 If at least one condition was set, it is evaluated and true returned if at least one condition returns true. More...
 
std::shared_ptr< PathgetConditionPath () const
 Returns the path of the last true condition (if there is at least one, else reaturn a null pointer). More...
 
Module::EAfterConditionPath getAfterConditionPath () const
 What to do after the conditional path is finished. More...
 
std::vector< std::shared_ptr< Path > > getAllConditionPaths () const
 Return all condition paths currently set (no matter if the condition is true or not).
 
bool hasProperties (unsigned int propertyFlags) const
 Returns true if all specified property flags are available in this module. More...
 
bool hasUnsetForcedParams () const
 Returns true and prints error message if the module has unset parameters which the user has to set in the steering file.
 
const ModuleParamListgetParamList () const
 Return module param list.
 
template<typename T >
ModuleParam< T > & getParam (const std::string &name) const
 Returns a reference to a parameter. More...
 
bool hasReturnValue () const
 Return true if this module has a valid return value set.
 
int getReturnValue () const
 Return the return value set by this module. More...
 
std::shared_ptr< PathElementclone () const override
 Create an independent copy of this module. More...
 
std::shared_ptr< boost::python::list > getParamInfoListPython () const
 Returns a python list of all parameters. More...
 

Static Public Member Functions

static void exposePythonAPI ()
 Exposes methods of the Module class to Python.
 

Protected Member Functions

virtual void def_initialize ()
 Wrappers to make the methods without "def_" prefix callable from Python. More...
 
virtual void def_beginRun ()
 Wrapper method for the virtual function beginRun() that has the implementation to be used in a call from Python.
 
virtual void def_event ()
 Wrapper method for the virtual function event() that has the implementation to be used in a call from Python.
 
virtual void def_endRun ()
 This method can receive that the current run ends as a call from the Python side. More...
 
virtual void def_terminate ()
 Wrapper method for the virtual function terminate() that has the implementation to be used in a call from Python.
 
void setDescription (const std::string &description)
 Sets the description of the module. More...
 
void setType (const std::string &type)
 Set the module type. More...
 
template<typename T >
void addParam (const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
 Adds a new parameter to the module. More...
 
template<typename T >
void addParam (const std::string &name, T &paramVariable, const std::string &description)
 Adds a new enforced parameter to the module. More...
 
void setReturnValue (int value)
 Sets the return value for this module as integer. More...
 
void setReturnValue (bool value)
 Sets the return value for this module as bool. More...
 
void setParamList (const ModuleParamList &params)
 Replace existing parameter list.
 

Private Member Functions

bool IsNotYang (int ladderNumber, int layerNumber)
 Returns true if sensor with given ladderNumber and layerNumber isn't in the Yang half-shell, therefore it should be in the Ying half-shell if it's from PXD detector. More...
 
bool IsNotMat (int ladderNumber, int layerNumber)
 Returns true if sensor with given ladderNumber and layerNumber isn't in the Mat half-shell, therefore it should be in the Pat half-shell if it's from SVD detector. More...
 
std::list< ModulePtrgetModules () const override
 no submodules, return empty list
 
std::string getPathString () const override
 return the module name.
 
void setParamPython (const std::string &name, const boost::python::object &pyObj)
 Implements a method for setting boost::python objects. More...
 
void setParamPythonDict (const boost::python::dict &dictionary)
 Implements a method for reading the parameter values from a boost::python dictionary. More...
 

Private Attributes

TH2F ** m_ResMeanPosUVSensCounts = nullptr
 ResidaulMean vs U vs V counter for sensor.
 
TH2F ** m_ResMeanUPosUVSens = nullptr
 ResidaulMeanU vs U vs V for sensor.
 
TH2F ** m_ResMeanVPosUVSens = nullptr
 ResidaulMeanU vs U vs V for sensor.
 
TH2F ** m_ResUPosUSens = nullptr
 ResidaulU vs U for sensor.
 
TH2F ** m_ResUPosVSens = nullptr
 ResidaulU vs V for sensor.
 
TH2F ** m_ResVPosUSens = nullptr
 ResidaulV vs U for sensor.
 
TH2F ** m_ResVPosVSens = nullptr
 ResidaulV vs V for sensor.
 
TH1F ** m_ResMeanUPosUSens = nullptr
 ResidaulMeanU vs U for sensor.
 
TH1F ** m_ResMeanUPosVSens = nullptr
 ResidaulMeanU vs V for sensor.
 
TH1F ** m_ResMeanVPosUSens = nullptr
 ResidaulMeanV vs U for sensor.
 
TH1F ** m_ResMeanVPosVSens = nullptr
 ResidaulMeanV vs V for sensor.
 
TH2F ** m_ResMeanPhiThetaLayerCounts = nullptr
 ResidaulMean vs Phi vs Theta counter for Layer.
 
TH2F ** m_ResMeanUPhiThetaLayer = nullptr
 ResidaulMeanU vs Phi vs Theta for Layer.
 
TH2F ** m_ResMeanVPhiThetaLayer = nullptr
 ResidaulMeanU vs Phi vs Theta for Layer.
 
TH2F ** m_ResUPhiLayer = nullptr
 ResidaulU vs Phi for Layer.
 
TH2F ** m_ResUThetaLayer = nullptr
 ResidaulU vs Theta for Layer.
 
TH2F ** m_ResVPhiLayer = nullptr
 ResidaulV vs Phi for Layer.
 
TH2F ** m_ResVThetaLayer = nullptr
 ResidaulV vs Theta for Layer.
 
TH1F ** m_ResMeanUPhiLayer = nullptr
 ResidaulMeanU vs Phi for Layer.
 
TH1F ** m_ResMeanUThetaLayer = nullptr
 ResidaulMeanU vs Theta for Layer.
 
TH1F ** m_ResMeanVPhiLayer = nullptr
 ResidaulMeanV vs Phi for Layer.
 
TH1F ** m_ResMeanVThetaLayer = nullptr
 ResidaulMeanV vs Theta for Layer.
 
TH1F * m_PValue = nullptr
 p Value
 
TH1F * m_Chi2 = nullptr
 Chi2.
 
TH1F * m_NDF = nullptr
 NDF.
 
TH1F * m_Chi2NDF = nullptr
 Chi2 / NDF.
 
TH2F * m_UBResidualsPXD = nullptr
 Unbiased residuals for PXD u vs v.
 
TH2F * m_UBResidualsSVD = nullptr
 Unbiased residuals for SVD u vs v.
 
TH2F ** m_UBResidualsSensor = nullptr
 Unbiased residuals for PXD and SVD u vs v per sensor.
 
TH1F * m_UBResidualsPXDU = nullptr
 Unbiased residuals for PXD u.
 
TH1F * m_UBResidualsSVDU = nullptr
 Unbiased residuals for SVD u.
 
TH1F ** m_UBResidualsSensorU = nullptr
 Unbiased residuals for PXD and SVD u per sensor.
 
TH1F * m_UBResidualsPXDV = nullptr
 Unbiased residuals for PXD v.
 
TH1F * m_UBResidualsSVDV = nullptr
 Unbiased residuals for SVD v.
 
TH1F * m_UBResidualsPXDX_Ying = nullptr
 Unbiased residuals in X for PXD for Ying.
 
TH1F * m_UBResidualsPXDX_Yang = nullptr
 Unbiased residuals in X for PXD for Yang.
 
TH1F * m_UBResidualsSVDX_Pat = nullptr
 Unbiased residuals in X for SVD for Pat.
 
TH1F * m_UBResidualsSVDX_Mat = nullptr
 Unbiased residuals in X for SVD for Mat.
 
TH1F * m_UBResidualsPXDY_Ying = nullptr
 Unbiased residuals in Y for PXD for Ying.
 
TH1F * m_UBResidualsPXDY_Yang = nullptr
 Unbiased residuals in Y for PXD for Yang.
 
TH1F * m_UBResidualsSVDY_Pat = nullptr
 Unbiased residuals in Y for SVD for Pat.
 
TH1F * m_UBResidualsSVDY_Mat = nullptr
 Unbiased residuals in Y for SVD for Mat.
 
TH1F * m_UBResidualsPXDZ_Ying = nullptr
 Unbiased residuals in Z for PXD for Ying.
 
TH1F * m_UBResidualsPXDZ_Yang = nullptr
 Unbiased residuals in Z for PXD for Yang.
 
TH1F * m_UBResidualsSVDZ_Pat = nullptr
 Unbiased residuals in Z for SVD for Pat.
 
TH1F * m_UBResidualsSVDZ_Mat = nullptr
 Unbiased residuals in Z for SVD for Mat.
 
TH1F ** m_UBResidualsSensorV = nullptr
 Unbiased residuals for PXD and SVD v per sensor.
 
TH2F ** m_TRClusterHitmap = nullptr
 Track related clusters - hitmap in IP angle range.
 
TH2F ** m_TRClusterCorrelationsPhi = nullptr
 Track related clusters - neighbor corelations in Phi.
 
TH2F ** m_TRClusterCorrelationsTheta = nullptr
 Track related clusters - neighbor corelations in Theta.
 
TH1F * m_MomPhi = nullptr
 Track momentum Pt.Phi.
 
TH1F * m_MomTheta = nullptr
 Track momentum Pt.Theta.
 
TH1F * m_MomCosTheta = nullptr
 Track momentum Pt.CosTheta.
 
TH1F * m_MomX = nullptr
 Track momentum Pt.X.
 
TH1F * m_MomY = nullptr
 Track momentum Pt.Y.
 
TH1F * m_MomZ = nullptr
 Track momentum Pt.Z.
 
TH1F * m_MomPt = nullptr
 Track momentum Pt.
 
TH1F * m_Mom = nullptr
 Track momentum Magnitude.
 
TH1F * m_HitsPXD = nullptr
 Number of hits on PXD.
 
TH1F * m_HitsSVD = nullptr
 Number of hits on VXD.
 
TH1F * m_HitsCDC = nullptr
 Number of hits on CDC.
 
TH1F * m_Hits = nullptr
 Number of all hits in tracks.
 
TH1F * m_TracksVXD = nullptr
 Number of tracks only with VXD.
 
TH1F * m_TracksCDC = nullptr
 Number of tracks only with CDC.
 
TH1F * m_TracksVXDCDC = nullptr
 Number of full tracks with VXD+CDC.
 
TH1F * m_Tracks = nullptr
 Number of all finding tracks.
 
TH1F * m_Phi = nullptr
 helix parameters and their corellations: More...
 
TH1F * m_D0 = nullptr
 d0 - the signed distance to the IP in the r-phi plane
 
TH1F * m_Z0 = nullptr
 z0 - the z0 coordinate of the perigee (beam spot position)
 
TH1F * m_Omega = nullptr
 Omega - the curvature of the track. More...
 
TH1F * m_TanLambda = nullptr
 TanLambda - the slope of the track in the r-z plane.
 
TH2F * m_PhiD0 = nullptr
 Phi - the angle of the transverse momentum in the r-phi plane vs. More...
 
TH2F * m_PhiZ0 = nullptr
 Phi - the angle of the transverse momentum in the r-phi plane vs. More...
 
TH2F * m_PhiMomPt = nullptr
 Phi - the angle of the transverse momentum in the r-phi plane vs. More...
 
TH2F * m_PhiOmega = nullptr
 Phi - the angle of the transverse momentum in the r-phi plane vs. More...
 
TH2F * m_PhiTanLambda = nullptr
 Phi - the angle of the transverse momentum in the r-phi plane vs. More...
 
TH2F * m_D0Z0 = nullptr
 d0 - signed distance to the IP in r-phi vs. More...
 
TH2F * m_D0MomPt = nullptr
 d0 - signed distance to the IP in r-phi vs. More...
 
TH2F * m_D0Omega = nullptr
 d0 - signed distance to the IP in r-phi vs. More...
 
TH2F * m_D0TanLambda = nullptr
 d0 - signed distance to the IP in r-phi vs. More...
 
TH2F * m_Z0MomPt = nullptr
 z0 - the z0 coordinate of the perigee vs. More...
 
TH2F * m_Z0Omega = nullptr
 z0 - the z0 coordinate of the perigee vs. More...
 
TH2F * m_Z0TanLambda = nullptr
 z0 - the z0 coordinate of the perigee vs. More...
 
TH2F * m_MomPtOmega = nullptr
 Track momentum Pt vs. More...
 
TH2F * m_MomPtTanLambda = nullptr
 Track momentum Pt vs. More...
 
TH2F * m_OmegaTanLambda = nullptr
 Omega - the curvature of the track vs. More...
 
std::string m_param_TracksStoreArrayName = ""
 StoreArray name where the merged Tracks are written.
 
std::string m_param_RecoTracksStoreArrayName = ""
 StoreArray name where the merged RecoTracks are written.
 
std::string m_name
 The name of the module, saved as a string (user-modifiable)
 
std::string m_type
 The type of the module, saved as a string.
 
std::string m_package
 Package this module is found in (may be empty).
 
std::string m_description
 The description of the module.
 
unsigned int m_propertyFlags
 The properties of the module as bitwise or (with |) of EModulePropFlags.
 
LogConfig m_logConfig
 The log system configuration of the module.
 
ModuleParamList m_moduleParamList
 List storing and managing all parameter of the module.
 
bool m_hasReturnValue
 True, if the return value is set.
 
int m_returnValue
 The return value.
 
std::vector< ModuleConditionm_conditions
 Module condition, only non-null if set.
 

Detailed Description

DQM of Alignment for off line residuals per sensor, layer, keep also On-Line DQM from tracking: their momentum, Number of hits in tracks, Number of tracks.

Definition at line 49 of file AlignDQMModule.h.

Member Enumeration Documentation

◆ EModulePropFlags

enum EModulePropFlags
inherited

Each module can be tagged with property flags, which indicate certain features of the module.

Enumerator
c_Input 

This module is an input module (reads data).

c_Output 

This module is an output module (writes data).

c_ParallelProcessingCertified 

This module can be run in parallel processing mode safely (All I/O must be done through the data store, in particular, the module must not write any files.)

c_HistogramManager 

This module is used to manage histograms accumulated by other modules.

c_InternalSerializer 

This module is an internal serializer/deserializer for parallel processing.

c_TerminateInAllProcesses 

When using parallel processing, call this module's terminate() function in all processes().

This will also ensure that there is exactly one process (single-core if no parallel modules found) or at least one input, one main and one output process.

c_DontCollectStatistics 

No statistics is collected for this module.

Definition at line 79 of file Module.h.

Member Function Documentation

◆ clone()

std::shared_ptr< PathElement > clone ( ) const
overridevirtualinherited

Create an independent copy of this module.

Note that parameters are shared, so changing them on a cloned module will also affect the original module.

Implements PathElement.

Definition at line 181 of file Module.cc.

◆ def_endRun()

virtual void def_endRun ( )
inlineprotectedvirtualinherited

This method can receive that the current run ends as a call from the Python side.

For regular C++-Modules that forwards the call to the regular endRun() method.

Reimplemented in PyModule.

Definition at line 441 of file Module.h.

◆ def_initialize()

virtual void def_initialize ( )
inlineprotectedvirtualinherited

Wrappers to make the methods without "def_" prefix callable from Python.

Overridden in PyModule. Wrapper method for the virtual function initialize() that has the implementation to be used in a call from Python.

Reimplemented in PyModule.

Definition at line 422 of file Module.h.

◆ defineHisto()

void defineHisto ( )
finaloverridevirtual

Histogram definitions such as TH1(), TH2(), TNtuple(), TTree()....

are supposed to be placed in this function.

helix parameters and their corellations:

p Value

Chi2

NDF

Chi2 / NDF

Unbiased residuals for PXD u vs v

Unbiased residuals for SVD u vs v

Unbiased residuals for PXD u, v

Unbiased residuals for SVD u, v

Track related clusters - hitmap in IP angle range

Track related clusters - neighbor corelations in Phi

Track related clusters - neighbor corelations in Theta

Unbiased residuals for PXD u vs v per sensor

Unbiased residuals for PXD u vs v per sensor

Reimplemented from HistoModule.

Definition at line 86 of file AlignDQMModule.cc.

87 {
88  auto gTools = VXD::GeoCache::getInstance().getGeoTools();
89  if (gTools->getNumberOfLayers() == 0) {
90  B2WARNING("Missing geometry for VXD.");
91  }
92 
93  // basic constants presets:
94  int nVXDLayers = gTools->getNumberOfLayers();
95  int nVXDSensors = gTools->getNumberOfSensors();
96  float ResidualRange = 400; // in um
98 
99  // Create a separate histogram directories and cd into it.
100  TDirectory* oldDir = gDirectory;
101  TDirectory* DirAlign = oldDir->mkdir("AlignmentDQM");
102  TDirectory* DirAlignSensors = oldDir->mkdir("AlignmentDQMSensors");
103  TDirectory* DirAlignSensResids = DirAlignSensors->mkdir("Residuals2D");
104  TDirectory* DirAlignSensResids1D = DirAlignSensors->mkdir("Residuals1D");
105 
106  TDirectory* DirAlignSensResMeanUPosUV = DirAlignSensors->mkdir("ResidMeanUPositUV");
107  TDirectory* DirAlignSensResMeanVPosUV = DirAlignSensors->mkdir("ResidMeanVPositUV");
108  TDirectory* DirAlignSensResMeanUPosU = DirAlignSensors->mkdir("ResidMeanUPositU");
109  TDirectory* DirAlignSensResMeanVPosU = DirAlignSensors->mkdir("ResidMeanVPositU");
110  TDirectory* DirAlignSensResMeanUPosV = DirAlignSensors->mkdir("ResidMeanUPositV");
111  TDirectory* DirAlignSensResMeanVPosV = DirAlignSensors->mkdir("ResidMeanVPositV");
112  TDirectory* DirAlignSensResUPosU = DirAlignSensors->mkdir("ResidUPositU");
113  TDirectory* DirAlignSensResVPosU = DirAlignSensors->mkdir("ResidVPositU");
114  TDirectory* DirAlignSensResUPosV = DirAlignSensors->mkdir("ResidUPositV");
115  TDirectory* DirAlignSensResVPosV = DirAlignSensors->mkdir("ResidVPositV");
116 
117  TDirectory* DirAlignLayers = oldDir->mkdir("AlignmentDQMLayers");
118 
119  TDirectory* DirAlignLayerResMeanUPosUV = DirAlignLayers->mkdir("ResidLayerMeanUPositPhiTheta");
120  TDirectory* DirAlignLayerResMeanVPosUV = DirAlignLayers->mkdir("ResidLayerMeanVPositPhiTheta");
121  TDirectory* DirAlignLayerResMeanUPosU = DirAlignLayers->mkdir("ResidLayerMeanUPositPhi");
122  TDirectory* DirAlignLayerResMeanVPosU = DirAlignLayers->mkdir("ResidLayerMeanVPositPhi");
123  TDirectory* DirAlignLayerResMeanUPosV = DirAlignLayers->mkdir("ResidLayerMeanUPositTheta");
124  TDirectory* DirAlignLayerResMeanVPosV = DirAlignLayers->mkdir("ResidLayerMeanVPositTheta");
125  TDirectory* DirAlignLayerResUPosU = DirAlignLayers->mkdir("ResidLayerUPositPhi");
126  TDirectory* DirAlignLayerResVPosU = DirAlignLayers->mkdir("ResidLayerVPositPhi");
127  TDirectory* DirAlignLayerResUPosV = DirAlignLayers->mkdir("ResidLayerUPositTheta");
128  TDirectory* DirAlignLayerResVPosV = DirAlignLayers->mkdir("ResidLayerVPositTheta");
129 
131  TDirectory* DirAlignHelixParameters = DirAlign->mkdir("HelixPars");
132  TDirectory* DirAlignHelixCorrelations = DirAlign->mkdir("HelixCorrelations");
133 
134  // half-shells
135  TDirectory* DirAlignHalfShells = DirAlign->mkdir("HalfShells");
136 
137  float fMomRange = 3.0;
138  int iMomRange = 60;
139  float fZ0Range = 10.0; // Half range in cm
140  float fD0Range = 1.0; // Half range in cm
141  int iPhiRange = 180;
142  float fPhiRange = 180.0; // Half range in deg
143 
144  DirAlignHelixParameters->cd();
145 
146  string name = str(format("Alig_Z0"));
147  string title = str(format("z0 - the z coordinate of the perigee (beam spot position)"));
148  m_Z0 = new TH1F(name.c_str(), title.c_str(), 100, -fZ0Range, fZ0Range);
149  m_Z0->GetXaxis()->SetTitle("z0 [cm]");
150  m_Z0->GetYaxis()->SetTitle("Arb. Units");
151  name = str(format("Alig_D0"));
152  title = str(format("d0 - the signed distance to the IP in the r-phi plane"));
153  m_D0 = new TH1F(name.c_str(), title.c_str(), 100, -fD0Range, fD0Range);
154  m_D0->GetXaxis()->SetTitle("d0 [cm]");
155  m_D0->GetYaxis()->SetTitle("Arb. Units");
156  name = str(format("Alig_Phi"));
157  title = str(format("Phi - angle of the transverse momentum in the r-phi plane, with CDF naming convention"));
158  m_Phi = new TH1F(name.c_str(), title.c_str(), iPhiRange, -fPhiRange, fPhiRange);
159  m_Phi->GetXaxis()->SetTitle("#phi [deg]");
160  m_Phi->GetYaxis()->SetTitle("Arb. Units");
161  name = str(format("Alig_Omega"));
162  title = str(format("Omega - the curvature of the track. It's sign is defined by the charge of the particle"));
163  m_Omega = new TH1F(name.c_str(), title.c_str(), 100, -0.1, 0.1);
164  m_Omega->GetXaxis()->SetTitle("Omega");
165  m_Omega->GetYaxis()->SetTitle("Arb. Units");
166  name = str(format("Alig_TanLambda"));
167  title = str(format("TanLambda - the slope of the track in the r-z plane"));
168  m_TanLambda = new TH1F(name.c_str(), title.c_str(), 100, -4.0, 4.0);
169  m_TanLambda->GetXaxis()->SetTitle("Tan Lambda");
170  m_TanLambda->GetYaxis()->SetTitle("Arb. Units");
171 
172  DirAlignHelixCorrelations->cd();
173 
174  name = str(format("Alig_PhiD0"));
175  title = str(
176  format("Phi - angle of the transverse momentum in the r-phi plane vs. d0 - signed distance to the IP in r-phi "));
177  m_PhiD0 = new TH2F(name.c_str(), title.c_str(), iPhiRange, -fPhiRange, fPhiRange, 100, -fD0Range, fD0Range);
178  m_PhiD0->GetXaxis()->SetTitle("#phi [deg]");
179  m_PhiD0->GetYaxis()->SetTitle("d0 [cm]");
180  m_PhiD0->GetZaxis()->SetTitle("Arb. Units");
181  name = str(format("Alig_PhiZ0"));
182  title = str(
183  format("Phi - angle of the transverse momentum in the r-phi plane vs. "
184  "z0 of the perigee (to see primary vertex shifts along R or z)"));
185  m_PhiZ0 = new TH2F(name.c_str(), title.c_str(), iPhiRange, -fPhiRange, fPhiRange, 100, -fZ0Range, fZ0Range);
186  m_PhiZ0->GetXaxis()->SetTitle("#phi [deg]");
187  m_PhiZ0->GetYaxis()->SetTitle("z0 [cm]");
188  m_PhiZ0->GetZaxis()->SetTitle("Arb. Units");
189  name = str(format("Alig_PhiMomPt"));
190  title = str(
191  format("Phi - angle of the transverse momentum in the r-phi plane vs. Track momentum Pt"));
192  m_PhiMomPt = new TH2F(name.c_str(), title.c_str(), iPhiRange, -fPhiRange, fPhiRange, 2 * iMomRange, 0.0, fMomRange);
193  m_PhiMomPt->GetXaxis()->SetTitle("#phi [deg]");
194  m_PhiMomPt->GetYaxis()->SetTitle("Momentum");
195  m_PhiMomPt->GetZaxis()->SetTitle("Arb. Units");
196  name = str(format("Alig_PhiOmega"));
197  title = str(
198  format("Phi - angle of the transverse momentum in the r-phi plane vs. Omega - the curvature of the track"));
199  m_PhiOmega = new TH2F(name.c_str(), title.c_str(), iPhiRange, -fPhiRange, fPhiRange, 100, -0.1, 0.1);
200  m_PhiOmega->GetXaxis()->SetTitle("#phi [deg]");
201  m_PhiOmega->GetYaxis()->SetTitle("Omega");
202  m_PhiOmega->GetZaxis()->SetTitle("Arb. Units");
203  name = str(format("Alig_PhiTanLambda"));
204  title = str(
205  format("dPhi - angle of the transverse momentum in the r-phi plane vs. "
206  "TanLambda - the slope of the track in the r-z plane"));
207  m_PhiTanLambda = new TH2F(name.c_str(), title.c_str(), iPhiRange, -fPhiRange, fPhiRange, 100, -4.0, 4.0);
208  m_PhiTanLambda->GetXaxis()->SetTitle("#phi [deg]");
209  m_PhiTanLambda->GetYaxis()->SetTitle("Tan Lambda");
210  m_PhiTanLambda->GetZaxis()->SetTitle("Arb. Units");
211  name = str(format("Alig_D0Z0"));
212  title = str(
213  format("d0 - signed distance to the IP in r-phi vs. z0 of the perigee (to see primary vertex shifts along R or z)"));
214  m_D0Z0 = new TH2F(name.c_str(), title.c_str(), 100, -fD0Range, fD0Range, 100, -fZ0Range, fZ0Range);
215  m_D0Z0->GetXaxis()->SetTitle("d0 [cm]");
216  m_D0Z0->GetYaxis()->SetTitle("z0 [cm]");
217  m_D0Z0->GetZaxis()->SetTitle("Arb. Units");
218  name = str(format("Alig_D0MomPt"));
219  title = str(
220  format("d0 - signed distance to the IP in r-phi vs. Track momentum Pt"));
221  m_D0MomPt = new TH2F(name.c_str(), title.c_str(), 100, -fD0Range, fD0Range, 2 * iMomRange, 0.0, fMomRange);
222  m_D0MomPt->GetXaxis()->SetTitle("d0 [cm]");
223  m_D0MomPt->GetYaxis()->SetTitle("Momentum");
224  m_D0MomPt->GetZaxis()->SetTitle("Arb. Units");
225  name = str(format("Alig_D0Omega"));
226  title = str(
227  format("d0 - signed distance to the IP in r-phi vs. Omega - the curvature of the track"));
228  m_D0Omega = new TH2F(name.c_str(), title.c_str(), 100, -fD0Range, fD0Range, 100, -0.1, 0.1);
229  m_D0Omega->GetXaxis()->SetTitle("d0 [cm]");
230  m_D0Omega->GetYaxis()->SetTitle("Omega");
231  m_D0Omega->GetZaxis()->SetTitle("Arb. Units");
232  name = str(format("Alig_D0TanLambda"));
233  title = str(
234  format("d0 - signed distance to the IP in r-phi vs. TanLambda - the slope of the track in the r-z plane"));
235  m_D0TanLambda = new TH2F(name.c_str(), title.c_str(), 100, -fD0Range, fD0Range, 100, -4.0, 4.0);
236  m_D0TanLambda->GetXaxis()->SetTitle("d0 [cm]");
237  m_D0TanLambda->GetYaxis()->SetTitle("Tan Lambda");
238  m_D0TanLambda->GetZaxis()->SetTitle("Arb. Units");
239  name = str(format("Alig_Z0MomPt"));
240  title = str(
241  format("z0 - the z0 coordinate of the perigee vs. Track momentum Pt"));
242  m_Z0MomPt = new TH2F(name.c_str(), title.c_str(), 100, -fZ0Range, fZ0Range, 2 * iMomRange, 0.0, fMomRange);
243  m_Z0MomPt->GetXaxis()->SetTitle("z0 [cm]");
244  m_Z0MomPt->GetYaxis()->SetTitle("Momentum");
245  m_Z0MomPt->GetZaxis()->SetTitle("Arb. Units");
246  name = str(format("Alig_Z0Omega"));
247  title = str(
248  format("z0 - the z0 coordinate of the perigee vs. Omega - the curvature of the track"));
249  m_Z0Omega = new TH2F(name.c_str(), title.c_str(), 100, -fZ0Range, fZ0Range, 100, -0.1, 0.1);
250  m_Z0Omega->GetXaxis()->SetTitle("z0 [cm]");
251  m_Z0Omega->GetYaxis()->SetTitle("Omega");
252  m_Z0Omega->GetZaxis()->SetTitle("Arb. Units");
253  name = str(format("Alig_Z0TanLambda"));
254  title = str(
255  format("z0 - the z0 coordinate of the perigee vs. TanLambda - the slope of the track in the r-z plane"));
256  m_Z0TanLambda = new TH2F(name.c_str(), title.c_str(), 100, -fZ0Range, fZ0Range, 100, -4.0, 4.0);
257  m_Z0TanLambda->GetXaxis()->SetTitle("z0 [cm]");
258  m_Z0TanLambda->GetYaxis()->SetTitle("Tan Lambda");
259  m_Z0TanLambda->GetZaxis()->SetTitle("Arb. Units");
260  name = str(format("Alig_MomPtOmega"));
261  title = str(
262  format("Track momentum Pt vs. Omega - the curvature of the track"));
263  m_MomPtOmega = new TH2F(name.c_str(), title.c_str(), 2 * iMomRange, 0.0, fMomRange, 100, -0.1, 0.1);
264  m_MomPtOmega->GetXaxis()->SetTitle("Momentum");
265  m_MomPtOmega->GetYaxis()->SetTitle("Omega");
266  m_MomPtOmega->GetZaxis()->SetTitle("Arb. Units");
267  name = str(format("Alig_MomPtTanLambda"));
268  title = str(
269  format("Track momentum Pt vs. TanLambda - the slope of the track in the r-z plane"));
270  m_MomPtTanLambda = new TH2F(name.c_str(), title.c_str(), 2 * iMomRange, 0.0, fMomRange, 100, -4.0, 4.0);
271  m_MomPtTanLambda->GetXaxis()->SetTitle("Momentum");
272  m_MomPtTanLambda->GetYaxis()->SetTitle("Tan Lambda");
273  m_MomPtTanLambda->GetZaxis()->SetTitle("Arb. Units");
274  name = str(format("Alig_OmegaTanLambda"));
275  title = str(
276  format("Omega - the curvature of the track vs. TanLambda - the slope of the track in the r-z plane"));
277  m_OmegaTanLambda = new TH2F(name.c_str(), title.c_str(), 100, -0.1, 0.1, 100, -4.0, 4.0);
278  m_OmegaTanLambda->GetXaxis()->SetTitle("Omega");
279  m_OmegaTanLambda->GetYaxis()->SetTitle("Tan Lambda");
280  m_OmegaTanLambda->GetZaxis()->SetTitle("Arb. Units");
281 
282  iMomRange = 600;
283 
284  DirAlign->cd();
285  // Momentum Phi
286  name = str(format("Alig_MomPhi"));
287  title = str(format("Momentum Phi of fit"));
288  m_MomPhi = new TH1F(name.c_str(), title.c_str(), 180, -180, 180);
289  m_MomPhi->GetXaxis()->SetTitle("Mom Phi [deg]");
290  m_MomPhi->GetYaxis()->SetTitle("counts");
291  // Momentum Theta
292  name = str(format("Alig_MomTheta"));
293  title = str(format("Momentum Theta of fit"));
294  m_MomTheta = new TH1F(name.c_str(), title.c_str(), 90, 0, 180);
295  m_MomTheta->GetXaxis()->SetTitle("Mom Theta [deg]");
296  m_MomTheta->GetYaxis()->SetTitle("counts");
297  // Momentum CosTheta
298  name = str(format("Alig_MomCosTheta"));
299  title = str(format("Cos of Momentum Theta of fit"));
300  m_MomCosTheta = new TH1F(name.c_str(), title.c_str(), 100, -1, 1);
301  m_MomCosTheta->GetXaxis()->SetTitle("Mom CosTheta");
302  m_MomCosTheta->GetYaxis()->SetTitle("counts");
303 
305  name = str(format("Alig_PValue"));
306  title = str(format("P value of fit"));
307  m_PValue = new TH1F(name.c_str(), title.c_str(), 100, 0, 1);
308  m_PValue->GetXaxis()->SetTitle("p value");
309  m_PValue->GetYaxis()->SetTitle("counts");
311  name = str(format("Alig_Chi2"));
312  title = str(format("Chi2 of fit"));
313  m_Chi2 = new TH1F(name.c_str(), title.c_str(), 200, 0, 150);
314  m_Chi2->GetXaxis()->SetTitle("Chi2");
315  m_Chi2->GetYaxis()->SetTitle("counts");
317  name = str(format("Alig_NDF"));
318  title = str(format("NDF of fit"));
319  m_NDF = new TH1F(name.c_str(), title.c_str(), 200, 0, 200);
320  m_NDF->GetXaxis()->SetTitle("NDF");
321  m_NDF->GetYaxis()->SetTitle("counts");
323  name = str(format("Alig_Chi2NDF"));
324  title = str(format("Chi2 div NDF of fit"));
325  m_Chi2NDF = new TH1F(name.c_str(), title.c_str(), 200, 0, 10);
326  m_Chi2NDF->GetXaxis()->SetTitle("Chi2NDF");
327  m_Chi2NDF->GetYaxis()->SetTitle("counts");
328 
330  name = str(format("Alig_UBResidualsPXD"));
331  title = str(format("Unbiased residuals for PXD"));
332  m_UBResidualsPXD = new TH2F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange, 200, -ResidualRange, ResidualRange);
333  m_UBResidualsPXD->GetXaxis()->SetTitle("u residual [#mum]");
334  m_UBResidualsPXD->GetYaxis()->SetTitle("v residual [#mum]");
335  m_UBResidualsPXD->GetZaxis()->SetTitle("counts");
337  name = str(format("Alig_UBResidualsSVD"));
338  title = str(format("Unbiased residuals for SVD"));
339  m_UBResidualsSVD = new TH2F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange, 200, -ResidualRange, ResidualRange);
340  m_UBResidualsSVD->GetXaxis()->SetTitle("u residual [#mum]");
341  m_UBResidualsSVD->GetYaxis()->SetTitle("v residual [#mum]");
342  m_UBResidualsSVD->GetZaxis()->SetTitle("counts");
344  name = str(format("Alig_UBResidualsPXDU"));
345  title = str(format("Unbiased residuals in U for PXD"));
346  m_UBResidualsPXDU = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
347  m_UBResidualsPXDU->GetXaxis()->SetTitle("residual [#mum]");
348  m_UBResidualsPXDU->GetYaxis()->SetTitle("counts");
349  name = str(format("Alig_UBResidualsPXDV"));
350  title = str(format("Unbiased residuals in V for PXD"));
351  m_UBResidualsPXDV = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
352  m_UBResidualsPXDV->GetXaxis()->SetTitle("residual [#mum]");
353  m_UBResidualsPXDV->GetYaxis()->SetTitle("counts");
355  name = str(format("Alig_UBResidualsSVDU"));
356  title = str(format("Unbiased residuals in U for SVD"));
357  m_UBResidualsSVDU = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
358  m_UBResidualsSVDU->GetXaxis()->SetTitle("residual [#mum]");
359  m_UBResidualsSVDU->GetYaxis()->SetTitle("counts");
360  name = str(format("Alig_UBResidualsSVDV"));
361  title = str(format("Unbiased residuals in V for SVD"));
362  m_UBResidualsSVDV = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
363  m_UBResidualsSVDV->GetXaxis()->SetTitle("residual [#mum]");
364  m_UBResidualsSVDV->GetYaxis()->SetTitle("counts");
365 
366  // half-shells
367  DirAlignHalfShells->cd();
368  // X
369  // Unbiased residuals in X for PXD for Ying
370  name = "Alig_UBResidualsPXDX_Ying";
371  title = "Unbiased residuals in X for PXD for Ying";
372  m_UBResidualsPXDX_Ying = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
373  m_UBResidualsPXDX_Ying->GetXaxis()->SetTitle("residual [#mum]");
374  m_UBResidualsPXDX_Ying->GetYaxis()->SetTitle("counts");
375 
376  // Unbiased residuals in X for PXD for Yang
377  name = "Alig_UBResidualsPXDX_Yang";
378  title = "Unbiased residuals in X for PXD for Yang";
379  m_UBResidualsPXDX_Yang = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
380  m_UBResidualsPXDX_Yang->GetXaxis()->SetTitle("residual [#mum]");
381  m_UBResidualsPXDX_Yang->GetYaxis()->SetTitle("counts");
382 
383  // Unbiased residuals in X for SVD for Pat
384  name = "Alig_UBResidualsSVDX_Pat";
385  title = "Unbiased residuals in X for SVD for Pat";
386  m_UBResidualsSVDX_Pat = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
387  m_UBResidualsSVDX_Pat->GetXaxis()->SetTitle("residual [#mum]");
388  m_UBResidualsSVDX_Pat->GetYaxis()->SetTitle("counts");
389 
390  // Unbiased residuals in X for SVD for Mat
391  name = "Alig_UBResidualsSVDX_Mat";
392  title = "Unbiased residuals in X for SVD for Mat";
393  m_UBResidualsSVDX_Mat = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
394  m_UBResidualsSVDX_Mat->GetXaxis()->SetTitle("residual [#mum]");
395  m_UBResidualsSVDX_Mat->GetYaxis()->SetTitle("counts");
396 
397  // Y
398  // Unbiased residuals in Y for PXD for Ying
399  name = "Alig_UBResidualsPXDY_Ying";
400  title = "Unbiased residuals in Y for PXD for Ying";
401  m_UBResidualsPXDY_Ying = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
402  m_UBResidualsPXDY_Ying->GetXaxis()->SetTitle("residual [#mum]");
403  m_UBResidualsPXDY_Ying->GetYaxis()->SetTitle("counts");
404 
405  // Unbiased residuals in Y for PXD for Yang
406  name = "Alig_UBResidualsPXDY_Yang";
407  title = "Unbiased residuals in Y for PXD for Yang";
408  m_UBResidualsPXDY_Yang = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
409  m_UBResidualsPXDY_Yang->GetXaxis()->SetTitle("residual [#mum]");
410  m_UBResidualsPXDY_Yang->GetYaxis()->SetTitle("counts");
411 
412  // Unbiased residuals in Y for SVD for Pat
413  name = "Alig_UBResidualsSVDY_Pat";
414  title = "Unbiased residuals in Y for SVD for Pat";
415  m_UBResidualsSVDY_Pat = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
416  m_UBResidualsSVDY_Pat->GetXaxis()->SetTitle("residual [#mum]");
417  m_UBResidualsSVDY_Pat->GetYaxis()->SetTitle("counts");
418 
419  // Unbiased residuals in Y for SVD for Mat
420  name = "Alig_UBResidualsSVDY_Mat";
421  title = "Unbiased residuals in Y for SVD for Mat";
422  m_UBResidualsSVDY_Mat = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
423  m_UBResidualsSVDY_Mat->GetXaxis()->SetTitle("residual [#mum]");
424  m_UBResidualsSVDY_Mat->GetYaxis()->SetTitle("counts");
425 
426  // Z
427  // Unbiased residuals in Z for PXD for Ying
428  name = "Alig_UBResidualsPXDZ_Ying";
429  title = "Unbiased residuals in Z for PXD for Ying";
430  m_UBResidualsPXDZ_Ying = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
431  m_UBResidualsPXDZ_Ying->GetXaxis()->SetTitle("residual [#mum]");
432  m_UBResidualsPXDZ_Ying->GetYaxis()->SetTitle("counts");
433 
434  // Unbiased residuals in Z for PXD for Yang
435  name = "Alig_UBResidualsPXDZ_Yang";
436  title = "Unbiased residuals in Z for PXD for Yang";
437  m_UBResidualsPXDZ_Yang = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
438  m_UBResidualsPXDZ_Yang->GetXaxis()->SetTitle("residual [#mum]");
439  m_UBResidualsPXDZ_Yang->GetYaxis()->SetTitle("counts");
440 
441  // Unbiased residuals in Z for SVD for Pat
442  name = "Alig_UBResidualsSVDZ_Pat";
443  title = "Unbiased residuals in Z for SVD for Pat";
444  m_UBResidualsSVDZ_Pat = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
445  m_UBResidualsSVDZ_Pat->GetXaxis()->SetTitle("residual [#mum]");
446  m_UBResidualsSVDZ_Pat->GetYaxis()->SetTitle("counts");
447 
448  // Unbiased residuals in Z for SVD for Mat
449  name = "Alig_UBResidualsSVDZ_Mat";
450  title = "Unbiased residuals in Z for SVD for Mat";
451  m_UBResidualsSVDZ_Mat = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
452  m_UBResidualsSVDZ_Mat->GetXaxis()->SetTitle("residual [#mum]");
453  m_UBResidualsSVDZ_Mat->GetYaxis()->SetTitle("counts");
454 
455  DirAlign->cd();
456 
457  if (gTools->getNumberOfLayers() == 0) {
458  B2WARNING("Missing geometry for VXD, VXD-DQM related are skiped.");
459  return;
460  }
461 
462  m_TRClusterHitmap = (TH2F**) new TH2F*[nVXDLayers];
463  m_TRClusterCorrelationsPhi = (TH2F**) new TH2F*[nVXDLayers - 1];
464  m_TRClusterCorrelationsTheta = (TH2F**) new TH2F*[nVXDLayers - 1];
465  m_UBResidualsSensor = (TH2F**) new TH2F*[nVXDSensors];
466  m_UBResidualsSensorU = (TH1F**) new TH2F*[nVXDSensors];
467  m_UBResidualsSensorV = (TH1F**) new TH2F*[nVXDSensors];
468 
469  for (VxdID layer : geo.getLayers()) {
470  int i = layer.getLayerNumber();
471  int index = gTools->getLayerIndex(layer.getLayerNumber());
473  name = str(format("Alig_TRClusterHitmapLayer%1%") % i);
474  title = str(format("Cluster Hitmap for layer %1%") % i);
475  m_TRClusterHitmap[index] = new TH2F(name.c_str(), title.c_str(), 360, -180.0, 180.0, 180, 0.0, 180.0);
476  m_TRClusterHitmap[index]->GetXaxis()->SetTitle("Phi angle [deg]");
477  m_TRClusterHitmap[index]->GetYaxis()->SetTitle("Theta angle [deg]");
478  m_TRClusterHitmap[index]->GetZaxis()->SetTitle("counts");
479  }
480  for (VxdID layer : geo.getLayers()) {
481  int i = layer.getLayerNumber();
482  if (i == gTools->getLastLayer()) continue;
483  int index = gTools->getLayerIndex(layer.getLayerNumber());
485  name = str(format("Alig_CorrelationsPhiLayers_%1%_%2%") % i % (i + 1));
486  title = str(format("Correlations in Phi for Layers %1% %2%") % i % (i + 1));
487  m_TRClusterCorrelationsPhi[index] = new TH2F(name.c_str(), title.c_str(), 360, -180.0, 180.0, 360, -180.0, 180.0);
488  title = str(format("angle layer %1% [deg]") % i);
489  m_TRClusterCorrelationsPhi[index]->GetXaxis()->SetTitle(title.c_str());
490  title = str(format("angle layer %1% [deg]") % (i + 1));
491  m_TRClusterCorrelationsPhi[index]->GetYaxis()->SetTitle(title.c_str());
492  m_TRClusterCorrelationsPhi[index]->GetZaxis()->SetTitle("counts");
494  name = str(format("Alig_CorrelationsThetaLayers_%1%_%2%") % i % (i + 1));
495  title = str(format("Correlations in Theta for Layers %1% %2%") % i % (i + 1));
496  m_TRClusterCorrelationsTheta[index] = new TH2F(name.c_str(), title.c_str(), 180, 0.0, 180.0, 180, 0.0, 180.0);
497  title = str(format("angle layer %1% [deg]") % i);
498  m_TRClusterCorrelationsTheta[index]->GetXaxis()->SetTitle(title.c_str());
499  title = str(format("angle layer %1% [deg]") % (i + 1));
500  m_TRClusterCorrelationsTheta[index]->GetYaxis()->SetTitle(title.c_str());
501  m_TRClusterCorrelationsTheta[index]->GetZaxis()->SetTitle("counts");
502  }
503 
504  m_MomX = NULL;
505  m_MomY = NULL;
506  m_MomZ = NULL;
507  m_Mom = NULL;
508  m_HitsPXD = NULL;
509  m_HitsSVD = NULL;
510  m_HitsCDC = NULL;
511  m_Hits = NULL;
512  m_TracksVXD = NULL;
513  m_TracksCDC = NULL;
514  m_TracksVXDCDC = NULL;
515  m_Tracks = NULL;
516 
517  int iHitsInPXD = 10;
518  int iHitsInSVD = 20;
519  int iHitsInCDC = 200;
520  int iHits = 200;
521  int iTracks = 30;
522  name = str(format("Alig_TrackMomentumX"));
523  title = str(format("Track Momentum X"));
524  m_MomX = new TH1F(name.c_str(), title.c_str(), 2 * iMomRange, -fMomRange, fMomRange);
525  m_MomX->GetXaxis()->SetTitle("Momentum");
526  m_MomX->GetYaxis()->SetTitle("counts");
527  name = str(format("Alig_TrackMomentumY"));
528  title = str(format("Track Momentum Y"));
529  m_MomY = new TH1F(name.c_str(), title.c_str(), 2 * iMomRange, -fMomRange, fMomRange);
530  m_MomY->GetXaxis()->SetTitle("Momentum");
531  m_MomY->GetYaxis()->SetTitle("counts");
532  name = str(format("Alig_TrackMomentumZ"));
533  title = str(format("Track Momentum Z"));
534  m_MomZ = new TH1F(name.c_str(), title.c_str(), 2 * iMomRange, -fMomRange, fMomRange);
535  m_MomZ->GetXaxis()->SetTitle("Momentum");
536  m_MomZ->GetYaxis()->SetTitle("counts");
537 
538  DirAlignHelixParameters->cd();
539  name = str(format("Alig_TrackMomentumPt"));
540  title = str(format("Track Momentum pT"));
541  m_MomPt = new TH1F(name.c_str(), title.c_str(), 2 * iMomRange, 0.0, fMomRange);
542  m_MomPt->GetXaxis()->SetTitle("Momentum");
543  m_MomPt->GetYaxis()->SetTitle("counts");
544 
545  DirAlign->cd();
546  name = str(format("Alig_TrackMomentumMag"));
547  title = str(format("Track Momentum Magnitude"));
548  m_Mom = new TH1F(name.c_str(), title.c_str(), 2 * iMomRange, 0.0, fMomRange);
549  m_Mom->GetXaxis()->SetTitle("Momentum");
550  m_Mom->GetYaxis()->SetTitle("counts");
551 
552  name = str(format("Alig_NoOfHitsInTrack_PXD"));
553  title = str(format("No Of Hits In Track - PXD"));
554  m_HitsPXD = new TH1F(name.c_str(), title.c_str(), iHitsInPXD, 0, iHitsInPXD);
555  m_HitsPXD->GetXaxis()->SetTitle("# hits");
556  m_HitsPXD->GetYaxis()->SetTitle("counts");
557  name = str(format("Alig_NoOfHitsInTrack_SVD"));
558  title = str(format("No Of Hits In Track - SVD"));
559  m_HitsSVD = new TH1F(name.c_str(), title.c_str(), iHitsInSVD, 0, iHitsInSVD);
560  m_HitsSVD->GetXaxis()->SetTitle("# hits");
561  m_HitsSVD->GetYaxis()->SetTitle("counts");
562  name = str(format("Alig_NoOfHitsInTrack_CDC"));
563  title = str(format("No Of Hits In Track - CDC"));
564  m_HitsCDC = new TH1F(name.c_str(), title.c_str(), iHitsInCDC, 0, iHitsInCDC);
565  m_HitsCDC->GetXaxis()->SetTitle("# hits");
566  m_HitsCDC->GetYaxis()->SetTitle("counts");
567  name = str(format("Alig_NoOfHitsInTrack"));
568  title = str(format("No Of Hits In Track"));
569  m_Hits = new TH1F(name.c_str(), title.c_str(), iHits, 0, iHits);
570  m_Hits->GetXaxis()->SetTitle("# hits");
571  m_Hits->GetYaxis()->SetTitle("counts");
572 
573  name = str(format("Alig_NoOfTracksInVXDOnly"));
574  title = str(format("No Of Tracks Per Event, Only In VXD"));
575  m_TracksVXD = new TH1F(name.c_str(), title.c_str(), iTracks, 0, iTracks);
576  m_TracksVXD->GetXaxis()->SetTitle("# tracks");
577  m_TracksVXD->GetYaxis()->SetTitle("counts");
578  name = str(format("Alig_NoOfTracksInCDCOnly"));
579  title = str(format("No Of Tracks Per Event, Only In CDC"));
580  m_TracksCDC = new TH1F(name.c_str(), title.c_str(), iTracks, 0, iTracks);
581  m_TracksCDC->GetXaxis()->SetTitle("# tracks");
582  m_TracksCDC->GetYaxis()->SetTitle("counts");
583  name = str(format("Alig_NoOfTracksInVXDCDC"));
584  title = str(format("No Of Tracks Per Event, In VXD+CDC"));
585  m_TracksVXDCDC = new TH1F(name.c_str(), title.c_str(), iTracks, 0, iTracks);
586  m_TracksVXDCDC->GetXaxis()->SetTitle("# tracks");
587  m_TracksVXDCDC->GetYaxis()->SetTitle("counts");
588  name = str(format("Alig_NoOfTracks"));
589  title = str(format("No Of All Tracks Per Event"));
590  m_Tracks = new TH1F(name.c_str(), title.c_str(), iTracks, 0, iTracks);
591  m_Tracks->GetXaxis()->SetTitle("# tracks");
592  m_Tracks->GetYaxis()->SetTitle("counts");
593 
594  DirAlignSensResids->cd();
595  for (int i = 0; i < nVXDSensors; i++) {
596  VxdID id = gTools->getSensorIDFromIndex(i);
597  int iLayer = id.getLayerNumber();
598  int iLadder = id.getLadderNumber();
599  int iSensor = id.getSensorNumber();
601  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
602  name = str(format("Alig_UBResiduals_%1%") % sensorDescr);
603  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
604  title = str(format("PXD Unbiased residuals for sensor %1%") % sensorDescr);
605  m_UBResidualsSensor[i] = new TH2F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange, 200, -ResidualRange,
606  ResidualRange);
607  m_UBResidualsSensor[i]->GetXaxis()->SetTitle("residual U [#mum]");
608  m_UBResidualsSensor[i]->GetYaxis()->SetTitle("residual V [#mum]");
609  m_UBResidualsSensor[i]->GetZaxis()->SetTitle("counts");
610  }
611  DirAlignSensResids1D->cd();
612  for (int i = 0; i < nVXDSensors; i++) {
613  VxdID id = gTools->getSensorIDFromIndex(i);
614  int iLayer = id.getLayerNumber();
615  int iLadder = id.getLadderNumber();
616  int iSensor = id.getSensorNumber();
618  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
619  name = str(format("Alig_UBResidualsU_%1%") % sensorDescr);
620  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
621  title = str(format("PXD Unbiased U residuals for sensor %1%") % sensorDescr);
622  m_UBResidualsSensorU[i] = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
623  m_UBResidualsSensorU[i]->GetXaxis()->SetTitle("residual [#mum]");
624  m_UBResidualsSensorU[i]->GetYaxis()->SetTitle("counts");
625  sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
626  name = str(format("Alig_UBResidualsV_%1%") % sensorDescr);
627  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
628  title = str(format("PXD Unbiased V residuals for sensor %1%") % sensorDescr);
629  m_UBResidualsSensorV[i] = new TH1F(name.c_str(), title.c_str(), 200, -ResidualRange, ResidualRange);
630  m_UBResidualsSensorV[i]->GetXaxis()->SetTitle("residual [#mum]");
631  m_UBResidualsSensorV[i]->GetYaxis()->SetTitle("counts");
632  }
633 
634  m_ResMeanPosUVSensCounts = (TH2F**) new TH2F*[nVXDSensors];
635  m_ResMeanUPosUVSens = (TH2F**) new TH2F*[nVXDSensors];
636  m_ResMeanVPosUVSens = (TH2F**) new TH2F*[nVXDSensors];
637  m_ResUPosUSens = (TH2F**) new TH2F*[nVXDSensors];
638  m_ResUPosVSens = (TH2F**) new TH2F*[nVXDSensors];
639  m_ResVPosUSens = (TH2F**) new TH2F*[nVXDSensors];
640  m_ResVPosVSens = (TH2F**) new TH2F*[nVXDSensors];
641  m_ResMeanUPosUSens = (TH1F**) new TH1F*[nVXDSensors];
642  m_ResMeanUPosVSens = (TH1F**) new TH1F*[nVXDSensors];
643  m_ResMeanVPosUSens = (TH1F**) new TH1F*[nVXDSensors];
644  m_ResMeanVPosVSens = (TH1F**) new TH1F*[nVXDSensors];
645 
646  int iSizeBins = 20;
647  float fSizeMin = -50; // in mm
648  float fSizeMax = -fSizeMin;
649  DirAlignSensResMeanUPosUV->cd();
650  for (int i = 0; i < nVXDSensors; i++) {
651  VxdID id = gTools->getSensorIDFromIndex(i);
652  int iLayer = id.getLayerNumber();
653  int iLadder = id.getLadderNumber();
654  int iSensor = id.getSensorNumber();
655  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
656  name = str(format("ResMeanUPosUVSens_%1%") % sensorDescr);
657  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
658  title = str(format("Residual Mean U in Position UV, %1%") % sensorDescr);
659  m_ResMeanUPosUVSens[i] = new TH2F(name.c_str(), title.c_str(), iSizeBins, fSizeMin, fSizeMax, iSizeBins, fSizeMin, fSizeMax);
660  m_ResMeanUPosUVSens[i]->GetXaxis()->SetTitle("position U [mm]");
661  m_ResMeanUPosUVSens[i]->GetYaxis()->SetTitle("position V [mm]");
662  m_ResMeanUPosUVSens[i]->GetZaxis()->SetTitle("residual U [#mum]");
663  }
664  for (int i = 0; i < nVXDSensors; i++) {
665  VxdID id = gTools->getSensorIDFromIndex(i);
666  int iLayer = id.getLayerNumber();
667  int iLadder = id.getLadderNumber();
668  int iSensor = id.getSensorNumber();
669  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
670  name = str(format("ResMeanPosUVCountsSens_%1%") % sensorDescr);
671  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
672  title = str(format("Residual Mean Counts in Position UV, %1%") % sensorDescr);
673  m_ResMeanPosUVSensCounts[i] = new TH2F(name.c_str(), title.c_str(), iSizeBins, fSizeMin, fSizeMax, iSizeBins, fSizeMin, fSizeMax);
674  m_ResMeanPosUVSensCounts[i]->GetXaxis()->SetTitle("position U [mm]");
675  m_ResMeanPosUVSensCounts[i]->GetYaxis()->SetTitle("position V [mm]");
676  m_ResMeanPosUVSensCounts[i]->GetZaxis()->SetTitle("counts");
677  }
678 
679  DirAlignSensResMeanVPosUV->cd();
680  for (int i = 0; i < nVXDSensors; i++) {
681  VxdID id = gTools->getSensorIDFromIndex(i);
682  int iLayer = id.getLayerNumber();
683  int iLadder = id.getLadderNumber();
684  int iSensor = id.getSensorNumber();
685  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
686  name = str(format("ResMeanVPosUVSens_%1%") % sensorDescr);
687  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
688  title = str(format("Residual Mean V in Position UV, %1%") % sensorDescr);
689  m_ResMeanVPosUVSens[i] = new TH2F(name.c_str(), title.c_str(), iSizeBins, fSizeMin, fSizeMax, iSizeBins, fSizeMin, fSizeMax);
690  m_ResMeanVPosUVSens[i]->GetXaxis()->SetTitle("position U [mm]");
691  m_ResMeanVPosUVSens[i]->GetYaxis()->SetTitle("position V [mm]");
692  m_ResMeanVPosUVSens[i]->GetZaxis()->SetTitle("residual V [#mum]");
693  }
694 
695  DirAlignSensResMeanUPosU->cd();
696  for (int i = 0; i < nVXDSensors; i++) {
697  VxdID id = gTools->getSensorIDFromIndex(i);
698  int iLayer = id.getLayerNumber();
699  int iLadder = id.getLadderNumber();
700  int iSensor = id.getSensorNumber();
701  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
702  name = str(format("ResMeanUPosUSens_%1%") % sensorDescr);
703  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
704  title = str(format("Residual Mean U in Position U, %1%") % sensorDescr);
705  m_ResMeanUPosUSens[i] = new TH1F(name.c_str(), title.c_str(), iSizeBins, fSizeMin, fSizeMax);
706  m_ResMeanUPosUSens[i]->GetXaxis()->SetTitle("position U [mm]");
707  m_ResMeanUPosUSens[i]->GetYaxis()->SetTitle("residual mean U [#mum]");
708  }
709 
710  DirAlignSensResMeanVPosU->cd();
711  for (int i = 0; i < nVXDSensors; i++) {
712  VxdID id = gTools->getSensorIDFromIndex(i);
713  int iLayer = id.getLayerNumber();
714  int iLadder = id.getLadderNumber();
715  int iSensor = id.getSensorNumber();
716  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
717  name = str(format("ResMeanVPosUSens_%1%") % sensorDescr);
718  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
719  title = str(format("Residual Mean V in Position U, %1%") % sensorDescr);
720  m_ResMeanVPosUSens[i] = new TH1F(name.c_str(), title.c_str(), iSizeBins, fSizeMin, fSizeMax);
721  m_ResMeanVPosUSens[i]->GetXaxis()->SetTitle("position U [mm]");
722  m_ResMeanVPosUSens[i]->GetYaxis()->SetTitle("residual mean V [#mum]");
723  }
724 
725  DirAlignSensResMeanUPosV->cd();
726  for (int i = 0; i < nVXDSensors; i++) {
727  VxdID id = gTools->getSensorIDFromIndex(i);
728  int iLayer = id.getLayerNumber();
729  int iLadder = id.getLadderNumber();
730  int iSensor = id.getSensorNumber();
731  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
732  name = str(format("ResMeanUPosVSens_%1%") % sensorDescr);
733  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
734  title = str(format("Residual Mean U in Position V, %1%") % sensorDescr);
735  m_ResMeanUPosVSens[i] = new TH1F(name.c_str(), title.c_str(), iSizeBins, fSizeMin, fSizeMax);
736  m_ResMeanUPosVSens[i]->GetXaxis()->SetTitle("position V [mm]");
737  m_ResMeanUPosVSens[i]->GetYaxis()->SetTitle("residual mean U [#mum]");
738  }
739 
740  DirAlignSensResMeanVPosV->cd();
741  for (int i = 0; i < nVXDSensors; i++) {
742  VxdID id = gTools->getSensorIDFromIndex(i);
743  int iLayer = id.getLayerNumber();
744  int iLadder = id.getLadderNumber();
745  int iSensor = id.getSensorNumber();
746  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
747  name = str(format("ResMeanVPosVSens_%1%") % sensorDescr);
748  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
749  title = str(format("Residual Mean V in Position V, %1%") % sensorDescr);
750  m_ResMeanVPosVSens[i] = new TH1F(name.c_str(), title.c_str(), iSizeBins, fSizeMin, fSizeMax);
751  m_ResMeanVPosVSens[i]->GetXaxis()->SetTitle("position V [mm]");
752  m_ResMeanVPosVSens[i]->GetYaxis()->SetTitle("residual mean V [#mum]");
753  }
754 
755  DirAlignSensResUPosU->cd();
756  for (int i = 0; i < nVXDSensors; i++) {
757  VxdID id = gTools->getSensorIDFromIndex(i);
758  int iLayer = id.getLayerNumber();
759  int iLadder = id.getLadderNumber();
760  int iSensor = id.getSensorNumber();
761  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
762  name = str(format("ResUPosUSensor_%1%") % sensorDescr);
763  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
764  title = str(format("Residual U in Position U, %1%") % sensorDescr);
765  m_ResUPosUSens[i] = new TH2F(name.c_str(), title.c_str(), iSizeBins, fSizeMin, fSizeMax, 200, -ResidualRange, ResidualRange);
766  m_ResUPosUSens[i]->GetXaxis()->SetTitle("position U [mm]");
767  m_ResUPosUSens[i]->GetYaxis()->SetTitle("residual U [#mum]");
768  m_ResUPosUSens[i]->GetZaxis()->SetTitle("counts");
769  }
770 
771  DirAlignSensResVPosU->cd();
772  for (int i = 0; i < nVXDSensors; i++) {
773  VxdID id = gTools->getSensorIDFromIndex(i);
774  int iLayer = id.getLayerNumber();
775  int iLadder = id.getLadderNumber();
776  int iSensor = id.getSensorNumber();
777  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
778  name = str(format("ResVPosUSensor_%1%") % sensorDescr);
779  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
780  title = str(format("Residual V in Position U, %1%") % sensorDescr);
781  m_ResVPosUSens[i] = new TH2F(name.c_str(), title.c_str(), iSizeBins, fSizeMin, fSizeMax, 200, -ResidualRange, ResidualRange);
782  m_ResVPosUSens[i]->GetXaxis()->SetTitle("position U [mm]");
783  m_ResVPosUSens[i]->GetYaxis()->SetTitle("residual V [#mum]");
784  m_ResVPosUSens[i]->GetZaxis()->SetTitle("counts");
785  }
786 
787  DirAlignSensResUPosV->cd();
788  for (int i = 0; i < nVXDSensors; i++) {
789  VxdID id = gTools->getSensorIDFromIndex(i);
790  int iLayer = id.getLayerNumber();
791  int iLadder = id.getLadderNumber();
792  int iSensor = id.getSensorNumber();
793  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
794  name = str(format("ResUPosVSensor_%1%") % sensorDescr);
795  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
796  title = str(format("Residual U in Position V, %1%") % sensorDescr);
797  m_ResUPosVSens[i] = new TH2F(name.c_str(), title.c_str(), iSizeBins, fSizeMin, fSizeMax, 200, -ResidualRange, ResidualRange);
798  m_ResUPosVSens[i]->GetXaxis()->SetTitle("position V [mm]");
799  m_ResUPosVSens[i]->GetYaxis()->SetTitle("residual U [#mum]");
800  m_ResUPosVSens[i]->GetZaxis()->SetTitle("counts");
801  }
802 
803  DirAlignSensResVPosV->cd();
804  for (int i = 0; i < nVXDSensors; i++) {
805  VxdID id = gTools->getSensorIDFromIndex(i);
806  int iLayer = id.getLayerNumber();
807  int iLadder = id.getLadderNumber();
808  int iSensor = id.getSensorNumber();
809  string sensorDescr = str(format("%1%_%2%_%3%") % iLayer % iLadder % iSensor);
810  name = str(format("ResVPosVSensor_%1%") % sensorDescr);
811  sensorDescr = str(format("Layer %1% Ladder %2% Sensor %3%") % iLayer % iLadder % iSensor);
812  title = str(format("Residual V in Position V, %1%") % sensorDescr);
813  m_ResVPosVSens[i] = new TH2F(name.c_str(), title.c_str(), iSizeBins, fSizeMin, fSizeMax, 200, -ResidualRange, ResidualRange);
814  m_ResVPosVSens[i]->GetXaxis()->SetTitle("position V [mm]");
815  m_ResVPosVSens[i]->GetYaxis()->SetTitle("residual V [#mum]");
816  m_ResVPosVSens[i]->GetZaxis()->SetTitle("counts");
817  }
818 
819  m_ResMeanPhiThetaLayerCounts = (TH2F**) new TH2F*[nVXDLayers];
820  m_ResMeanUPhiThetaLayer = (TH2F**) new TH2F*[nVXDLayers];
821  m_ResMeanVPhiThetaLayer = (TH2F**) new TH2F*[nVXDLayers];
822  m_ResUPhiLayer = (TH2F**) new TH2F*[nVXDLayers];
823  m_ResVPhiLayer = (TH2F**) new TH2F*[nVXDLayers];
824  m_ResUThetaLayer = (TH2F**) new TH2F*[nVXDLayers];
825  m_ResVThetaLayer = (TH2F**) new TH2F*[nVXDLayers];
826  m_ResMeanUPhiLayer = (TH1F**) new TH1F*[nVXDLayers];
827  m_ResMeanVPhiLayer = (TH1F**) new TH1F*[nVXDLayers];
828  m_ResMeanUThetaLayer = (TH1F**) new TH1F*[nVXDLayers];
829  m_ResMeanVThetaLayer = (TH1F**) new TH1F*[nVXDLayers];
830 
831  int iPhiGran = 90;
832  int iThetGran = iPhiGran / 2;
833  int iYResGran = 200;
834 
835  DirAlignLayerResMeanUPosUV->cd();
836  for (VxdID layer : geo.getLayers()) {
837  int iLayer = layer.getLayerNumber();
838  int iLay = gTools->getLayerIndex(layer.getLayerNumber());
839  name = str(format("ResMeanUPhiThetaLayer_%1%") % iLayer);
840  title = str(format("Residuals Mean U in Phi Theta, Layer %1%") % iLayer);
841  m_ResMeanUPhiThetaLayer[iLay] = new TH2F(name.c_str(), title.c_str(), iPhiGran, -180, 180, iThetGran, 0, 180);
842  m_ResMeanUPhiThetaLayer[iLay]->GetXaxis()->SetTitle("Phi [deg]");
843  m_ResMeanUPhiThetaLayer[iLay]->GetYaxis()->SetTitle("Theta [deg]");
844  m_ResMeanUPhiThetaLayer[iLay]->GetZaxis()->SetTitle("residual [#mum]");
845  }
846  for (VxdID layer : geo.getLayers()) {
847  int iLayer = layer.getLayerNumber();
848  int iLay = gTools->getLayerIndex(layer.getLayerNumber());
849  name = str(format("ResCounterPhiThetaLayer_%1%") % iLayer);
850  title = str(format("Residuals counter in Phi Theta, Layer %1%") % iLayer);
851  m_ResMeanPhiThetaLayerCounts[iLay] = new TH2F(name.c_str(), title.c_str(), iPhiGran, -180, 180, iThetGran, 0, 180);
852  m_ResMeanPhiThetaLayerCounts[iLay]->GetXaxis()->SetTitle("Phi [deg]");
853  m_ResMeanPhiThetaLayerCounts[iLay]->GetYaxis()->SetTitle("Theta [deg]");
854  m_ResMeanPhiThetaLayerCounts[iLay]->GetZaxis()->SetTitle("counts");
855  }
856 
857  DirAlignLayerResMeanVPosUV->cd();
858  for (VxdID layer : geo.getLayers()) {
859  int iLayer = layer.getLayerNumber();
860  int iLay = gTools->getLayerIndex(layer.getLayerNumber());
861  name = str(format("ResMeanVPhiThetaLayer_%1%") % iLayer);
862  title = str(format("Residuals Mean V in Phi Theta, Layer %1%") % iLayer);
863  m_ResMeanVPhiThetaLayer[iLay] = new TH2F(name.c_str(), title.c_str(), iPhiGran, -180, 180, iThetGran, 0, 180);
864  m_ResMeanVPhiThetaLayer[iLay]->GetXaxis()->SetTitle("Phi [deg]");
865  m_ResMeanVPhiThetaLayer[iLay]->GetYaxis()->SetTitle("Theta [deg]");
866  m_ResMeanVPhiThetaLayer[iLay]->GetZaxis()->SetTitle("residual [#mum]");
867  }
868 
869  DirAlignLayerResMeanUPosU->cd();
870  for (VxdID layer : geo.getLayers()) {
871  int iLayer = layer.getLayerNumber();
872  int iLay = gTools->getLayerIndex(layer.getLayerNumber());
873  name = str(format("ResMeanUPhiLayer_%1%") % iLayer);
874  title = str(format("Residuals Mean U in Phi, Layer %1%") % iLayer);
875  m_ResMeanUPhiLayer[iLay] = new TH1F(name.c_str(), title.c_str(), iPhiGran, -180, 180);
876  m_ResMeanUPhiLayer[iLay]->GetXaxis()->SetTitle("Phi [deg]");
877  m_ResMeanUPhiLayer[iLay]->GetYaxis()->SetTitle("residual [#mum]");
878  }
879 
880  DirAlignLayerResMeanVPosU->cd();
881  for (VxdID layer : geo.getLayers()) {
882  int iLayer = layer.getLayerNumber();
883  int iLay = gTools->getLayerIndex(layer.getLayerNumber());
884  name = str(format("ResMeanVPhiLayer_%1%") % iLayer);
885  title = str(format("Residuals Mean V in Phi, Layer %1%") % iLayer);
886  m_ResMeanVPhiLayer[iLay] = new TH1F(name.c_str(), title.c_str(), iPhiGran, -180, 180);
887  m_ResMeanVPhiLayer[iLay]->GetXaxis()->SetTitle("Phi [deg]");
888  m_ResMeanVPhiLayer[iLay]->GetYaxis()->SetTitle("residual [#mum]");
889  }
890 
891  DirAlignLayerResMeanUPosV->cd();
892  for (VxdID layer : geo.getLayers()) {
893  int iLayer = layer.getLayerNumber();
894  int iLay = gTools->getLayerIndex(layer.getLayerNumber());
895  name = str(format("ResMeanUThetaLayer_%1%") % iLayer);
896  title = str(format("Residuals Mean U in Theta, Layer %1%") % iLayer);
897  m_ResMeanUThetaLayer[iLay] = new TH1F(name.c_str(), title.c_str(), iThetGran, 0, 180);
898  m_ResMeanUThetaLayer[iLay]->GetXaxis()->SetTitle("Theta [deg]");
899  m_ResMeanUThetaLayer[iLay]->GetYaxis()->SetTitle("residual [#mum]");
900  }
901 
902  DirAlignLayerResMeanVPosV->cd();
903  for (VxdID layer : geo.getLayers()) {
904  int iLayer = layer.getLayerNumber();
905  int iLay = gTools->getLayerIndex(layer.getLayerNumber());
906  name = str(format("ResMeanVThetaLayer_%1%") % iLayer);
907  title = str(format("Residuals Mean V in Theta, Layer %1%") % iLayer);
908  m_ResMeanVThetaLayer[iLay] = new TH1F(name.c_str(), title.c_str(), iThetGran, 0, 180);
909  m_ResMeanVThetaLayer[iLay]->GetXaxis()->SetTitle("Theta [deg]");
910  m_ResMeanVThetaLayer[iLay]->GetYaxis()->SetTitle("residual [#mum]");
911  }
912 
913  DirAlignLayerResUPosU->cd();
914  for (VxdID layer : geo.getLayers()) {
915  int iLayer = layer.getLayerNumber();
916  int iLay = gTools->getLayerIndex(layer.getLayerNumber());
917  name = str(format("ResUPhiLayer_%1%") % iLayer);
918  title = str(format("Residuals U in Phi, Layer %1%") % iLayer);
919  m_ResUPhiLayer[iLay] = new TH2F(name.c_str(), title.c_str(), iPhiGran, -180, 180, iYResGran, -ResidualRange, ResidualRange);
920  m_ResUPhiLayer[iLay]->GetXaxis()->SetTitle("Phi [deg]");
921  m_ResUPhiLayer[iLay]->GetYaxis()->SetTitle("residual [#mum]");
922  m_ResUPhiLayer[iLay]->GetZaxis()->SetTitle("counts");
923  }
924 
925  DirAlignLayerResVPosU->cd();
926  for (VxdID layer : geo.getLayers()) {
927  int iLayer = layer.getLayerNumber();
928  int iLay = gTools->getLayerIndex(layer.getLayerNumber());
929  name = str(format("ResVPhiLayer_%1%") % iLayer);
930  title = str(format("Residuals V in Phi, Layer %1%") % iLayer);
931  m_ResVPhiLayer[iLay] = new TH2F(name.c_str(), title.c_str(), iPhiGran, -180, 180, iYResGran, -ResidualRange, ResidualRange);
932  m_ResVPhiLayer[iLay]->GetXaxis()->SetTitle("Phi [deg]");
933  m_ResVPhiLayer[iLay]->GetYaxis()->SetTitle("residual [#mum]");
934  m_ResVPhiLayer[iLay]->GetZaxis()->SetTitle("counts");
935  }
936 
937  DirAlignLayerResUPosV->cd();
938  for (VxdID layer : geo.getLayers()) {
939  int iLayer = layer.getLayerNumber();
940  int iLay = gTools->getLayerIndex(layer.getLayerNumber());
941  name = str(format("ResUThetaLayer_%1%") % iLayer);
942  title = str(format("Residuals U in Theta, Layer %1%") % iLayer);
943  m_ResUThetaLayer[iLay] = new TH2F(name.c_str(), title.c_str(), iThetGran, 0, 180, iYResGran, -ResidualRange, ResidualRange);
944  m_ResUThetaLayer[iLay]->GetXaxis()->SetTitle("Theta [deg]");
945  m_ResUThetaLayer[iLay]->GetYaxis()->SetTitle("residual [#mum]");
946  m_ResUThetaLayer[iLay]->GetZaxis()->SetTitle("counts");
947  }
948 
949  DirAlignLayerResVPosV->cd();
950  for (VxdID layer : geo.getLayers()) {
951  int iLayer = layer.getLayerNumber();
952  int iLay = gTools->getLayerIndex(layer.getLayerNumber());
953  name = str(format("ResVThetaLayer_%1%") % iLayer);
954  title = str(format("Residuals V in Theta, Layer %1%") % iLayer);
955  m_ResVThetaLayer[iLay] = new TH2F(name.c_str(), title.c_str(), iThetGran, 0, 180, iYResGran, -ResidualRange, ResidualRange);
956  m_ResVThetaLayer[iLay]->GetXaxis()->SetTitle("Theta [deg]");
957  m_ResVThetaLayer[iLay]->GetYaxis()->SetTitle("residual [#mum]");
958  m_ResVThetaLayer[iLay]->GetZaxis()->SetTitle("counts");
959  }
960 
961  oldDir->cd();
962 
963 }

◆ evalCondition()

bool evalCondition ( ) const
inherited

If at least one condition was set, it is evaluated and true returned if at least one condition returns true.

If no condition or result value was defined, the method returns false. Otherwise, the condition is evaluated and true returned, if at least one condition returns true. To speed up the evaluation, the condition strings were already parsed in the method if_value().

Returns
True if at least one condition and return value exists and at least one condition expression was evaluated to true.

Definition at line 98 of file Module.cc.

◆ event()

void event ( )
finaloverridevirtual

Module function event.

const auto& resmap = track.getTrackFitResults(); auto hypot = max_element( resmap.begin(), resmap.end(), [](const pair<Const::ChargedStable, const TrackFitResult*>& x1, const pair<Const::ChargedStable, const TrackFitResult*>& x2)->bool {return x1.second->getPValue() < x2.second->getPValue();} ); const TrackFitResult* tfr = hypot->second;

Reimplemented from HistoModule.

Definition at line 1055 of file AlignDQMModule.cc.

◆ getAfterConditionPath()

Module::EAfterConditionPath getAfterConditionPath ( ) const
inherited

What to do after the conditional path is finished.

(defaults to c_End if no condition is set)

Definition at line 135 of file Module.cc.

◆ getConditionPath()

std::shared_ptr< Path > getConditionPath ( ) const
inherited

Returns the path of the last true condition (if there is at least one, else reaturn a null pointer).


Definition at line 115 of file Module.cc.

◆ getFileNames()

virtual std::vector<std::string> getFileNames ( __attribute__((unused)) bool  outputFiles)
inlinevirtualinherited

Return a list of output filenames for this modules.

This will be called when basf2 is run with "--dry-run" if the module has set either the c_Input or c_Output properties.

If the parameter outputFiles is false (for modules with c_Input) the list of input filenames should be returned (if any). If outputFiles is true (for modules with c_Output) the list of output files should be returned (if any).

If a module has sat both properties this member is called twice, once for each property.

The module should return the actual list of requested input or produced output filenames (including handling of input/output overrides) so that the grid system can handle input/output files correctly.

This function should return the same value when called multiple times. This is especially important when taking the input/output overrides from Environment as they get consumed when obtained so the finalized list of output files should be stored for subsequent calls.

Definition at line 136 of file Module.h.

◆ getName()

const std::string& getName ( ) const
inlineinherited

Returns the name of the module.

This can be changed via e.g. set_name() in the steering file to give more useful names if there is more than one module of the same type.

For identifying the type of a module, using getType() (or type() in Python) is recommended.

Definition at line 189 of file Module.h.

◆ getParamInfoListPython()

std::shared_ptr< boost::python::list > getParamInfoListPython ( ) const
inherited

Returns a python list of all parameters.

Each item in the list consists of the name of the parameter, a string describing its type, a python list of all default values and the description of the parameter.

Returns
A python list containing the parameters of this parameter list.

Definition at line 281 of file Module.cc.

◆ getReturnValue()

int getReturnValue ( ) const
inlineinherited

Return the return value set by this module.

This value is only meaningful if hasReturnValue() is true

Definition at line 383 of file Module.h.

◆ getType()

const std::string & getType ( ) const
inherited

Returns the type of the module (i.e.

class name minus 'Module')

Definition at line 43 of file Module.cc.

◆ hasProperties()

bool hasProperties ( unsigned int  propertyFlags) const
inherited

Returns true if all specified property flags are available in this module.

Parameters
propertyFlagsOred EModulePropFlags which should be compared with the module flags.

Definition at line 162 of file Module.cc.

◆ if_false()

void if_false ( const std::shared_ptr< Path > &  path,
EAfterConditionPath  afterConditionPath = EAfterConditionPath::c_End 
)
inherited

A simplified version to add a condition to the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

It is equivalent to the if_value() method, using the expression "<1". This method is meant to be used together with the setReturnValue(bool value) method.

Parameters
pathShared pointer to the Path which will be executed if the return value is false.
afterConditionPathWhat to do after executing 'path'.

Definition at line 87 of file Module.cc.

◆ if_true()

void if_true ( const std::shared_ptr< Path > &  path,
EAfterConditionPath  afterConditionPath = EAfterConditionPath::c_End 
)
inherited

A simplified version to set the condition of the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

It is equivalent to the if_value() method, using the expression ">=1". This method is meant to be used together with the setReturnValue(bool value) method.

Parameters
pathShared pointer to the Path which will be executed if the return value is true.
afterConditionPathWhat to do after executing 'path'.

Definition at line 92 of file Module.cc.

◆ if_value()

void if_value ( const std::string &  expression,
const std::shared_ptr< Path > &  path,
EAfterConditionPath  afterConditionPath = EAfterConditionPath::c_End 
)
inherited

Add a condition to the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

See https://confluence.desy.de/display/BI/Software+ModCondTut or ModuleCondition for a description of the syntax.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

Parameters
expressionThe expression of the condition.
pathShared pointer to the Path which will be executed if the condition is evaluated to true.
afterConditionPathWhat to do after executing 'path'.

Definition at line 81 of file Module.cc.

◆ IsNotMat()

bool IsNotMat ( int  ladderNumber,
int  layerNumber 
)
private

Returns true if sensor with given ladderNumber and layerNumber isn't in the Mat half-shell, therefore it should be in the Pat half-shell if it's from SVD detector.

Returns false if the sensor is in the Mat.

Possible combinations of parameters for Mat:

| layerNumber | ladderNumber | | 3 | 3, 4, 5 | | 4 | 4, 5, 6, 7, 8 | | 5 | 5, 6, 7, 8, 9, 10 | | 6 | 6, 7, 8, 9, 10, 11, 12, 13 |

Definition at line 1372 of file AlignDQMModule.cc.

◆ IsNotYang()

bool IsNotYang ( int  ladderNumber,
int  layerNumber 
)
private

Returns true if sensor with given ladderNumber and layerNumber isn't in the Yang half-shell, therefore it should be in the Ying half-shell if it's from PXD detector.

Returns false if the sensor is in the Yang.

Possible combinations of parameters for Yang:

| layerNumber | ladderNumber | | 1 | 5, 6, 7, 8 | | 2 | 7, 8, 9, 10, 11, 12 |

Definition at line 1360 of file AlignDQMModule.cc.

◆ setDescription()

void setDescription ( const std::string &  description)
protectedinherited

Sets the description of the module.

Parameters
descriptionA description of the module.

Definition at line 216 of file Module.cc.

◆ setLogInfo()

void setLogInfo ( int  logLevel,
unsigned int  logInfo 
)
inherited

Configure the printed log information for the given level.

Parameters
logLevelThe log level (one of LogConfig::ELogLevel)
logInfoWhat kind of info should be printed? ORed combination of LogConfig::ELogInfo flags.

Definition at line 75 of file Module.cc.

◆ setName()

void setName ( const std::string &  name)
inlineinherited

Set the name of the module.

Note
The module name is set when using the REG_MODULE macro, but the module can be renamed before calling process() using the set_name() function in your steering file.
Parameters
nameThe name of the module

Definition at line 216 of file Module.h.

◆ setParamPython()

void setParamPython ( const std::string &  name,
const boost::python::object &  pyObj 
)
privateinherited

Implements a method for setting boost::python objects.

The method supports the following types: list, dict, int, double, string, bool The conversion of the python object to the C++ type and the final storage of the parameter value is done in the ModuleParam class.

Parameters
nameThe unique name of the parameter.
pyObjThe object which should be converted and stored as the parameter value.

Definition at line 236 of file Module.cc.

◆ setParamPythonDict()

void setParamPythonDict ( const boost::python::dict &  dictionary)
privateinherited

Implements a method for reading the parameter values from a boost::python dictionary.

The key of the dictionary has to be the name of the parameter and the value has to be of one of the supported parameter types.

Parameters
dictionaryThe python dictionary from which the parameter values are read.

Definition at line 251 of file Module.cc.

◆ setPropertyFlags()

void setPropertyFlags ( unsigned int  propertyFlags)
inherited

Sets the flags for the module properties.

Parameters
propertyFlagsbitwise OR of EModulePropFlags

Definition at line 210 of file Module.cc.

◆ setReturnValue() [1/2]

void setReturnValue ( bool  value)
protectedinherited

Sets the return value for this module as bool.

The bool value is saved as an integer with the convention 1 meaning true and 0 meaning false. The value can be used in the steering file to divide the analysis chain into several paths.

Parameters
valueThe value of the return value.

Definition at line 229 of file Module.cc.

◆ setReturnValue() [2/2]

void setReturnValue ( int  value)
protectedinherited

Sets the return value for this module as integer.

The value can be used in the steering file to divide the analysis chain into several paths.

Parameters
valueThe value of the return value.

Definition at line 222 of file Module.cc.

◆ setType()

void setType ( const std::string &  type)
protectedinherited

Set the module type.

Only for use by internal modules (which don't use the normal REG_MODULE mechanism).

Definition at line 50 of file Module.cc.

Member Data Documentation

◆ m_D0MomPt

TH2F* m_D0MomPt = nullptr
private

d0 - signed distance to the IP in r-phi vs.

Track momentum Pt

Definition at line 270 of file AlignDQMModule.h.

◆ m_D0Omega

TH2F* m_D0Omega = nullptr
private

d0 - signed distance to the IP in r-phi vs.

Omega - the curvature of the track

Definition at line 272 of file AlignDQMModule.h.

◆ m_D0TanLambda

TH2F* m_D0TanLambda = nullptr
private

d0 - signed distance to the IP in r-phi vs.

TanLambda - the slope of the track in the r-z plane

Definition at line 274 of file AlignDQMModule.h.

◆ m_D0Z0

TH2F* m_D0Z0 = nullptr
private

d0 - signed distance to the IP in r-phi vs.

z0 of the perigee (to see primary vertex shifts along R or z)

Definition at line 268 of file AlignDQMModule.h.

◆ m_MomPtOmega

TH2F* m_MomPtOmega = nullptr
private

Track momentum Pt vs.

Omega - the curvature of the track

Definition at line 282 of file AlignDQMModule.h.

◆ m_MomPtTanLambda

TH2F* m_MomPtTanLambda = nullptr
private

Track momentum Pt vs.

TanLambda - the slope of the track in the r-z plane

Definition at line 284 of file AlignDQMModule.h.

◆ m_Omega

TH1F* m_Omega = nullptr
private

Omega - the curvature of the track.

It's sign is defined by the charge of the particle

Definition at line 253 of file AlignDQMModule.h.

◆ m_OmegaTanLambda

TH2F* m_OmegaTanLambda = nullptr
private

Omega - the curvature of the track vs.

TanLambda - the slope of the track in the r-z plane

Definition at line 286 of file AlignDQMModule.h.

◆ m_Phi

TH1F* m_Phi = nullptr
private

helix parameters and their corellations:

Phi - the angle of the transverse momentum in the r-phi plane, with CDF naming convention

Definition at line 247 of file AlignDQMModule.h.

◆ m_PhiD0

TH2F* m_PhiD0 = nullptr
private

Phi - the angle of the transverse momentum in the r-phi plane vs.

d0 - signed distance to the IP in r-phi

Definition at line 258 of file AlignDQMModule.h.

◆ m_PhiMomPt

TH2F* m_PhiMomPt = nullptr
private

Phi - the angle of the transverse momentum in the r-phi plane vs.

Track momentum Pt

Definition at line 262 of file AlignDQMModule.h.

◆ m_PhiOmega

TH2F* m_PhiOmega = nullptr
private

Phi - the angle of the transverse momentum in the r-phi plane vs.

Omega - the curvature of the track

Definition at line 264 of file AlignDQMModule.h.

◆ m_PhiTanLambda

TH2F* m_PhiTanLambda = nullptr
private

Phi - the angle of the transverse momentum in the r-phi plane vs.

TanLambda - the slope of the track in the r-z plane

Definition at line 266 of file AlignDQMModule.h.

◆ m_PhiZ0

TH2F* m_PhiZ0 = nullptr
private

Phi - the angle of the transverse momentum in the r-phi plane vs.

z0 of the perigee (to see primary vertex shifts along R or z)

Definition at line 260 of file AlignDQMModule.h.

◆ m_Z0MomPt

TH2F* m_Z0MomPt = nullptr
private

z0 - the z0 coordinate of the perigee vs.

Track momentum Pt

Definition at line 276 of file AlignDQMModule.h.

◆ m_Z0Omega

TH2F* m_Z0Omega = nullptr
private

z0 - the z0 coordinate of the perigee vs.

Omega - the curvature of the track

Definition at line 278 of file AlignDQMModule.h.

◆ m_Z0TanLambda

TH2F* m_Z0TanLambda = nullptr
private

z0 - the z0 coordinate of the perigee vs.

TanLambda - the slope of the track in the r-z plane

Definition at line 280 of file AlignDQMModule.h.


The documentation for this class was generated from the following files:
Belle2::AlignDQMModule::m_ResVPhiLayer
TH2F ** m_ResVPhiLayer
ResidaulV vs Phi for Layer.
Definition: AlignDQMModule.h:110
Belle2::AlignDQMModule::m_PValue
TH1F * m_PValue
p Value
Definition: AlignDQMModule.h:123
Belle2::AlignDQMModule::m_MomPtTanLambda
TH2F * m_MomPtTanLambda
Track momentum Pt vs.
Definition: AlignDQMModule.h:284
Belle2::AlignDQMModule::m_Z0
TH1F * m_Z0
z0 - the z0 coordinate of the perigee (beam spot position)
Definition: AlignDQMModule.h:251
Belle2::AlignDQMModule::m_UBResidualsSVDU
TH1F * m_UBResidualsSVDU
Unbiased residuals for SVD u.
Definition: AlignDQMModule.h:139
Belle2::VxdID
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:43
Belle2::AlignDQMModule::m_UBResidualsPXDY_Ying
TH1F * m_UBResidualsPXDY_Ying
Unbiased residuals in Y for PXD for Ying.
Definition: AlignDQMModule.h:158
Belle2::AlignDQMModule::m_PhiD0
TH2F * m_PhiD0
Phi - the angle of the transverse momentum in the r-phi plane vs.
Definition: AlignDQMModule.h:258
Belle2::AlignDQMModule::m_ResVPosVSens
TH2F ** m_ResVPosVSens
ResidaulV vs V for sensor.
Definition: AlignDQMModule.h:88
Belle2::AlignDQMModule::m_UBResidualsPXDZ_Ying
TH1F * m_UBResidualsPXDZ_Ying
Unbiased residuals in Z for PXD for Ying.
Definition: AlignDQMModule.h:167
Belle2::AlignDQMModule::m_OmegaTanLambda
TH2F * m_OmegaTanLambda
Omega - the curvature of the track vs.
Definition: AlignDQMModule.h:286
Belle2::AlignDQMModule::m_ResVPosUSens
TH2F ** m_ResVPosUSens
ResidaulV vs U for sensor.
Definition: AlignDQMModule.h:86
Belle2::AlignDQMModule::m_HitsCDC
TH1F * m_HitsCDC
Number of hits on CDC.
Definition: AlignDQMModule.h:232
Belle2::AlignDQMModule::m_UBResidualsPXDY_Yang
TH1F * m_UBResidualsPXDY_Yang
Unbiased residuals in Y for PXD for Yang.
Definition: AlignDQMModule.h:160
Belle2::AlignDQMModule::m_ResMeanUPosUSens
TH1F ** m_ResMeanUPosUSens
ResidaulMeanU vs U for sensor.
Definition: AlignDQMModule.h:90
Belle2::AlignDQMModule::m_MomY
TH1F * m_MomY
Track momentum Pt.Y.
Definition: AlignDQMModule.h:220
Belle2::AlignDQMModule::m_ResMeanVPhiLayer
TH1F ** m_ResMeanVPhiLayer
ResidaulMeanV vs Phi for Layer.
Definition: AlignDQMModule.h:118
Belle2::AlignDQMModule::m_TRClusterCorrelationsTheta
TH2F ** m_TRClusterCorrelationsTheta
Track related clusters - neighbor corelations in Theta.
Definition: AlignDQMModule.h:208
Belle2::AlignDQMModule::m_Mom
TH1F * m_Mom
Track momentum Magnitude.
Definition: AlignDQMModule.h:226
Belle2::AlignDQMModule::m_Omega
TH1F * m_Omega
Omega - the curvature of the track.
Definition: AlignDQMModule.h:253
Belle2::AlignDQMModule::m_ResMeanVPosUVSens
TH2F ** m_ResMeanVPosUVSens
ResidaulMeanU vs U vs V for sensor.
Definition: AlignDQMModule.h:80
Belle2::AlignDQMModule::m_Chi2
TH1F * m_Chi2
Chi2.
Definition: AlignDQMModule.h:125
Belle2::AlignDQMModule::m_UBResidualsPXDZ_Yang
TH1F * m_UBResidualsPXDZ_Yang
Unbiased residuals in Z for PXD for Yang.
Definition: AlignDQMModule.h:169
Belle2::AlignDQMModule::m_TracksCDC
TH1F * m_TracksCDC
Number of tracks only with CDC.
Definition: AlignDQMModule.h:238
Belle2::AlignDQMModule::m_D0Omega
TH2F * m_D0Omega
d0 - signed distance to the IP in r-phi vs.
Definition: AlignDQMModule.h:272
Belle2::AlignDQMModule::m_ResMeanVPosVSens
TH1F ** m_ResMeanVPosVSens
ResidaulMeanV vs V for sensor.
Definition: AlignDQMModule.h:96
Belle2::VXD::GeoCache::getLayers
const std::set< Belle2::VxdID > getLayers(SensorInfoBase::SensorType sensortype=SensorInfoBase::VXD)
Return a set of all known Layers.
Definition: GeoCache.cc:177
Belle2::AlignDQMModule::m_MomPt
TH1F * m_MomPt
Track momentum Pt.
Definition: AlignDQMModule.h:224
Belle2::AlignDQMModule::m_TRClusterHitmap
TH2F ** m_TRClusterHitmap
Track related clusters - hitmap in IP angle range.
Definition: AlignDQMModule.h:204
Belle2::AlignDQMModule::m_NDF
TH1F * m_NDF
NDF.
Definition: AlignDQMModule.h:127
Belle2::AlignDQMModule::m_UBResidualsSensorU
TH1F ** m_UBResidualsSensorU
Unbiased residuals for PXD and SVD u per sensor.
Definition: AlignDQMModule.h:141
Belle2::AlignDQMModule::m_PhiTanLambda
TH2F * m_PhiTanLambda
Phi - the angle of the transverse momentum in the r-phi plane vs.
Definition: AlignDQMModule.h:266
Belle2::AlignDQMModule::m_ResMeanUPosVSens
TH1F ** m_ResMeanUPosVSens
ResidaulMeanU vs V for sensor.
Definition: AlignDQMModule.h:92
Belle2::AlignDQMModule::m_D0
TH1F * m_D0
d0 - the signed distance to the IP in the r-phi plane
Definition: AlignDQMModule.h:249
Belle2::AlignDQMModule::m_ResUThetaLayer
TH2F ** m_ResUThetaLayer
ResidaulU vs Theta for Layer.
Definition: AlignDQMModule.h:108
Belle2::AlignDQMModule::m_ResUPosUSens
TH2F ** m_ResUPosUSens
ResidaulU vs U for sensor.
Definition: AlignDQMModule.h:82
Belle2::AlignDQMModule::m_D0Z0
TH2F * m_D0Z0
d0 - signed distance to the IP in r-phi vs.
Definition: AlignDQMModule.h:268
Belle2::AlignDQMModule::m_ResMeanVPosUSens
TH1F ** m_ResMeanVPosUSens
ResidaulMeanV vs U for sensor.
Definition: AlignDQMModule.h:94
Belle2::AlignDQMModule::m_HitsSVD
TH1F * m_HitsSVD
Number of hits on VXD.
Definition: AlignDQMModule.h:230
Belle2::AlignDQMModule::m_ResVThetaLayer
TH2F ** m_ResVThetaLayer
ResidaulV vs Theta for Layer.
Definition: AlignDQMModule.h:112
Belle2::AlignDQMModule::m_ResMeanVPhiThetaLayer
TH2F ** m_ResMeanVPhiThetaLayer
ResidaulMeanU vs Phi vs Theta for Layer.
Definition: AlignDQMModule.h:104
Belle2::AlignDQMModule::m_ResMeanPhiThetaLayerCounts
TH2F ** m_ResMeanPhiThetaLayerCounts
ResidaulMean vs Phi vs Theta counter for Layer.
Definition: AlignDQMModule.h:100
Belle2::AlignDQMModule::m_MomCosTheta
TH1F * m_MomCosTheta
Track momentum Pt.CosTheta.
Definition: AlignDQMModule.h:216
Belle2::AlignDQMModule::m_MomZ
TH1F * m_MomZ
Track momentum Pt.Z.
Definition: AlignDQMModule.h:222
Belle2::VXD::GeoCache::getInstance
static GeoCache & getInstance()
Return a reference to the singleton instance.
Definition: GeoCache.cc:215
Belle2::AlignDQMModule::m_Hits
TH1F * m_Hits
Number of all hits in tracks.
Definition: AlignDQMModule.h:234
Belle2::AlignDQMModule::m_ResMeanUPhiThetaLayer
TH2F ** m_ResMeanUPhiThetaLayer
ResidaulMeanU vs Phi vs Theta for Layer.
Definition: AlignDQMModule.h:102
Belle2::AlignDQMModule::m_Z0Omega
TH2F * m_Z0Omega
z0 - the z0 coordinate of the perigee vs.
Definition: AlignDQMModule.h:278
Belle2::AlignDQMModule::m_MomTheta
TH1F * m_MomTheta
Track momentum Pt.Theta.
Definition: AlignDQMModule.h:214
Belle2::VXD::GeoCache::getGeoTools
const GeoTools * getGeoTools()
Return a raw pointer to a GeoTools object.
Definition: GeoCache.h:149
Belle2::AlignDQMModule::m_UBResidualsPXD
TH2F * m_UBResidualsPXD
Unbiased residuals for PXD u vs v.
Definition: AlignDQMModule.h:131
Belle2::AlignDQMModule::m_Chi2NDF
TH1F * m_Chi2NDF
Chi2 / NDF.
Definition: AlignDQMModule.h:129
Belle2::AlignDQMModule::m_ResMeanPosUVSensCounts
TH2F ** m_ResMeanPosUVSensCounts
ResidaulMean vs U vs V counter for sensor.
Definition: AlignDQMModule.h:76
Belle2::AlignDQMModule::m_ResUPhiLayer
TH2F ** m_ResUPhiLayer
ResidaulU vs Phi for Layer.
Definition: AlignDQMModule.h:106
Belle2::AlignDQMModule::m_TracksVXD
TH1F * m_TracksVXD
Number of tracks only with VXD.
Definition: AlignDQMModule.h:236
Belle2::AlignDQMModule::m_UBResidualsSVDY_Mat
TH1F * m_UBResidualsSVDY_Mat
Unbiased residuals in Y for SVD for Mat.
Definition: AlignDQMModule.h:164
Belle2::AlignDQMModule::m_Z0TanLambda
TH2F * m_Z0TanLambda
z0 - the z0 coordinate of the perigee vs.
Definition: AlignDQMModule.h:280
Belle2::AlignDQMModule::m_Z0MomPt
TH2F * m_Z0MomPt
z0 - the z0 coordinate of the perigee vs.
Definition: AlignDQMModule.h:276
Belle2::AlignDQMModule::m_UBResidualsSensor
TH2F ** m_UBResidualsSensor
Unbiased residuals for PXD and SVD u vs v per sensor.
Definition: AlignDQMModule.h:135
Belle2::AlignDQMModule::m_UBResidualsSVDZ_Pat
TH1F * m_UBResidualsSVDZ_Pat
Unbiased residuals in Z for SVD for Pat.
Definition: AlignDQMModule.h:171
Belle2::AlignDQMModule::m_TanLambda
TH1F * m_TanLambda
TanLambda - the slope of the track in the r-z plane.
Definition: AlignDQMModule.h:255
Belle2::AlignDQMModule::m_UBResidualsSVDX_Pat
TH1F * m_UBResidualsSVDX_Pat
Unbiased residuals in X for SVD for Pat.
Definition: AlignDQMModule.h:153
Belle2::AlignDQMModule::m_D0MomPt
TH2F * m_D0MomPt
d0 - signed distance to the IP in r-phi vs.
Definition: AlignDQMModule.h:270
Belle2::VXD::GeoCache
Class to faciliate easy access to sensor information of the VXD like coordinate transformations or pi...
Definition: GeoCache.h:41
Belle2::AlignDQMModule::m_UBResidualsPXDX_Ying
TH1F * m_UBResidualsPXDX_Ying
Unbiased residuals in X for PXD for Ying.
Definition: AlignDQMModule.h:149
Belle2::AlignDQMModule::m_MomX
TH1F * m_MomX
Track momentum Pt.X.
Definition: AlignDQMModule.h:218
Belle2::AlignDQMModule::m_MomPtOmega
TH2F * m_MomPtOmega
Track momentum Pt vs.
Definition: AlignDQMModule.h:282
Belle2::AlignDQMModule::m_UBResidualsSVDX_Mat
TH1F * m_UBResidualsSVDX_Mat
Unbiased residuals in X for SVD for Mat.
Definition: AlignDQMModule.h:155
Belle2::AlignDQMModule::m_PhiOmega
TH2F * m_PhiOmega
Phi - the angle of the transverse momentum in the r-phi plane vs.
Definition: AlignDQMModule.h:264
Belle2::AlignDQMModule::m_D0TanLambda
TH2F * m_D0TanLambda
d0 - signed distance to the IP in r-phi vs.
Definition: AlignDQMModule.h:274
Belle2::AlignDQMModule::m_PhiMomPt
TH2F * m_PhiMomPt
Phi - the angle of the transverse momentum in the r-phi plane vs.
Definition: AlignDQMModule.h:262
Belle2::VxdID::getLayerNumber
baseType getLayerNumber() const
Get the layer id.
Definition: VxdID.h:106
Belle2::AlignDQMModule::m_UBResidualsSVDY_Pat
TH1F * m_UBResidualsSVDY_Pat
Unbiased residuals in Y for SVD for Pat.
Definition: AlignDQMModule.h:162
Belle2::AlignDQMModule::m_UBResidualsSensorV
TH1F ** m_UBResidualsSensorV
Unbiased residuals for PXD and SVD v per sensor.
Definition: AlignDQMModule.h:202
Belle2::AlignDQMModule::m_TracksVXDCDC
TH1F * m_TracksVXDCDC
Number of full tracks with VXD+CDC.
Definition: AlignDQMModule.h:240
Belle2::AlignDQMModule::m_UBResidualsSVD
TH2F * m_UBResidualsSVD
Unbiased residuals for SVD u vs v.
Definition: AlignDQMModule.h:133
Belle2::AlignDQMModule::m_UBResidualsSVDZ_Mat
TH1F * m_UBResidualsSVDZ_Mat
Unbiased residuals in Z for SVD for Mat.
Definition: AlignDQMModule.h:173
Belle2::AlignDQMModule::m_PhiZ0
TH2F * m_PhiZ0
Phi - the angle of the transverse momentum in the r-phi plane vs.
Definition: AlignDQMModule.h:260
Belle2::AlignDQMModule::m_ResMeanUThetaLayer
TH1F ** m_ResMeanUThetaLayer
ResidaulMeanU vs Theta for Layer.
Definition: AlignDQMModule.h:116
Belle2::AlignDQMModule::m_UBResidualsPXDX_Yang
TH1F * m_UBResidualsPXDX_Yang
Unbiased residuals in X for PXD for Yang.
Definition: AlignDQMModule.h:151
Belle2::AlignDQMModule::m_Phi
TH1F * m_Phi
helix parameters and their corellations:
Definition: AlignDQMModule.h:247
Belle2::AlignDQMModule::m_TRClusterCorrelationsPhi
TH2F ** m_TRClusterCorrelationsPhi
Track related clusters - neighbor corelations in Phi.
Definition: AlignDQMModule.h:206
Belle2::AlignDQMModule::m_UBResidualsSVDV
TH1F * m_UBResidualsSVDV
Unbiased residuals for SVD v.
Definition: AlignDQMModule.h:145
Belle2::AlignDQMModule::m_Tracks
TH1F * m_Tracks
Number of all finding tracks.
Definition: AlignDQMModule.h:242
Belle2::AlignDQMModule::m_ResMeanVThetaLayer
TH1F ** m_ResMeanVThetaLayer
ResidaulMeanV vs Theta for Layer.
Definition: AlignDQMModule.h:120
Belle2::AlignDQMModule::m_ResUPosVSens
TH2F ** m_ResUPosVSens
ResidaulU vs V for sensor.
Definition: AlignDQMModule.h:84
Belle2::AlignDQMModule::m_ResMeanUPhiLayer
TH1F ** m_ResMeanUPhiLayer
ResidaulMeanU vs Phi for Layer.
Definition: AlignDQMModule.h:114
Belle2::AlignDQMModule::m_ResMeanUPosUVSens
TH2F ** m_ResMeanUPosUVSens
ResidaulMeanU vs U vs V for sensor.
Definition: AlignDQMModule.h:78
Belle2::AlignDQMModule::m_UBResidualsPXDV
TH1F * m_UBResidualsPXDV
Unbiased residuals for PXD v.
Definition: AlignDQMModule.h:143
Belle2::AlignDQMModule::m_MomPhi
TH1F * m_MomPhi
Track momentum Pt.Phi.
Definition: AlignDQMModule.h:212
Belle2::AlignDQMModule::m_UBResidualsPXDU
TH1F * m_UBResidualsPXDU
Unbiased residuals for PXD u.
Definition: AlignDQMModule.h:137
Belle2::AlignDQMModule::m_HitsPXD
TH1F * m_HitsPXD
Number of hits on PXD.
Definition: AlignDQMModule.h:228