Skip to content

Commit b12e9b5

Browse files
authored
Add files via upload
1 parent ab05454 commit b12e9b5

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

PWGDQ/Tasks/tableReader_withAssoc.cxx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,13 @@
4242
#include "ITSMFTBase/DPLAlpideParam.h"
4343

4444
#include "TGeoGlobalMagField.h"
45+
#include <TF1.h>
4546
#include <TH1F.h>
4647
#include <TH3F.h>
4748
#include <THashList.h>
4849
#include <TList.h>
4950
#include <TObjString.h>
51+
#include <TRandom.h>
5052
#include <TString.h>
5153

5254
#include <algorithm>
@@ -3133,6 +3135,8 @@ struct AnalysisDileptonTrack {
31333135
Configurable<std::string> fConfigGeoPath{"geoPath", "GLO/Config/GeometryAligned", "Path of the geometry file"};
31343136
Configurable<bool> fConfigUseRapcut{"cfgUseMCRapcut", false, "Use Rap cut for dileptons used in the triplet vertexing"};
31353137
Configurable<bool> fConfigEnergycorrelator{"cfgEnergycorrelator", false, "Add some hist for energy correlator study"};
3138+
Configurable<bool> fConfigApplyMassEC{"cfgApplyMassEC", false, "Apply fit mass for sideband for the energy correlator study"};
3139+
Configurable<std::vector<float>> fConfigFitmassEC{"cfgTFitmassEC", std::vector<float>{61199.9144, -19417.7588, 1709.4958, 2.8, 3.2}, "parameter from the fit fuction and fit range"};
31363140

31373141
int fCurrentRun; // needed to detect if the run changed and trigger update of calibrations etc.
31383142
int fNCuts; // number of dilepton leg cuts
@@ -3165,6 +3169,8 @@ struct AnalysisDileptonTrack {
31653169

31663170
NoBinningPolicy<aod::dqanalysisflags::MixingHash> fHashBin;
31673171

3172+
TF1* fMassBkg = nullptr;
3173+
31683174
void init(o2::framework::InitContext& context)
31693175
{
31703176
bool isBarrel = context.mOptions.get<bool>("processBarrelSkimmed");
@@ -3389,6 +3395,12 @@ struct AnalysisDileptonTrack {
33893395
LOG(info) << "Loading geometry from CCDB in dilepton-track task";
33903396
fCCDB->get<TGeoManager>(fConfigGeoPath);
33913397
}
3398+
3399+
// the background mass distribution in signal region
3400+
std::vector<float> fMassBkgpar = fConfigFitmassEC;
3401+
fMassBkg = new TF1("fMassBkg", "[0]+[1]*x+[2]*x*x", fMassBkgpar[3], fMassBkgpar[4]);
3402+
fMassBkg->SetParameters(fMassBkgpar[0], fMassBkgpar[1], fMassBkgpar[2]);
3403+
fMassBkg->SetNpx(10000);
33923404
}
33933405

33943406
// init parameters from CCDB
@@ -3490,6 +3502,10 @@ struct AnalysisDileptonTrack {
34903502
// compute needed quantities
34913503
VarManager::FillDileptonHadron(dilepton, track, fValuesHadron);
34923504
VarManager::FillDileptonTrackVertexing<TCandidateType, TEventFillMap, TTrackFillMap>(event, lepton1, lepton2, track, fValuesHadron);
3505+
3506+
// for the energy correlator analysis
3507+
VarManager::FillEnergyCorrelator(dilepton, track, fValuesHadron, fConfigApplyMassEC, fMassBkg->GetRandom());
3508+
34933509
// table to be written out for ML analysis
34943510
BmesonsTable(event.runNumber(), event.globalIndex(), event.timestamp(), fValuesHadron[VarManager::kPairMass], dilepton.mass(), fValuesHadron[VarManager::kDeltaMass], fValuesHadron[VarManager::kPairPt], fValuesHadron[VarManager::kPairEta], fValuesHadron[VarManager::kPairPhi], fValuesHadron[VarManager::kPairRap],
34953511
fValuesHadron[VarManager::kVertexingLxy], fValuesHadron[VarManager::kVertexingLxyz], fValuesHadron[VarManager::kVertexingLz],
@@ -3685,6 +3701,9 @@ struct AnalysisDileptonTrack {
36853701
// compute dilepton - track quantities
36863702
VarManager::FillDileptonHadron(dilepton, track, VarManager::fgValues);
36873703

3704+
// for the energy correlator analysis
3705+
VarManager::FillEnergyCorrelator(dilepton, track, VarManager::fgValues, fConfigApplyMassEC, fMassBkg->GetRandom());
3706+
36883707
// loop over dilepton leg cuts and track cuts and fill histograms separately for each combination
36893708
for (int icut = 0; icut < fNCuts; icut++) {
36903709
if (!dilepton.filterMap_bit(icut)) {

0 commit comments

Comments
 (0)