30namespace globaltracking
37 mMatchITSTPCQC = std::make_unique<o2::gloqc::MatchITSTPCQC>();
38 mMatchITSTPCQC->setDataRequest(mDataRequest);
40 mMatchITSTPCQC->setMinPtITSCut(
params.minPtITSCut);
41 mMatchITSTPCQC->setEtaITSCut(
params.etaITSCut);
42 mMatchITSTPCQC->setMinNClustersITS(
params.minNITSClustersCut);
43 mMatchITSTPCQC->setMaxChi2PerClusterITS(
params.maxChi2PerClusterITS);
44 mMatchITSTPCQC->setMinPtTPCCut(
params.minPtTPCCut);
45 mMatchITSTPCQC->setEtaTPCCut(
params.etaTPCCut);
46 mMatchITSTPCQC->setMinNTPCClustersCut(
params.minNTPCClustersCut);
47 mMatchITSTPCQC->setMinDCAtoBeamPipeDistanceCut(
params.minDCACut);
48 mMatchITSTPCQC->setMinDCAtoBeamPipeYCut(
params.minDCACutY);
49 mMatchITSTPCQC->setPtCut(
params.minPtCut);
50 mMatchITSTPCQC->setMaxPtCut(
params.maxPtCut);
51 mMatchITSTPCQC->setEtaCut(
params.etaCut);
52 mMatchITSTPCQC->setEtaNo0Cut(
params.etaNo0Cut);
53 mMatchITSTPCQC->setCutK0Mass(
params.cutK0Mass);
54 mMatchITSTPCQC->setMaxK0Eta(
params.maxEtaK0);
55 mMatchITSTPCQC->setK0Scaling(
params.K0Scaling);
56 mMatchITSTPCQC->setMinTPCOccpp(
params.minTPCOccpp);
57 mMatchITSTPCQC->setMaxTPCOccpp(
params.maxTPCOccpp);
58 mMatchITSTPCQC->setNBinsTPCOccpp(
params.nBinsTPCOccpp);
59 mMatchITSTPCQC->setMinTPCOccPbPb(
params.minTPCOccPbPb);
60 mMatchITSTPCQC->setMaxTPCOccPbPb(
params.maxTPCOccPbPb);
61 mMatchITSTPCQC->setNBinsTPCOccPbPb(
params.nBinsTPCOccPbPb);
62 mMatchITSTPCQC->setK0MaxDCA(
params.maxK0DCA);
63 mMatchITSTPCQC->setK0MinCosPA(
params.minK0CosPA);
66 mMatchITSTPCQC->setUseMC(mUseMC);
69 mMatchITSTPCQC->setDoK0QC(mDoK0QC);
71 mMatchITSTPCQC->init();
79 static bool wasSVParamInitialized =
false;
80 if (!wasSVParamInitialized) {
82 wasSVParamInitialized =
true;
84 mMatchITSTPCQC->run(pc);
92 mMatchITSTPCQC->finalize();
102 mMatchITSTPCQC->getHistos(objar);
103 output.snapshot(
Output{
"GLO",
"ITSTPCMATCHQC", 0}, objar);
105 TFile*
f =
new TFile(Form(
"outITSTPCmatchingQC.root"),
"RECREATE");
107 LOGP(error,
"Cannot write QC to file 'outITSTPCmatchingQC.root'");
110 objar.Write(
"ObjArray", TObject::kSingleKey);
129DataProcessorSpec getITSTPCMatchingQCDevice(
bool useMC,
bool doK0QC, std::string trkSources)
131 std::vector<OutputSpec> outputs;
132 outputs.emplace_back(
"GLO",
"ITSTPCMATCHQC", 0, Lifetime::Sporadic);
134 auto dataRequest = std::make_shared<o2::globaltracking::DataRequest>();
136 dataRequest->requestTracks(srcMask, useMC);
138 dataRequest->requestPrimaryVertices(useMC);
139 dataRequest->requestSecondaryVertices(useMC);
140 dataRequest->requestTPCClusters(
false);
142 auto ccdbRequest = std::make_shared<o2::base::GRPGeomRequest>(
false,
148 dataRequest->inputs);
150 dataRequest->inputs.emplace_back(
"SVParam",
"GLO",
"SVPARAM", 0, Lifetime::Condition,
ccdbParamSpec(
"GLO/Config/SVertexerParam"));
152 .
name =
"itstpc-matching-qc",
153 .inputs = dataRequest->inputs,
155 .algorithm =
AlgorithmSpec{adaptFromTask<o2::globaltracking::ITSTPCMatchingQCDevice>(dataRequest, ccdbRequest, useMC, doK0QC, trkSources)},
Definition of the Names Generator class.
Configurable params for secondary vertexer.
void checkUpdates(o2::framework::ProcessingContext &pc)
static GRPGeomHelper & instance()
void setRequest(std::shared_ptr< GRPGeomRequest > req)
static const ITSTPCMatchingQCParams & Instance()
DataAllocator & outputs()
InputRecord & inputs()
The inputs associated with this processing context.
void init(o2::framework::InitContext &ic) final
void endOfStream(o2::framework::EndOfStreamContext &ec) final
This is invoked whenever we have an EndOfStream event.
void run(o2::framework::ProcessingContext &pc) final
void finaliseCCDB(ConcreteDataMatcher &matcher, void *obj) final
GLenum const GLfloat * params
Defining PrimaryVertex explicitly as messageable.
std::vector< ConfigParamSpec > ccdbParamSpec(std::string const &path, int runDependent, std::vector< CCDBMetadata > metadata={}, int qrate=0)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...