12#define _USE_MATH_DEFINES
45 TH1::AddDirectory(
false);
53 for (
const auto& pair : mMapHist) {
54 for (
auto& hist : pair.second) {
64 std::vector<unsigned char> mBufVec;
69 for (
auto const& track : (*tracks)) {
70 const auto dEdxTot = track.getdEdx().dEdxTotTPC;
71 const auto nCls = uint8_t(track.getNClusters());
72 const auto eta = track.getEta();
74 if (nCls < mCutMinNCls || dEdxTot < mCutMindEdxTot || abs(eta) > mCutAbsEta) {
78 uint8_t shared = 200, found = 0, crossed = 0;
82 mMapHist[
"sharedClusters"][0]->Fill(shared);
83 mMapHist[
"crossedRows"][0]->Fill(crossed);
92 auto f = std::unique_ptr<TFile>(TFile::Open(
filename.c_str(),
"recreate"));
93 for (
const auto& [
name, histos] : mMapHist) {
95 arr.SetName(
name.data());
96 for (
auto& hist : histos) {
99 arr.Write(arr.GetName(), TObject::kSingleKey);
const binning binsCrossedRows
const binning binsFoundClusters
const binning binsSharedClusters
ClassImp(o2::tpc::qc::TrackClusters)
static void countTPCClusters(const o2::tpc::TrackTPC &track, const gsl::span< const o2::tpc::TPCClRefElem > &tpcClusRefs, const gsl::span< const unsigned char > &tpcClusShMap, const o2::tpc::ClusterNativeAccess &tpcClusAcc, uint8_t &shared, uint8_t &found, uint8_t &crossed)
static void fillSharedClustersAndOccupancyMap(const o2::tpc::ClusterNativeAccess *cl, const gsl::span< const o2::tpc::TrackTPC > trks, const o2::tpc::TPCClRefElem *trackRef, uint8_t *shmap, uint32_t *ocmap=nullptr, uint32_t nHbfPerTf=0, const GPUParam *param=nullptr)
Shared cluster and crossed rows TPC quality control task.
void dumpToFile(std::string filename)
Dump results to a file.
void initializeHistograms()
Initialize all histograms.
void resetHistograms()
Reset all histograms.
bool processTrackAndClusters(const std::vector< o2::tpc::TrackTPC > *tracks, const o2::tpc::ClusterNativeAccess *clusterIndex, std::vector< o2::tpc::TPCClRefElem > *clusRefs)
GLuint const GLchar * name
unsigned int nClustersTotal