Belle II Software  release-08-01-10
PXDDQMEfficiencyNtupleSelftrackModule.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/Module.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 #include <mdst/dataobjects/Track.h>
20 #include <tracking/dataobjects/RecoTrack.h>
21 #include <tracking/dataobjects/ROIid.h>
22 
23 
24 //root stuff
25 #include "TVector3.h"
26 
27 #include "TFile.h"
28 #include "TNtuple.h"
29 
30 
31 namespace Belle2 {
46 
47  public:
48 
53 
54  private:
55 
59  void event() override final;
60 
64  void initialize() override final;
65 
69  void terminate() override final;
70 
71 
72  private:
74  /* returns the space point in local coordinates where the track hits the sensor:
75  sensorInfo: info of the sensor under investigation
76  aTrack: the track to be tested
77  isgood: flag which is false if some error occured (do not use the point if false)
78  du and dv are the uncertainties in u and v on the sensor plane of the fit (local coordinates)
79  */
80  ROOT::Math::XYZVector getTrackInterSec(const VXD::SensorInfoBase& pxdSensorInfo, const RecoTrack& aTrack, bool& isgood, double& du,
81  double& dv);
83  int findClosestCluster(const VxdID& vxdid, ROOT::Math::XYZVector intersection);
85  bool isCloseToBorder(int u, int v, int checkDistance);
87  bool isDeadPixelClose(int u, int v, int checkDistance, const VxdID& moduleID);
88 
91 
94 
95  std::string m_pxdClustersName;
96  std::string m_tracksName;
97  std::string m_recoTracksName;
98  std::string m_ROIsName;
99 
104 
105  double m_pcut;
106  double m_momCut;
107  double m_pTCut;
108  unsigned int m_minSVDHits;
110 
111  TFile* m_file{};
112  TNtuple* m_tuple{};
113 
114  };
116 }
Base class for Modules.
Definition: Module.h:72
void initialize() override final
initializes the need store arrays, trees and histograms
bool isCloseToBorder(int u, int v, int checkDistance)
is it close to the border
unsigned int m_minSVDHits
Required hits in SVD strips for tracks.
StoreArray< PXDCluster > m_pxdclusters
store array of pxd clusters
int findClosestCluster(const VxdID &vxdid, ROOT::Math::XYZVector intersection)
find the closest cluster
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
void terminate() override final
terminate , save tuple to file if needed
void event() override final
main function which fills trees and histograms
std::string m_pxdClustersName
name of the store array of pxd clusters
std::string m_recoTracksName
name of the store array of recotracks
int m_maskedDistance
Distance inside which no dead pixel or module border is allowed.
StoreArray< RecoTrack > m_recoTracks
store array of reco tracks
PXDDQMEfficiencyNtupleSelftrackModule()
Constructor: Sets the description, the properties and the parameters of the module.
std::string m_tracksName
name of the store array of tracks
This is the Reconstruction Event-Data Model Track.
Definition: RecoTrack.h:79
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.