Belle II Software  release-08-01-10
TrackDQMEventProcessor Class Reference

The purpose of this class is to process one event() in TrackDQMModule. More...

#include <TrackDQMEventProcessor.h>

Inheritance diagram for TrackDQMEventProcessor:
Collaboration diagram for TrackDQMEventProcessor:

Public Member Functions

 TrackDQMEventProcessor (DQMHistoModuleBase *histoModule, const std::string &recoTracksStoreArrayName, const std::string &tracksStoreArrayName, bool runningOnHLT=false)
 Constructor. More...
 
virtual void Run ()
 Call this to start processing the event data and filling histograms. More...
 
void produce1Dres ()
 Call this if you want to produce 1D Track Residual plots for each VXD sensor.
 
void produce2Dres ()
 Call this if you want to produce 2D Track Residual plots for each VXD sensor.
 

Protected Member Functions

virtual void ProcessTrack (const Track &track)
 Find RecoTrack for given track. More...
 
virtual TString ConstructMessage (const TrackFitResult *trackFitResult, int nPXDClusters, int nSVDClusters, int nCDCHits)
 Make debug message with information about RecoTrack. More...
 
virtual void FillTrackFitResult (const TrackFitResult *trackFitResult)
 Fill histograms with values derived from TrackFitResult.
 
virtual void ProcessSuccessfulFit ()
 Continue track processing by calling ProcessRecoHit function on each RecoHitInformation in given RecoHit.
 
virtual void ProcessRecoHit (RecoHitInformation *recoHitInfo)
 Compute unbiased residual and the calls ProcesPXDRecoHit or ProcessSVDRecoHit.
 
virtual void ProcessPXDRecoHit (RecoHitInformation *recoHitInfo)
 Compute position in a PXD way. More...
 
virtual void ProcessSVDRecoHit (RecoHitInformation *recoHitInfo)
 Compute position in a SVD way which means we need two consecutive hits to be from the same sensor to get both u and v coordinates. More...
 
virtual void ComputeCommonVariables ()
 Compute variables which are common for PXD and SVD hit.
 
virtual void FillCommonHistograms ()
 Fill histograms which are common for PXD and SVD hit.
 
virtual void SetCommonPrevVariables ()
 Set the value of -Prev values which are common for PXD and SVD hit.
 

Static Protected Member Functions

static 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 Yin half-shell if it's from PXD detector. More...
 
static 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...
 

Protected Attributes

DQMHistoModuleBasem_histoModule = nullptr
 DQM histogram module on which the Fill- functions are called to fill histograms.
 
std::string m_tracksStoreArrayName = ""
 StoreArray name where Tracks are written.
 
std::string m_recoTracksStoreArrayName = ""
 StoreArray name where RecoTracks are written.
 
bool m_runningOnHLT
 true if the DQM is run on HLT
 
bool m_produce1Dres = false
 if true, produce 1D Track residuals plots for each VXD sensor
 
bool m_produce2Dres = false
 if true, produce 2D Track residuals plots for each VXD sensor
 
int m_iTrack = 0
 index of track (with valid TrackFitResult and related RecoTrack)
 
int m_iTrackVXD = 0
 index of track where are VXD hits and aren't CDC hits (with valid TrackFitResult and related RecoTrack)
 
int m_iTrackCDC = 0
 index of track where are CDC hits and aren't VXD hits (with valid TrackFitResult and related RecoTrack)
 
int m_iTrackVXDCDC = 0
 index of track where are both VXD hits and CDC hits (with valid TrackFitResult and related RecoTrack)
 
RecoTrackm_recoTrack = nullptr
 RecoTrack related to currently processed Track.
 
bool m_isNotFirstHit = false
 Determines if the hit is not the first hit in the current track.
 
TVectorT< double > * m_rawSensorResidual = nullptr
 unbiased residual for the hit obtained from the sensor so its length is different for PXD and SVD sensors
 
VxdID m_sensorID = VxdID(0)
 ID of the current sensor.
 
VxdID m_sensorIDPrev = VxdID(0)
 ID of the prewious sensor.
 
ROOT::Math::XYZVector m_position = ROOT::Math::XYZVector()
 local coordinates of the hit position (u, v, w)
 
ROOT::Math::XYZVector m_residual_um = ROOT::Math::XYZVector()
 unbiased residual for the hit in micrometers in local coordinates (u, v, w)
 
ROOT::Math::XYZVector m_globalResidual_um = ROOT::Math::XYZVector()
 unbiased residual for the hit in micrometers in global coordinates (x, y, z)
 
float m_phi_deg = .0
 global phi in degrees of the hit
 
float m_phiPrev_deg = .0
 global phi in degrees of the previous hit
 
float m_theta_deg = .0
 global theta in degrees of the hit
 
float m_thetaPrev_deg = .0
 global theta in degrees of the previous hit
 
int m_layerNumber = 0
 number of the layer of the hit
 
int m_layerNumberPrev = 0
 number of the layer of the previous hit
 
int m_layerIndex = 0
 index of the layer of the hit
 
int m_correlationIndex = 0
 index of the layer of the previous hit
 
int m_sensorIndex = 0
 index of the sensor of the hit
 

Detailed Description

The purpose of this class is to process one event() in TrackDQMModule.

After instance of this class is created via constructor its only public function Run() should be called to process the event.

This class doesn't actually fill the histograms but it calls Fill- functions on given TrackDQMModule instead.

All functions of this class are supposed to be virtual so they can be overridden in derived classes.

Definition at line 27 of file TrackDQMEventProcessor.h.

Constructor & Destructor Documentation

◆ TrackDQMEventProcessor()

TrackDQMEventProcessor ( DQMHistoModuleBase histoModule,
const std::string &  recoTracksStoreArrayName,
const std::string &  tracksStoreArrayName,
bool  runningOnHLT = false 
)
inline

Constructor.

Parameters
histoModule- DQMHistoModuleBase or derived module on which the Fill- functions are called.
recoTracksStoreArrayName- StoreArray name where the merged RecoTracks are written.
tracksStoreArrayName- StoreArray name where the merged Tracks are written.
runningOnHLT- true if the module runs on HLT

Definition at line 35 of file TrackDQMEventProcessor.h.

36  :
37  DQMEventProcessorBase(histoModule, recoTracksStoreArrayName, tracksStoreArrayName, runningOnHLT) { }
DQMEventProcessorBase(DQMHistoModuleBase *histoModule, const std::string &recoTracksStoreArrayName, const std::string &tracksStoreArrayName, bool runningOnHLT=false)
Constructor.

Member Function Documentation

◆ ConstructMessage()

TString ConstructMessage ( const TrackFitResult trackFitResult,
int  nPXDClusters,
int  nSVDClusters,
int  nCDCHits 
)
protectedvirtualinherited

Make debug message with information about RecoTrack.

Used in ProcessTrack function.

Definition at line 88 of file DQMEventProcessorBase.cc.

◆ IsNotMat()

bool IsNotMat ( int  ladderNumber,
int  layerNumber 
)
staticprotectedinherited

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 int 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 256 of file DQMEventProcessorBase.cc.

◆ IsNotYang()

bool IsNotYang ( int  ladderNumber,
int  layerNumber 
)
staticprotectedinherited

Returns true if sensor with given ladderNumber and layerNumber isn't in the Yang half-shell, therefore it should be in the Yin 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 244 of file DQMEventProcessorBase.cc.

◆ ProcessPXDRecoHit()

void ProcessPXDRecoHit ( RecoHitInformation recoHitInfo)
protectedvirtualinherited

Compute position in a PXD way.

Then compute some other variables and fill some histograms.

Definition at line 154 of file DQMEventProcessorBase.cc.

◆ ProcessSVDRecoHit()

void ProcessSVDRecoHit ( RecoHitInformation recoHitInfo)
protectedvirtualinherited

Compute position in a SVD way which means we need two consecutive hits to be from the same sensor to get both u and v coordinates.

Then, if this condition is met and we have complete information about position, we can continue in a similar way as the ProcessPXDRecoHit function does.

Definition at line 177 of file DQMEventProcessorBase.cc.

◆ ProcessTrack()

void ProcessTrack ( const Track track)
protectedvirtualinherited

Find RecoTrack for given track.

Calls ProcessSuccesfulFit if the RecoTrack has a successful fit.

Definition at line 49 of file DQMEventProcessorBase.cc.

◆ Run()

void Run ( )
virtualinherited

Call this to start processing the event data and filling histograms.

Calls ProcessTrack function for each track in store array.

Definition at line 18 of file DQMEventProcessorBase.cc.


The documentation for this class was generated from the following file: