10#ifndef CbmMvdMcQaTask_h
11#define CbmMvdMcQaTask_h 1
27 void Check()
override;
33 InitStatus
InitQa()
override;
39 fKeVBin = (binKeV > 0 ? binKeV : 1);
84 std::array<TList*, kNumOrigins>
fLists{};
A base class for CBM QA task logic.
Access to a MC data branch for time-based analysis.
Task class creating and managing CbmMCDataArray objects.
Container class for MC events with number, file and start time.
CbmQaTask(const char *name, int verbose, bool isMCUsed, ECbmRecoMode recoMode=ECbmRecoMode::Timeslice)
Constructor from parameters.
TH1D * fh_nMvdPointsEvt
MVD points per event.
void Check() override
Function to check, if the QA results are acceptable.
void ExecQa() override
Method to fill histograms per event or time-slice.
Long64_t fAllNPrim
global counters (over all events)
TH1D * fh_sec_count_bySpecies
overall counts (non-primary tracks with hits) by coarse species class
Int_t fNStations
Number of stations in MVD: TODO: Get Number of station from data file itself.
std::array< TList *, kNumOrigins > fLists
TH2D * fh_dEkeV_vs_pidClass
dE per point vs species class (non-primaries with hits)
void SetKeVRange(int maxKeV, int binKeV=1)
dE histogram settings (keV)
TH2D * fh_xy_points_nonprim
x vs y map of points (non-primaries)
TH2D * fh_mc_startY_vs_Z
start Y vs Z
Origin
track origin tag (public to avoid any ROOT dictionary issues)
std::vector< Origin > fOriginBuf
origin by track index
double fZMinStation0
TODO: Remove when we have getter for number of station directly from CbmMvdPoint.
TH2D * fh_mvd_dEkeV_vs_p
dE (keV) vs p (GeV/c) at MVD point
ClassDefOverride(CbmMvdMcQaTask, 1)
TH1D * fh_mc_pdg_sec
species for secondary MCTracks
TH2D * fh_mc_startY_vs_X
start Y vs X
CbmMCDataArray * fMcTracks
CbmMCEventList * fMcEventList
containers
int PidClass_(int pdg) const
static bool DecodeIonPDG_(int pdg, int &Z, int &A)
TH2D * fh_mvd_dEkeV_vs_pdg
dE (keV) vs species bin
std::unordered_map< int, uint64_t > fAllCountsSec
PDG -> count (all secondaries)
static constexpr const char * kOriginName[kNumOrigins]
std::vector< int > fPdgBuf
per-event caches
TH1D * fh_mc_p_sec
momentum of secondaries
CbmMCDataManager * fMcManager
std::vector< TH1D * > fh_mvd_nPointsEvt_station
MvdPoint histograms.
TH2D * fh_mc_startX_vs_Z
start X vs Z
int MapPdgToSpeciesBin_(int pdg) const
std::vector< TH2D * > fh_mvd_xy_sec_station
X-Y for secondary MVD points per station.
std::array< std::unordered_map< int, TH1F * >, kNumOrigins > fHistsElossKeVByPDG
TH1D * fh_mc_pdg_all
MCTrack-level histograms.
TH1D * fh_mc_startZ
start-z of MCTracks
TH1F * GetOrBookElossHist(int pdg, Origin origin)
double PointELossGeV_(const void *vp) const
CbmMvdMcQaTask(int verbose, bool isMcUsed)
std::unordered_map< int, uint64_t > fAllCountsPrim
PDG -> count (all primaries)
std::vector< TH2D * > fh_xy_points
x vs y map of points vs. station ID (non-primaries)
TH1D * fh_mvd_pdg_sec
species for secondary MVD points
TH1D * fh_mvd_pdg_prim
species for primary MVD points
void ProcessMcTracks(const int &fileId, const int &eventId)
FairRootManager * fManager
setup
TH1D * fh_mc_p_prim
momentum of primaries
InitStatus InitQa() override
Initializes the task.
void ProcessMvdPoints(const int &fileId, const int &eventId)
Origin ClassifyTrack_(const int &fileId, const int &eventId, Int_t trackindex) const
TH1D * fh_mc_pdg_prim
species for primary MCTracks
int GetStationIdFromZ_(double z) const
TH1D * fh_nDeltaEvt
number of secondary e+- with hits per event
TH1D * fh_nHitTracksEvt
unique non-primary tracks with hits per event
std::vector< TH2D * > fh_mvd_xy_prim_station
X-Y for primary MVD points per station.
void CreateSummary() override
Initializes QA-task summary: canvases, tables etc.
static constexpr int kNumOrigins
CbmMCDataArray * fMvdPoints
TH1D * fh_mvd_pdg_all
species for all MVD points
TH2D * fh_dEkeV_vs_p
dE (keV) vs p (GeV/c) at point (non-primaries)
void SetNumberOfStations(int nstation)
std::vector< TH1D * > fhCountMvdPoint
TH1D * fh_nTracksAll
Histograms.
int fKeVBin
1 keV bins by default