Belle II Software development
AlignDQMEventProcessor Class Reference

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

#include <AlignDQMEventProcessor.h>

Inheritance diagram for AlignDQMEventProcessor:
DQMEventProcessorBase

Public Member Functions

 AlignDQMEventProcessor (AlignDQMModule *histoModule, const std::string &tracksStoreArrayName, const std::string &recoTracksStoreArrayName)
 Constructor.
 
virtual void Run ()
 Call this to start processing the event data and filling histograms.
 
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 FillCommonHistograms () override
 Fill histograms which are common for PXD and SVD hit.
 
virtual void ProcessTrack (const Track &track)
 Find RecoTrack for given track.
 
virtual TString ConstructMessage (const TrackFitResult *trackFitResult, int nPXDClusters, int nSVDClusters, int nCDCHits)
 Make debug message with information about RecoTrack.
 
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.
 
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.
 
virtual void ComputeCommonVariables ()
 Compute variables 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.
 
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.
 

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 AlignDQMModule.

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 AlignDQMModule 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 AlignDQMEventProcessor.h.

Constructor & Destructor Documentation

◆ AlignDQMEventProcessor()

AlignDQMEventProcessor ( AlignDQMModule histoModule,
const std::string &  tracksStoreArrayName,
const std::string &  recoTracksStoreArrayName 
)
inline

Constructor.

Parameters
histoModuleDQMHistoModuleBase or derived module on which the Fill- functions are called.
recoTracksStoreArrayNameStoreArray name where the merged RecoTracks are written.
tracksStoreArrayNameStoreArray name where the merged Tracks are written.

Definition at line 34 of file AlignDQMEventProcessor.h.

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

Member Function Documentation

◆ ComputeCommonVariables()

void ComputeCommonVariables ( )
protectedvirtualinherited

Compute variables which are common for PXD and SVD hit.

Definition at line 212 of file DQMEventProcessorBase.cc.

213{
215 m_globalResidual_um = sensorInfo->vectorToGlobal(m_residual_um, true);
216 ROOT::Math::XYZVector globalPosition = sensorInfo->pointToGlobal(m_position, true);
217
218 m_phi_deg = globalPosition.Phi() / Unit::deg;
219 m_theta_deg = globalPosition.Theta() / Unit::deg;
220
222
223 auto gTools = VXD::GeoCache::getInstance().getGeoTools();
224 m_layerIndex = gTools->getLayerIndex(m_layerNumber);
225 m_correlationIndex = m_layerIndex - gTools->getFirstLayer();
226 m_sensorIndex = gTools->getSensorIndex(m_sensorID);
227}
ROOT::Math::XYZVector m_position
local coordinates of the hit position (u, v, w)
int m_layerIndex
index of the layer of the hit
int m_layerNumber
number of the layer of the hit
ROOT::Math::XYZVector m_residual_um
unbiased residual for the hit in micrometers in local coordinates (u, v, w)
int m_correlationIndex
index of the layer of the previous hit
int m_sensorIndex
index of the sensor of the hit
float m_theta_deg
global theta in degrees of the hit
float m_phi_deg
global phi in degrees of the hit
VxdID m_sensorID
ID of the current sensor.
ROOT::Math::XYZVector m_globalResidual_um
unbiased residual for the hit in micrometers in global coordinates (x, y, z)
static const double deg
degree to radians
Definition: Unit.h:109
const SensorInfoBase & getSensorInfo(Belle2::VxdID id) const
Return a referecne to the SensorInfo of a given SensorID.
Definition: GeoCache.cc:67
static GeoCache & getInstance()
Return a reference to the singleton instance.
Definition: GeoCache.cc:214
const GeoTools * getGeoTools()
Return a raw pointer to a GeoTools object.
Definition: GeoCache.h:142
baseType getLayerNumber() const
Get the layer id.
Definition: VxdID.h:96

◆ 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.

90{
91 return Form("%s: track %3i, Mom: %f, %f, %f, Pt: %f, Mag: %f, Hits: PXD %i SVD %i CDC %i Suma %i\n",
92 m_histoModule->getName().c_str(),
94 (float)trackFitResult->getMomentum().x(),
95 (float)trackFitResult->getMomentum().y(),
96 (float)trackFitResult->getMomentum().z(),
97 (float)trackFitResult->getMomentum().Rho(),
98 (float)trackFitResult->getMomentum().R(),
99 nPXDClusters, nSVDClusters, nCDCHits, nPXDClusters + nSVDClusters + nCDCHits
100 );
101}
DQMHistoModuleBase * m_histoModule
DQM histogram module on which the Fill- functions are called to fill histograms.
int m_iTrack
index of track (with valid TrackFitResult and related RecoTrack)
const std::string & getName() const
Returns the name of the module.
Definition: Module.h:187
ROOT::Math::XYZVector getMomentum() const
Getter for vector of momentum at closest approach of track in r/phi projection.

◆ FillCommonHistograms()

void FillCommonHistograms ( )
overrideprotectedvirtual

Fill histograms which are common for PXD and SVD hit.

Reimplemented from DQMEventProcessorBase.

Definition at line 15 of file AlignDQMEventProcessor.cc.

16{
18
19 (dynamic_cast<AlignDQMModule*>(m_histoModule))->FillPositionSensors(m_residual_um, m_position,
22}
DQM of Alignment for off line residuals per sensor, layer, keep also On-Line DQM from tracking: their...
virtual void FillCommonHistograms()
Fill histograms which are common for PXD and SVD hit.

◆ FillTrackFitResult()

void FillTrackFitResult ( const TrackFitResult trackFitResult)
protectedvirtualinherited

Fill histograms with values derived from TrackFitResult.

Definition at line 103 of file DQMEventProcessorBase.cc.

104{
105 if (m_runningOnHLT) {
106 m_histoModule->FillMomentumAngles(trackFitResult);
107 m_histoModule->FillMomentumCoordinates(trackFitResult);
108 }
110}
bool m_runningOnHLT
true if the DQM is run on HLT
virtual void FillHelixParametersAndCorrelations(const TrackFitResult *tfr)
Fill histograms with helix parameters and their correlations.
virtual void FillMomentumCoordinates(const TrackFitResult *tfr)
Fill histograms with track momentum Pt.
virtual void FillMomentumAngles(const TrackFitResult *tfr)
Fill histograms with track momentum Pt.

◆ 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 259 of file DQMEventProcessorBase.cc.

260{
261 switch (layerNumber) {
262 case 3:
263 return ladderNumber < 3 || ladderNumber > 5;
264 case 4:
265 return ladderNumber < 4 || ladderNumber > 8;
266 case 5:
267 return ladderNumber < 5 || ladderNumber > 10;
268 case 6:
269 return ladderNumber < 6 || ladderNumber > 13;
270 default:
271 return true;
272 }
273}

◆ 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 247 of file DQMEventProcessorBase.cc.

248{
249 switch (layerNumber) {
250 case 1:
251 return ladderNumber < 5 || ladderNumber > 8;
252 case 2:
253 return ladderNumber < 7 || ladderNumber > 12;
254 default:
255 return true;
256 }
257}

◆ ProcessPXDRecoHit()

void ProcessPXDRecoHit ( RecoHitInformation recoHitInfo)
protectedvirtualinherited

Compute position in a PXD way.

Then compute some other variables and fill some histograms.

Definition at line 157 of file DQMEventProcessorBase.cc.

158{
159 m_position.SetX(recoHitInfo->getRelatedTo<PXDCluster>()->getU());
160 m_position.SetY(recoHitInfo->getRelatedTo<PXDCluster>()->getV());
161 m_residual_um.SetX(m_rawSensorResidual->GetMatrixArray()[0] / Unit::um);
162 m_residual_um.SetY(m_rawSensorResidual->GetMatrixArray()[1] / Unit::um);
163
164 m_sensorID = recoHitInfo->getRelatedTo<PXDCluster>()->getSensorID();
166
168
171
172 if (m_produce1Dres)
174 if (m_produce2Dres)
176
178}
bool m_produce1Dres
if true, produce 1D Track residuals plots for each VXD sensor
bool m_produce2Dres
if true, produce 2D Track residuals plots for each VXD sensor
virtual void ComputeCommonVariables()
Compute variables which are common for PXD and SVD hit.
TVectorT< double > * m_rawSensorResidual
unbiased residual for the hit obtained from the sensor so its length is different for PXD and SVD sen...
virtual void SetCommonPrevVariables()
Set the value of -Prev values which are common for PXD and SVD hit.
static bool IsNotYang(int ladderNumber, int layerNumber)
Returns true if sensor with given ladderNumber and layerNumber isn't in the Yang half-shell,...
virtual void FillUB2DResidualsSensor(const B2Vector3D &residual_um, int sensorIndex)
Fill 2D histograms with unbiased residuals for individual sensors.
virtual void FillUBResidualsPXD(const B2Vector3D &residual_um)
Fill histograms with unbiased residuals in PXD sensors.
virtual void FillHalfShellsPXD(const B2Vector3D &globalResidual_um, bool isNotYang)
Fill histograms with unbiased residuals for half-shells for PXD sensors.
virtual void FillUB1DResidualsSensor(const B2Vector3D &residual_um, int sensorIndex)
Fill 1D histograms with unbiased residuals for individual sensors.
The PXD Cluster class This class stores all information about reconstructed PXD clusters The position...
Definition: PXDCluster.h:30
float getV() const
Get v coordinate of hit position.
Definition: PXDCluster.h:136
float getU() const
Get u coordinate of hit position.
Definition: PXDCluster.h:131
TO * getRelatedTo(const std::string &name="", const std::string &namedRelation="") const
Get the object to which this object has a relation.
static const double um
[micrometers]
Definition: Unit.h:71
baseType getLadderNumber() const
Get the ladder id.
Definition: VxdID.h:98

◆ ProcessRecoHit()

void ProcessRecoHit ( RecoHitInformation recoHitInfo)
protectedvirtualinherited

Compute unbiased residual and the calls ProcesPXDRecoHit or ProcessSVDRecoHit.

Definition at line 124 of file DQMEventProcessorBase.cc.

125{
126 if (!recoHitInfo) {
127 B2DEBUG(20, "Missing genfit::pxd recoHitInfo in event() for " + m_histoModule->getName() + " module.");
128 return;
129 }
130
131 if (!recoHitInfo->useInFit())
132 return;
133
134 bool isPXD = recoHitInfo->getTrackingDetector() == RecoHitInformation::c_PXD;
135 bool isSVD = recoHitInfo->getTrackingDetector() == RecoHitInformation::c_SVD;
136 if (!isPXD && !isSVD)
137 return;
138
139 auto trackpoint = m_recoTrack->getCreatedTrackPoint(recoHitInfo);
140 if (!trackpoint)
141 return;
142 auto fitterInfo = trackpoint->getFitterInfo();
143 if (!fitterInfo)
144 return;
145
146 m_rawSensorResidual = new TVectorT<double>(fitterInfo->getResidual(0, false).getState());
147
148 if (isPXD && ! m_runningOnHLT) {
149 ProcessPXDRecoHit(recoHitInfo);
150 } else if (isSVD) {
151 ProcessSVDRecoHit(recoHitInfo);
152 }
153
154 delete m_rawSensorResidual;
155}
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 ...
virtual void ProcessPXDRecoHit(RecoHitInformation *recoHitInfo)
Compute position in a PXD way.
RecoTrack * m_recoTrack
RecoTrack related to currently processed Track.
RecoHitDetector getTrackingDetector() const
Get the detector this hit comes from.
bool useInFit() const
Get the flag, whether this his should be used in a fit or not.
const genfit::TrackPoint * getCreatedTrackPoint(const RecoHitInformation *recoHitInformation) const
Get a pointer to the TrackPoint that was created from this hit.
Definition: RecoTrack.cc:230

◆ ProcessSuccessfulFit()

void ProcessSuccessfulFit ( )
protectedvirtualinherited

Continue track processing by calling ProcessRecoHit function on each RecoHitInformation in given RecoHit.

Definition at line 112 of file DQMEventProcessorBase.cc.

113{
114 // function wasFitSuccessful already checked if TrackFitStatus is not nullptr so it's not necessary to do so
116
117 m_isNotFirstHit = false;
118
119 for (auto recoHitInfo : m_recoTrack->getRecoHitInformations(true)) {
120 ProcessRecoHit(recoHitInfo);
121 }
122}
bool m_isNotFirstHit
Determines if the hit is not the first hit in the current track.
virtual void ProcessRecoHit(RecoHitInformation *recoHitInfo)
Compute unbiased residual and the calls ProcesPXDRecoHit or ProcessSVDRecoHit.
virtual void FillTrackFitStatus(const genfit::FitStatus *tfs)
Fill histograms which require FitStatus.
std::vector< RecoHitInformation * > getRecoHitInformations(bool getSorted=false) const
Return a list of all RecoHitInformations associated with the RecoTrack.
Definition: RecoTrack.cc:557
const genfit::FitStatus * getTrackFitStatus(const genfit::AbsTrackRep *representation=nullptr) const
Return the track fit status for the given representation or for the cardinal one. You are not allowed...
Definition: RecoTrack.h:621

◆ 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 180 of file DQMEventProcessorBase.cc.

181{
182 if (recoHitInfo->getRelatedTo<SVDCluster>()->isUCluster()) {
183 m_position.SetX(recoHitInfo->getRelatedTo<SVDCluster>()->getPosition());
184 m_residual_um.SetX(m_rawSensorResidual->GetMatrixArray()[0] / Unit::um);
185 } else {
186 m_position.SetY(recoHitInfo->getRelatedTo<SVDCluster>()->getPosition());
187 m_residual_um.SetY(m_rawSensorResidual->GetMatrixArray()[0] / Unit::um);
188 }
189
190 m_sensorID = recoHitInfo->getRelatedTo<SVDCluster>()->getSensorID();
191 if (m_sensorIDPrev == m_sensorID) {
193
194 if (! m_runningOnHLT) {
196
199
200 if (m_produce1Dres)
202 if (m_produce2Dres)
204 }
205
207 }
208
210}
static bool IsNotMat(int ladderNumber, int layerNumber)
Returns true if sensor with given ladderNumber and layerNumber isn't in the Mat half-shell,...
VxdID m_sensorIDPrev
ID of the prewious sensor.
virtual void FillHalfShellsSVD(const B2Vector3D &globalResidual_um, bool isNotMat)
Fill histograms with unbiased residuals for half-shells for SVD sensors.
virtual void FillUBResidualsSVD(const B2Vector3D &residual_um)
Fill histograms with unbiased residuals in SVD sensors.
The SVD Cluster class This class stores all information about reconstructed SVD clusters.
Definition: SVDCluster.h:29
bool isUCluster() const
Get the direction of strips.
Definition: SVDCluster.h:110
float getPosition(double v=0) const
Get the coordinate of reconstructed hit.
Definition: SVDCluster.h:117

◆ 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.

50{
51 auto recoTracksVector = track.getRelationsTo<RecoTrack>(m_recoTracksStoreArrayName);
52 if (!recoTracksVector.size())
53 return;
54
55 m_recoTrack = recoTracksVector[0];
56
57 int nPXDClusters = 0;
58 if (!m_runningOnHLT) {
59 RelationVector<PXDCluster> pxdClusters = DataStore::getRelationsWithObj<PXDCluster>(m_recoTrack);
60 nPXDClusters = (int)pxdClusters.size();
61 }
62 RelationVector<SVDCluster> svdClusters = DataStore::getRelationsWithObj<SVDCluster>(m_recoTrack);
63 int nSVDClusters = (int)svdClusters.size();
64 RelationVector<CDCHit> cdcHits = DataStore::getRelationsWithObj<CDCHit>(m_recoTrack);
65 int nCDCHits = (int)cdcHits.size();
66
67 // This method allways returns TrackFitResult so there's no need to check if it's not nullptr
68 auto trackFitResult = track.getTrackFitResultWithClosestMass(Const::pion);
69
70 TString message = ConstructMessage(trackFitResult, nPXDClusters, nSVDClusters, nCDCHits);
71 B2DEBUG(20, message.Data());
72
73 FillTrackFitResult(trackFitResult);
74 m_histoModule->FillHitNumbers(nPXDClusters, nSVDClusters, nCDCHits);
75
78
79 m_iTrack++;
80 if (((nPXDClusters > 0) || (nSVDClusters > 0)) && (nCDCHits == 0))
82 if (((nPXDClusters == 0) && (nSVDClusters == 0)) && (nCDCHits > 0))
84 if (((nPXDClusters > 0) || (nSVDClusters > 0)) && (nCDCHits > 0))
86}
static const ChargedStable pion
charged pion particle
Definition: Const.h:661
virtual void FillTrackFitResult(const TrackFitResult *trackFitResult)
Fill histograms with values derived from TrackFitResult.
int m_iTrackVXD
index of track where are VXD hits and aren't CDC hits (with valid TrackFitResult and related RecoTrac...
int m_iTrackCDC
index of track where are CDC hits and aren't VXD hits (with valid TrackFitResult and related RecoTrac...
virtual void ProcessSuccessfulFit()
Continue track processing by calling ProcessRecoHit function on each RecoHitInformation in given Reco...
std::string m_recoTracksStoreArrayName
StoreArray name where RecoTracks are written.
virtual TString ConstructMessage(const TrackFitResult *trackFitResult, int nPXDClusters, int nSVDClusters, int nCDCHits)
Make debug message with information about RecoTrack.
int m_iTrackVXDCDC
index of track where are both VXD hits and CDC hits (with valid TrackFitResult and related RecoTrack)
virtual void FillHitNumbers(int nPXD, int nSVD, int nCDC)
Fill histograms with numbers of hits.
This is the Reconstruction Event-Data Model Track.
Definition: RecoTrack.h:79
bool wasFitSuccessful(const genfit::AbsTrackRep *representation=nullptr) const
Returns true if the last fit with the given representation was successful.
Definition: RecoTrack.cc:336
Class for type safe access to objects that are referred to in relations.
size_t size() const
Get number of relations.

◆ produce1Dres()

void produce1Dres ( )
inlineinherited

Call this if you want to produce 1D Track Residual plots for each VXD sensor.

Definition at line 51 of file DQMEventProcessorBase.h.

51{m_produce1Dres = true;};

◆ produce2Dres()

void produce2Dres ( )
inlineinherited

Call this if you want to produce 2D Track Residual plots for each VXD sensor.

Definition at line 53 of file DQMEventProcessorBase.h.

53{m_produce2Dres = true;};

◆ 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.

19{
21 if (!recoTracks.isOptional()) {
22 B2DEBUG(22, "Missing recoTracks array in event() for " + m_histoModule->getName() + " module.");
23 return;
24 }
26 if (!tracks.isOptional()) {
27 B2DEBUG(22, "Missing recoTracks array in event() for " + m_histoModule->getName() + " module.");
28 return;
29 }
30
31 try {
32 m_iTrack = 0;
33 m_iTrackVXD = 0;
34 m_iTrackCDC = 0;
36
37 for (const Track& track : tracks) {
38 ProcessTrack(track);
39 }
40
42 } catch (const std::exception& e) {
43 B2WARNING("Exception " + std::string(e.what()) + " in " + m_histoModule->getName() + " module!");
44 } catch (...) {
45 B2WARNING("Unhandled exception in " + m_histoModule->getName() + " module!");
46 }
47}
virtual void ProcessTrack(const Track &track)
Find RecoTrack for given track.
std::string m_tracksStoreArrayName
StoreArray name where Tracks are written.
virtual void FillTrackIndexes(int iTrack, int iTrackVXD, int iTrackCDC, int iTrackVXDCDC)
Fill histograms with track indexes.
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
Class that bundles various TrackFitResults.
Definition: Track.h:25

◆ SetCommonPrevVariables()

void SetCommonPrevVariables ( )
protectedvirtualinherited

Set the value of -Prev values which are common for PXD and SVD hit.

Definition at line 240 of file DQMEventProcessorBase.cc.

241{
245}
float m_phiPrev_deg
global phi in degrees of the previous hit
int m_layerNumberPrev
number of the layer of the previous hit
float m_thetaPrev_deg
global theta in degrees of the previous hit

Member Data Documentation

◆ m_correlationIndex

int m_correlationIndex = 0
protectedinherited

index of the layer of the previous hit

Definition at line 162 of file DQMEventProcessorBase.h.

◆ m_globalResidual_um

ROOT::Math::XYZVector m_globalResidual_um = ROOT::Math::XYZVector()
protectedinherited

unbiased residual for the hit in micrometers in global coordinates (x, y, z)

Definition at line 146 of file DQMEventProcessorBase.h.

◆ m_histoModule

DQMHistoModuleBase* m_histoModule = nullptr
protectedinherited

DQM histogram module on which the Fill- functions are called to fill histograms.

Definition at line 105 of file DQMEventProcessorBase.h.

◆ m_isNotFirstHit

bool m_isNotFirstHit = false
protectedinherited

Determines if the hit is not the first hit in the current track.

Definition at line 132 of file DQMEventProcessorBase.h.

◆ m_iTrack

int m_iTrack = 0
protectedinherited

index of track (with valid TrackFitResult and related RecoTrack)

Definition at line 121 of file DQMEventProcessorBase.h.

◆ m_iTrackCDC

int m_iTrackCDC = 0
protectedinherited

index of track where are CDC hits and aren't VXD hits (with valid TrackFitResult and related RecoTrack)

Definition at line 125 of file DQMEventProcessorBase.h.

◆ m_iTrackVXD

int m_iTrackVXD = 0
protectedinherited

index of track where are VXD hits and aren't CDC hits (with valid TrackFitResult and related RecoTrack)

Definition at line 123 of file DQMEventProcessorBase.h.

◆ m_iTrackVXDCDC

int m_iTrackVXDCDC = 0
protectedinherited

index of track where are both VXD hits and CDC hits (with valid TrackFitResult and related RecoTrack)

Definition at line 127 of file DQMEventProcessorBase.h.

◆ m_layerIndex

int m_layerIndex = 0
protectedinherited

index of the layer of the hit

Definition at line 160 of file DQMEventProcessorBase.h.

◆ m_layerNumber

int m_layerNumber = 0
protectedinherited

number of the layer of the hit

Definition at line 156 of file DQMEventProcessorBase.h.

◆ m_layerNumberPrev

int m_layerNumberPrev = 0
protectedinherited

number of the layer of the previous hit

Definition at line 158 of file DQMEventProcessorBase.h.

◆ m_phi_deg

float m_phi_deg = .0
protectedinherited

global phi in degrees of the hit

Definition at line 148 of file DQMEventProcessorBase.h.

◆ m_phiPrev_deg

float m_phiPrev_deg = .0
protectedinherited

global phi in degrees of the previous hit

Definition at line 150 of file DQMEventProcessorBase.h.

◆ m_position

ROOT::Math::XYZVector m_position = ROOT::Math::XYZVector()
protectedinherited

local coordinates of the hit position (u, v, w)

Definition at line 142 of file DQMEventProcessorBase.h.

◆ m_produce1Dres

bool m_produce1Dres = false
protectedinherited

if true, produce 1D Track residuals plots for each VXD sensor

Definition at line 115 of file DQMEventProcessorBase.h.

◆ m_produce2Dres

bool m_produce2Dres = false
protectedinherited

if true, produce 2D Track residuals plots for each VXD sensor

Definition at line 118 of file DQMEventProcessorBase.h.

◆ m_rawSensorResidual

TVectorT<double>* m_rawSensorResidual = nullptr
protectedinherited

unbiased residual for the hit obtained from the sensor so its length is different for PXD and SVD sensors

Definition at line 135 of file DQMEventProcessorBase.h.

◆ m_recoTrack

RecoTrack* m_recoTrack = nullptr
protectedinherited

RecoTrack related to currently processed Track.

Definition at line 130 of file DQMEventProcessorBase.h.

◆ m_recoTracksStoreArrayName

std::string m_recoTracksStoreArrayName = ""
protectedinherited

StoreArray name where RecoTracks are written.

Definition at line 109 of file DQMEventProcessorBase.h.

◆ m_residual_um

ROOT::Math::XYZVector m_residual_um = ROOT::Math::XYZVector()
protectedinherited

unbiased residual for the hit in micrometers in local coordinates (u, v, w)

Definition at line 144 of file DQMEventProcessorBase.h.

◆ m_runningOnHLT

bool m_runningOnHLT
protectedinherited

true if the DQM is run on HLT

Definition at line 112 of file DQMEventProcessorBase.h.

◆ m_sensorID

VxdID m_sensorID = VxdID(0)
protectedinherited

ID of the current sensor.

Definition at line 137 of file DQMEventProcessorBase.h.

◆ m_sensorIDPrev

VxdID m_sensorIDPrev = VxdID(0)
protectedinherited

ID of the prewious sensor.

Definition at line 139 of file DQMEventProcessorBase.h.

◆ m_sensorIndex

int m_sensorIndex = 0
protectedinherited

index of the sensor of the hit

Definition at line 164 of file DQMEventProcessorBase.h.

◆ m_theta_deg

float m_theta_deg = .0
protectedinherited

global theta in degrees of the hit

Definition at line 152 of file DQMEventProcessorBase.h.

◆ m_thetaPrev_deg

float m_thetaPrev_deg = .0
protectedinherited

global theta in degrees of the previous hit

Definition at line 154 of file DQMEventProcessorBase.h.

◆ m_tracksStoreArrayName

std::string m_tracksStoreArrayName = ""
protectedinherited

StoreArray name where Tracks are written.

Definition at line 107 of file DQMEventProcessorBase.h.


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