11#include <framework/core/Module.h>
12#include <framework/datastore/StoreArray.h>
13#include <pxd/dataobjects/PXDCluster.h>
14#include <svd/dataobjects/SVDCluster.h>
15#include <tracking/dataobjects/MCParticleInfo.h>
16#include <vxd/dataobjects/VXDTrueHit.h>
17#include <genfit/TrackCand.h>
56 void event()
override;
142 double semiPlane(ROOT::Math::XYZVector vertex, ROOT::Math::XYZVector center, ROOT::Math::XYZVector hit);
156 double theDistance(ROOT::Math::XYZVector center, ROOT::Math::XYZVector hit);
164 bool isInAnnulus(
double hitDistance,
double R,
double dR);
173 bool isFirstLap(
double FirstHitTime,
double HitTime,
double LapTime);
194 Int_t nbinsX, Double_t minX, Double_t maxX,
const char* titleX,
195 Int_t nbinsY, Double_t minY, Double_t maxY,
const char* titleY,
196 Int_t nbinsZ, Double_t minZ, Double_t maxZ,
const char* titleZ,
197 TList* histoList =
nullptr);
215 Int_t nbinsX, Double_t* binsX,
const char* titleX,
216 Int_t nbinsY, Double_t* binsY,
const char* titleY,
217 Int_t nbinsZ, Double_t* binsZ,
const char* titleZ,
218 TList* histoList =
nullptr);
228 TH1* h, TList* histoList =
nullptr);
240 TH1* hNum, TH1* hDen,
bool isEffPlot,
258 float compute_dR(
double thetaMS,
double omega);
This struct is used by the TrackingPerformanceEvaluation Module to save information of reconstructed ...
The MCTrackCandClassifier Definition Module.
std::string m_rootFileName
root file name
bool m_applySemiplane
Whether to require that the hit is in the expected semiplane.
TH1F * m_h1_nBadTrueHits
Histogram.
bool m_applyWedge
Whether to require that the hit belong to the barrel part of the SVD.
TH3F * m_h3_MCTrackCand
Histogram.
void addInefficiencyPlots(TList *graphList=nullptr)
Function to create inefficiency plots and add them to list.
ROOT::Math::XYZVector m_magField
magnetic field needed set particle info
TH1F * m_h1_nBad1dInfo
Histogram.
StoreArray< genfit::TrackCand > m_GenfitMCTrackCands
MC Genfit TrackCands StoreArray.
int nWedge
Counter for hits on wedged sensors.
StoreArray< SVDCluster > m_SVDClusters
SVDClusters StoreArray.
bool isInAnnulus(double hitDistance, double R, double dR)
Function to check if hitDistance is within a given annulus.
void initialize() override
Initializes the Module.
std::string m_mcParticlesName
MCParticle list name.
int nBarrel
Counter for hits on barrel sensors.
bool m_usePXD
Whether to use PXD.
void event() override
Event function.
TH1 * duplicateHistogram(const char *newname, const char *newtitle, TH1 *h, TList *histoList=nullptr)
Function to clone a histogram.
TH3F * m_h3_idealMCTrackCand
Histogram.
void endRun() override
End run.
float compute_thetaMS(MCParticleInfo &mcParticleInfo, VXDTrueHit *aTrueHit)
Calculate thetaMS.
void terminate() override
Termination action.
TH1F * m_h1_nGood1dInfo
Histogram.
bool m_applyLap
Whether to require that the hit belongs to the first lap in the transverse plane.
TH1F * m_h1_nGoodTrueHits
Histogram.
MCTrackCandClassifierModule()
Constructor of the module.
StoreArray< genfit::TrackCand > m_GenfitIdealMCTrackCands
Ideal Genfit TrackCands StoreArray.
TH1F * m_h1_dRoverR
Histogram.
bool isFirstLap(double FirstHitTime, double HitTime, double LapTime)
Function to check if a hitTime is within a given lapTime, under consideration of m_fraction and with ...
void addEfficiencyPlots(TList *graphList=nullptr)
Function to create efficiency plots and add them to list.
StoreArray< PXDCluster > m_PXDClusters
PXDClusters StoreArray.
TH1F * m_h1_timeDifference
Histogram.
void beginRun() override
Begin run.
double semiPlane(ROOT::Math::XYZVector vertex, ROOT::Math::XYZVector center, ROOT::Math::XYZVector hit)
Function to get semiplane.
TH1F * m_h1_hitDistance_rejected
Histogram.
TList * m_histoList
List of histograms.
TH1F * m_h1_hitRadius_rejected
Histogram.
TH1F * m_h1_lapTime
Histogram.
TH1F * m_h1_thetaMS_PXD
Histogram.
double m_fraction
Fraction of lap.
double theDistance(ROOT::Math::XYZVector center, ROOT::Math::XYZVector hit)
Get distance between two points.
TH1F * m_h1_hitRadius_accepted
Histogram.
TH1F * m_h1_MCTrackCandNhits
Histogram.
TH3F * createHistogram3D(const char *name, const char *title, Int_t nbinsX, Double_t minX, Double_t maxX, const char *titleX, Int_t nbinsY, Double_t minY, Double_t maxY, const char *titleY, Int_t nbinsZ, Double_t minZ, Double_t maxZ, const char *titleZ, TList *histoList=nullptr)
Create a 3D ROOT Histogram.
TH1F * createHistogramsRatio(const char *name, const char *title, TH1 *hNum, TH1 *hDen, bool isEffPlot, int axisRef)
Function to create a ratio histogram from two histograms.
TH1F * m_h1_diffOVERlap
Histogram.
TH1F * m_h1_firstRejectedOVERMCHit
Histogram.
TH1F * m_h1_thetaMS_SVD
Histogram.
TH1F * m_h1_firstRejectedHit
Histogram.
TFile * m_rootFilePtr
Pointer to root file used for storing histograms.
TH1F * m_h1_hitDistance_accepted
Histogram.
StoreArray< MCParticle > m_MCParticles
MCParticles StoreArray.
bool m_applyAnnulus
Whether to require that the hit is in the expected annulus.
TH3F * m_h3_MCParticle
Histogram.
std::string m_mcTrackCandsColName
TrackCand list name.
bool isInSemiPlane(double semiPlane, double omega)
Function to check if a omega value is in a given semiPlane.
float compute_dR(double thetaMS, double omega)
Calculate dR.
bool m_removeBadHits
Whether to remove the clusters that do not satisfy the criteria from the idealMCTrackCands.
int m_minHit
Minimum number of 1D Clusters to classify the MCTrackCand as ideal.
TH1F * m_h1_distOVERdR
Histogram.
Accessor to arrays stored in the data store.
Class VXDTrueHit - Records of tracks that either enter or leave the sensitive volume.
Abstract base class for different kinds of events.