Belle II Software development
PXDDQMEfficiencySelftrackModule.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9
10#pragma once
11
12#include <framework/core/HistoModule.h>
13#include <framework/datastore/StoreArray.h>
14
15#include <pxd/dataobjects/PXDCluster.h>
16
17#include <vxd/geometry/GeoCache.h>
18#include <vxd/geometry/SensorInfoBase.h>
19
20#include <tracking/dataobjects/RecoTrack.h>
21#include <tracking/dataobjects/ROIid.h>
22
23#include "TH1F.h"
24#include "TH2F.h"
25
26
27namespace Belle2 {
43
44 public:
45
50
51 private:
52
56 void event() override final;
57
61 void beginRun() override final;
62
66 void initialize() override final;
67
71 void defineHisto() override final;
72
73
74
75 private:
77 /* returns the space point in local coordinates where the track hits the sensor:
78 sensorInfo: info of the sensor under investigation
79 aTrack: the track to be tested
80 isgood: flag which is false if some error occured (do not use the point if false)
81 du and dv are the uncertainties in u and v on the sensor plane of the fit (local coordinates)
82 */
83 ROOT::Math::XYZVector getTrackInterSec(const VXD::SensorInfoBase& pxdSensorInfo, const RecoTrack& aTrack, bool& isgood, double& du,
84 double& dv);
86 int findClosestCluster(const VxdID& vxdid, ROOT::Math::XYZVector intersection);
88 bool isCloseToBorder(int u, int v, int checkDistance);
90 bool isDeadPixelClose(int u, int v, int checkDistance, const VxdID& moduleID);
91
94
103
106
109
110 std::string m_pxdClustersName;
111 std::string m_tracksName;
112 std::string m_ROIsName;
113
116
120
121 double m_distcut;
122 double m_uFactor;
123 double m_vFactor;
124 double m_pcut;
125 double m_momCut;
126 double m_pTCut;
127 unsigned int m_minSVDHits;
130 double m_d0Cut;
132
133 //Histograms to later determine efficiency
134 std::map<VxdID, TH2F*> m_h_track_hits;
135 std::map<VxdID, TH2F*> m_h_matched_cluster;
136 std::map<VxdID, TH1F*> m_h_p;
137 std::map<VxdID, TH1F*> m_h_pt;
138 std::map<VxdID, TH1F*> m_h_su;
139 std::map<VxdID, TH1F*> m_h_sv;
140 std::map<VxdID, TH1F*> m_h_p2;
141 std::map<VxdID, TH1F*> m_h_pt2;
142 std::map<VxdID, TH1F*> m_h_su2;
143 std::map<VxdID, TH1F*> m_h_sv2;
144
145 };
147}
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29
Creates the basic histograms for PXD Efficiency DQM Simplified and adopted version of the testbeam px...
std::map< VxdID, TH1F * > m_h_su
histograms of su
void initialize() override final
initializes the need store arrays, trees and histograms
std::map< VxdID, TH2F * > m_h_track_hits
histograms of track hits
double m_d0Cut
cut abs(d0) in cm (large positiv value eg 9999 disables)
bool isCloseToBorder(int u, int v, int checkDistance)
is it close to the border
std::map< VxdID, TH1F * > m_h_su2
histrograms of su2
double m_vFactor
factor for track-error on distcut comparison
unsigned int m_minSVDHits
Required hits in SVD strips for tracks.
StoreArray< PXDCluster > m_pxdclusters
store array of pxd clusters
bool m_verboseHistos
add some verbose histograms for cuts
std::map< VxdID, TH1F * > m_h_sv2
histrograms of sv2
int findClosestCluster(const VxdID &vxdid, ROOT::Math::XYZVector intersection)
find the closest cluster
PXDDQMEfficiencySelftrackModule()
Constructor: Sets the description, the properties and the parameters of the module.
void defineHisto() override final
actually defines the trees and histograms
ROOT::Math::XYZVector getTrackInterSec(const VXD::SensorInfoBase &pxdSensorInfo, const RecoTrack &aTrack, bool &isgood, double &du, double &dv)
helper functions to do some of the calculations
bool isDeadPixelClose(int u, int v, int checkDistance, const VxdID &moduleID)
is a dead pixel close
double m_z0maxCut
cut z0 maximum in cm (large positiv value eg 9999 disables)
std::map< VxdID, TH1F * > m_h_pt2
histograms of pt2
bool m_requireROIs
Require tracks going through ROIs.
void event() override final
main function which fills trees and histograms
std::map< VxdID, TH1F * > m_h_sv
histograms of sv
std::string m_pxdClustersName
name of the store array of pxd clusters
std::string m_histogramDirectoryName
Where to save the histograms too.
double m_z0minCut
cut z0 minimum in cm (large negativ value eg -9999 disables)
int m_maskedDistance
Distance inside which no dead pixel or module border is allowed.
std::string m_ROIsName
name of the store array of ROIs
std::map< VxdID, TH2F * > m_h_matched_cluster
histograms of matched clusters
std::map< VxdID, TH1F * > m_h_p2
histograms of p2
bool m_useAlignment
if true alignment will be used!
void beginRun() override final
begin run function which resets histograms
StoreArray< RecoTrack > m_tracks
store array of tracks
double m_uFactor
factor for track-error on distcut comparison
std::map< VxdID, TH1F * > m_h_p
histograms of momenta
std::map< VxdID, TH1F * > m_h_pt
histograms of transverse momenta
std::string m_tracksName
name of the store array of tracks
StoreArray< ROIid > m_ROIs
store array of ROIs
This is the Reconstruction Event-Data Model Track.
Definition: RecoTrack.h:79
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
Class to faciliate easy access to sensor information of the VXD like coordinate transformations or pi...
Definition: GeoCache.h:39
Base class to provide Sensor Information for PXD and SVD.
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:33
Abstract base class for different kinds of events.