From 8d9271901dddda7c10c8b74737dca3032ace59c5 Mon Sep 17 00:00:00 2001 From: Janice Chen Date: Tue, 19 Nov 2024 14:32:44 +0100 Subject: [PATCH] [mod] Include the FSR for the DisSignalCalc and GisSignalCalc; [new] Include swap component and D0-decay in the left/right side-band (KK/pipi) --- CommonCode/include/Messenger.h | 8 ++ CommonCode/source/Messenger.cpp | 26 +++++++ .../ReduceForest.cpp | 74 ++++++++++++++++++- .../20241110_SkimValidation/DumpNewSkim.cpp | 12 ++- .../20241110_SkimValidation/DumpOldSkim.cpp | 73 ++++++++++++++++-- .../20241110_SkimValidation/ValidateHist.h | 21 +++++- 6 files changed, 203 insertions(+), 11 deletions(-) diff --git a/CommonCode/include/Messenger.h b/CommonCode/include/Messenger.h index 224e9d5f..24c10afa 100644 --- a/CommonCode/include/Messenger.h +++ b/CommonCode/include/Messenger.h @@ -418,6 +418,11 @@ class DzeroGenTreeMessenger float Gpt[DZEROGENCOUNTMAX]; float Gy[DZEROGENCOUNTMAX]; int GpdgId[DZEROGENCOUNTMAX]; + int Gdau1pdgId[DZEROGENCOUNTMAX]; + int Gdau2pdgId[DZEROGENCOUNTMAX]; + int Gdau3pdgId[DZEROGENCOUNTMAX]; + int Gdau4pdgId[DZEROGENCOUNTMAX]; + int GnDa[DZEROGENCOUNTMAX]; int GisSignal[DZEROGENCOUNTMAX]; int GcollisionId[DZEROGENCOUNTMAX]; int GSignalType[DZEROGENCOUNTMAX]; @@ -762,6 +767,9 @@ class DzeroUPCTreeMessenger std::vector *DisSignalCalc; std::vector *DisSignalCalcPrompt; std::vector *DisSignalCalcFeeddown; + std::vector *DisSwapCalc; + std::vector *DisD0CalcLeftSideBand; // D0 decay in the left side band (dominated by KK-state) + std::vector *DisD0CalcRightSideBand; // D0 decay in the right side band (dominated by pipi-state) //MC only quantities int Gsize; std::vector *Gpt; diff --git a/CommonCode/source/Messenger.cpp b/CommonCode/source/Messenger.cpp index b6a7d113..aacfd124 100644 --- a/CommonCode/source/Messenger.cpp +++ b/CommonCode/source/Messenger.cpp @@ -1558,6 +1558,11 @@ bool DzeroGenTreeMessenger::Initialize() Tree->SetBranchAddress("Gpt", &Gpt); Tree->SetBranchAddress("Gy", &Gy); Tree->SetBranchAddress("GpdgId", &GpdgId); + Tree->SetBranchAddress("Gdau1pdgId", &Gdau1pdgId); + Tree->SetBranchAddress("Gdau2pdgId", &Gdau2pdgId); + Tree->SetBranchAddress("Gdau3pdgId", &Gdau3pdgId); + Tree->SetBranchAddress("Gdau4pdgId", &Gdau4pdgId); + Tree->SetBranchAddress("GnDa", &GnDa); Tree->SetBranchAddress("GisSignal", &GisSignal); Tree->SetBranchAddress("GcollisionId", &GcollisionId); Tree->SetBranchAddress("GSignalType", &GSignalType); @@ -2753,6 +2758,9 @@ DzeroUPCTreeMessenger::~DzeroUPCTreeMessenger() delete DisSignalCalc; delete DisSignalCalcPrompt; delete DisSignalCalcFeeddown; + delete DisSwapCalc; + delete DisD0CalcLeftSideBand; + delete DisD0CalcRightSideBand; delete Gpt; delete Gy; delete GisSignalCalc; @@ -2792,6 +2800,9 @@ bool DzeroUPCTreeMessenger::Initialize(bool Debug) DisSignalCalc = nullptr; DisSignalCalcPrompt = nullptr; DisSignalCalcFeeddown = nullptr; + DisSwapCalc = nullptr; + DisD0CalcLeftSideBand = nullptr; + DisD0CalcRightSideBand = nullptr; Gpt = nullptr; Gy = nullptr; GisSignalCalc = nullptr; @@ -2843,6 +2854,9 @@ bool DzeroUPCTreeMessenger::Initialize(bool Debug) Tree->SetBranchAddress("DisSignalCalc", &DisSignalCalc); Tree->SetBranchAddress("DisSignalCalcPrompt", &DisSignalCalcPrompt); Tree->SetBranchAddress("DisSignalCalcFeeddown", &DisSignalCalcFeeddown); + Tree->SetBranchAddress("DisSwapCalc", &DisSwapCalc); + Tree->SetBranchAddress("DisD0CalcLeftSideBand", &DisD0CalcLeftSideBand); + Tree->SetBranchAddress("DisD0CalcRightSideBand", &DisD0CalcRightSideBand); Tree->SetBranchAddress("Gsize", &Gsize); Tree->SetBranchAddress("Gpt", &Gpt); Tree->SetBranchAddress("Gy", &Gy); @@ -2896,6 +2910,9 @@ bool DzeroUPCTreeMessenger::SetBranch(TTree *T) DisSignalCalc = new std::vector(); DisSignalCalcPrompt = new std::vector(); DisSignalCalcFeeddown = new std::vector(); + DisSwapCalc = new std::vector(); + DisD0CalcLeftSideBand = new std::vector(); + DisD0CalcRightSideBand = new std::vector(); Gpt = new std::vector(); Gy = new std::vector(); @@ -2951,6 +2968,9 @@ bool DzeroUPCTreeMessenger::SetBranch(TTree *T) Tree->Branch("DisSignalCalc", &DisSignalCalc); Tree->Branch("DisSignalCalcPrompt", &DisSignalCalcPrompt); Tree->Branch("DisSignalCalcFeeddown", &DisSignalCalcFeeddown); + Tree->Branch("DisSwapCalc", &DisSwapCalc); + Tree->Branch("DisD0CalcLeftSideBand", &DisD0CalcLeftSideBand); + Tree->Branch("DisD0CalcRightSideBand", &DisD0CalcRightSideBand); Tree->Branch("Gsize", &Gsize); Tree->Branch("Gpt", &Gpt); @@ -3011,6 +3031,9 @@ void DzeroUPCTreeMessenger::Clear() DisSignalCalc->clear(); DisSignalCalcPrompt->clear(); DisSignalCalcFeeddown->clear(); + DisSwapCalc->clear(); + DisD0CalcLeftSideBand->clear(); + DisD0CalcRightSideBand->clear(); Gsize = 0; Gpt->clear(); Gy->clear(); @@ -3066,6 +3089,9 @@ void DzeroUPCTreeMessenger::CopyNonTrack(DzeroUPCTreeMessenger &M) if(DisSignalCalc != nullptr && M.DisSignalCalc != nullptr) *DisSignalCalc = *(M.DisSignalCalc); if(DisSignalCalcPrompt != nullptr && M.DisSignalCalcPrompt != nullptr) *DisSignalCalcPrompt = *(M.DisSignalCalcPrompt); if(DisSignalCalcFeeddown != nullptr && M.DisSignalCalcFeeddown != nullptr) *DisSignalCalcFeeddown = *(M.DisSignalCalcFeeddown); + if(DisSwapCalc != nullptr && M.DisSwapCalc != nullptr) *DisSwapCalc = *(M.DisSwapCalc); + if(DisD0CalcLeftSideBand != nullptr && M.DisD0CalcLeftSideBand != nullptr) *DisD0CalcLeftSideBand = *(M.DisD0CalcLeftSideBand); + if(DisD0CalcRightSideBand != nullptr && M.DisD0CalcRightSideBand != nullptr) *DisD0CalcRightSideBand = *(M.DisD0CalcRightSideBand); Gsize = M.Gsize; if(Gpt != nullptr && M.Gpt != nullptr) *Gpt = *(M.Gpt); if(Gy != nullptr && M.Gy != nullptr) *Gy = *(M.Gy); diff --git a/SampleGeneration/20241027_ForestReducer_DzeroUPC/ReduceForest.cpp b/SampleGeneration/20241027_ForestReducer_DzeroUPC/ReduceForest.cpp index ac332ab2..a26ffc65 100644 --- a/SampleGeneration/20241027_ForestReducer_DzeroUPC/ReduceForest.cpp +++ b/SampleGeneration/20241027_ForestReducer_DzeroUPC/ReduceForest.cpp @@ -24,12 +24,15 @@ using namespace std; #include "include/DmesonSelection.h" +#define D0_MASS 1.8648 + bool logical_or_vectBool(std::vector* vec) { return std::any_of(vec->begin(), vec->end(), [](bool b) { return b; }); } int main(int argc, char *argv[]); double GetMaxEnergyHF(PFTreeMessenger *M, double etaMin, double etaMax); +bool GisSignalwFSR(int GpdgId, int Gdau1pdgId, int Gdau2pdgId, int Gdau3pdgId, int Gdau4pdgId, int GnDa, int GisSignal); int main(int argc, char *argv[]) { string VersionString = "V8"; @@ -137,7 +140,10 @@ int main(int argc, char *argv[]) { MDzeroUPC.Gpt->push_back(MDzeroGen.Gpt[iDGen]); MDzeroUPC.Gy->push_back(MDzeroGen.Gy[iDGen]); bool isSignalGen = - (MDzeroGen.GisSignal[iDGen] == 1 || MDzeroGen.GisSignal[iDGen] == 2) && MDzeroGen.Gpt[iDGen] > 0.; + MDzeroGen.Gpt[iDGen] > 0. && \ + GisSignalwFSR(MDzeroGen.GpdgId[iDGen], MDzeroGen.Gdau1pdgId[iDGen], MDzeroGen.Gdau2pdgId[iDGen], + MDzeroGen.Gdau3pdgId[iDGen], MDzeroGen.Gdau4pdgId[iDGen], MDzeroGen.GnDa[iDGen], + MDzeroGen.GisSignal[iDGen]); bool isPromptGen = MDzeroGen.GBAncestorpdgId[iDGen] == 0; bool isFeeddownGen = (MDzeroGen.GBAncestorpdgId[iDGen] >= 500 && MDzeroGen.GBAncestorpdgId[iDGen] < 600) || (MDzeroGen.GBAncestorpdgId[iDGen] > -600 && MDzeroGen.GBAncestorpdgId[iDGen] <= -500); @@ -247,13 +253,24 @@ int main(int argc, char *argv[]) { MDzeroUPC.DpassCut->push_back(DmesonSelectionPrelim23(MDzero,iD)); if (IsData == false) { MDzeroUPC.Dgen->push_back(MDzero.Dgen[iD]); - bool isSignalGenMatched = MDzero.Dgen[iD] == 23333 && MDzero.Dgenpt[iD] > 0.; + bool isSignalGenMatched = MDzero.Dgenpt[iD] > 0. && \ + (MDzero.Dgen[iD] == 23333 || MDzero.Dgen[iD] == 41022 || MDzero.Dgen[iD] == 41044); bool isPromptGenMatched = MDzero.DgenBAncestorpdgId[iD] == 0; bool isFeeddownGenMatched = (MDzero.DgenBAncestorpdgId[iD] >= 500 && MDzero.DgenBAncestorpdgId[iD] < 600) || (MDzero.DgenBAncestorpdgId[iD] > -600 && MDzero.DgenBAncestorpdgId[iD] <= -500); + bool isSwapGenMatched = MDzero.Dgenpt[iD] > 0. && \ + (MDzero.Dgen[iD] == 23344 || MDzero.Dgen[iD] == 41122 || MDzero.Dgen[iD] == 41144); + bool isD0DecayLeftSideBand = MDzero.Dgenpt[iD] > 0. && \ + (MDzero.Dgen[iD] == 333 && MDzero.Dmass[iD] < D0_MASS); + bool isD0DecayRightSideBand = MDzero.Dgenpt[iD] > 0. && \ + (MDzero.Dgen[iD] == 333 && MDzero.Dmass[iD] > D0_MASS); + MDzeroUPC.DisSignalCalc->push_back(isSignalGenMatched); MDzeroUPC.DisSignalCalcPrompt->push_back(isSignalGenMatched && isPromptGenMatched); MDzeroUPC.DisSignalCalcFeeddown->push_back(isSignalGenMatched && isFeeddownGenMatched); + MDzeroUPC.DisSwapCalc->push_back(isSwapGenMatched); + MDzeroUPC.DisD0CalcLeftSideBand->push_back(isD0DecayLeftSideBand); + MDzeroUPC.DisD0CalcRightSideBand->push_back(isD0DecayRightSideBand); } } MDzeroUPC.Dsize = countSelDzero; @@ -294,3 +311,56 @@ double GetMaxEnergyHF(PFTreeMessenger *M, double etaMin = 3., double etaMax = 5. } return EMax; } + +// ============================================================================ // +// Function to Get a Tag for Signal D Decay process with FSR at the Gen Level +// ============================================================================ // +bool GisSignalwFSR(int GpdgId, int Gdau1pdgId, int Gdau2pdgId, int Gdau3pdgId, int Gdau4pdgId, int GnDa, int GisSignal) +{ + const int PION_PDGID = 211; + const int KAON_PDGID = 321; + const int DZERO_PDGID = 421; + const int GAMMA_PDGID = 22; + constexpr bool match_all_sign = true; + + // 421 -> -321, 211 + bool isKplusPiminusDecay = (GpdgId == DZERO_PDGID) && + (Gdau1pdgId == (-KAON_PDGID) && Gdau2pdgId == PION_PDGID || + Gdau2pdgId == (-KAON_PDGID) && Gdau1pdgId == PION_PDGID); + // -421 -> 321, -211 + bool isKminusPiplusDecay = (GpdgId == (-DZERO_PDGID)) && + (Gdau1pdgId == KAON_PDGID && Gdau2pdgId == (-PION_PDGID) || + Gdau2pdgId == KAON_PDGID && Gdau1pdgId == (-PION_PDGID)); + if (match_all_sign) { + // 421 -> 321, 211 + isKplusPiminusDecay = (TMath::Abs(GpdgId) == DZERO_PDGID) && + (TMath::Abs(Gdau1pdgId) == KAON_PDGID && TMath::Abs(Gdau2pdgId) == PION_PDGID || + TMath::Abs(Gdau2pdgId) == KAON_PDGID && TMath::Abs(Gdau1pdgId) == PION_PDGID); + isKminusPiplusDecay = isKplusPiminusDecay; + } + bool isOneGamma = (Gdau3pdgId == GAMMA_PDGID); + bool isTwoGamma = (Gdau4pdgId == GAMMA_PDGID); + + switch (GnDa) { + case 2: { + if ((GisSignal==1 || GisSignal==2) != + (isKplusPiminusDecay || isKminusPiplusDecay)) { + std::cout << "Warning! " << __PRETTY_FUNCTION__ << + "doesn't match previous definition" << "\n"; + } + return isKplusPiminusDecay || isKminusPiplusDecay; + break; + } + case 3: { + return (isKplusPiminusDecay || isKminusPiplusDecay) && isOneGamma; + break; + } + case 4: { + return (isKplusPiminusDecay || isKminusPiplusDecay) && isOneGamma && isTwoGamma; + break; + } + default: + return false; + break; + } +} \ No newline at end of file diff --git a/SkimValidation/20241110_SkimValidation/DumpNewSkim.cpp b/SkimValidation/20241110_SkimValidation/DumpNewSkim.cpp index 765a4052..eaa0f6c6 100644 --- a/SkimValidation/20241110_SkimValidation/DumpNewSkim.cpp +++ b/SkimValidation/20241110_SkimValidation/DumpNewSkim.cpp @@ -132,13 +132,19 @@ int main(int argc, char *argv[]) { MDzeroUPC.DsvpvDisErr_2D->at(iD), MDzeroUPC.Ddtheta->at(iD)); if (!IsData) { - fprintf(outfile, "Dgen %d DisSignalCalc %d DisSignalCalcPrompt %d DisSignalCalcFeeddown %d\n", + fprintf(outfile, + "Dgen %d DisSignalCalc %d DisSignalCalcPrompt %d DisSignalCalcFeeddown %d\n" + "DisSwapCalc %d DisD0CalcLeftSideBand %d DisD0CalcRightSideBand %d", MDzeroUPC.Dgen->at(iD), (int)(MDzeroUPC.DisSignalCalc->at(iD)), - (int)(MDzeroUPC.DisSignalCalcPrompt->at(iD)), (int)(MDzeroUPC.DisSignalCalcFeeddown->at(iD))); + (int)(MDzeroUPC.DisSignalCalcPrompt->at(iD)), (int)(MDzeroUPC.DisSignalCalcFeeddown->at(iD)), + (int)(MDzeroUPC.DisSwapCalc->at(iD)), (int)(MDzeroUPC.DisD0CalcLeftSideBand->at(iD)), + (int)(MDzeroUPC.DisD0CalcRightSideBand->at(iD))); v.FillRecoDGenMatchedInfo(MDzeroUPC.Dgen->at(iD), (int)(MDzeroUPC.DisSignalCalc->at(iD)), (int)(MDzeroUPC.DisSignalCalcPrompt->at(iD)), - (int)(MDzeroUPC.DisSignalCalcFeeddown->at(iD))); + (int)(MDzeroUPC.DisSignalCalcFeeddown->at(iD)), (int)(MDzeroUPC.DisSwapCalc->at(iD)), + (int)(MDzeroUPC.DisD0CalcLeftSideBand->at(iD)), + (int)(MDzeroUPC.DisD0CalcRightSideBand->at(iD))); } } diff --git a/SkimValidation/20241110_SkimValidation/DumpOldSkim.cpp b/SkimValidation/20241110_SkimValidation/DumpOldSkim.cpp index a6f7bbed..ecf7d431 100644 --- a/SkimValidation/20241110_SkimValidation/DumpOldSkim.cpp +++ b/SkimValidation/20241110_SkimValidation/DumpOldSkim.cpp @@ -20,12 +20,16 @@ using namespace std; #include "ValidateHist.h" +#define D0_MASS 1.8648 + // copy from main analysis void calcRapidityGapsInput(std::vector *pfE, std::vector *pfPt, std::vector *pfEta, std::vector *pfId, int &nPFHFMinus_, int &nPFHFPlus_); bool tightsel(int j, DzeroTreeMessenger &MDzero, std::string varySel = ""); +bool GisSignalwFSR(int GpdgId, int Gdau1pdgId, int Gdau2pdgId, int Gdau3pdgId, int Gdau4pdgId, int GnDa, int GisSignal); + int findBestVertex(PbPbUPCTrackTreeMessenger &MTrackPbPbUPC) { int BestVertex = -1; @@ -219,23 +223,35 @@ int main(int argc, char *argv[]) { MDzero.DsvpvDistance_2D[iD], MDzero.DsvpvDisErr_2D[iD], MDzero.Ddtheta[iD]); if (!IsData) { - bool isSignalGenMatched = MDzero.Dgen[iD] == 23333 && MDzero.Dgenpt[iD] > 0.; + bool isSignalGenMatched = MDzero.Dgenpt[iD] > 0. && + (MDzero.Dgen[iD] == 23333 || MDzero.Dgen[iD] == 41022 || MDzero.Dgen[iD] == 41044); bool isPromptGenMatched = isSignalGenMatched && (MDzero.DgenBAncestorpdgId[iD] == 0); bool isFeeddownGenMatched = isSignalGenMatched && ((MDzero.DgenBAncestorpdgId[iD] >= 500 && MDzero.DgenBAncestorpdgId[iD] < 600) || (MDzero.DgenBAncestorpdgId[iD] > -600 && MDzero.DgenBAncestorpdgId[iD] <= -500)); + bool isSwapGenMatched = MDzero.Dgenpt[iD] > 0. && + (MDzero.Dgen[iD] == 23344 || MDzero.Dgen[iD] == 41122 || MDzero.Dgen[iD] == 41144); + bool isD0DecayLeftSideBand = MDzero.Dgenpt[iD] > 0. && (MDzero.Dgen[iD] == 333 && MDzero.Dmass[iD] < D0_MASS); + bool isD0DecayRightSideBand = MDzero.Dgenpt[iD] > 0. && (MDzero.Dgen[iD] == 333 && MDzero.Dmass[iD] > D0_MASS); - fprintf(outfile, "Dgen %d DisSignalCalc %o DisSignalCalcPrompt %o DisSignalCalcFeeddown %o\n", MDzero.Dgen[iD], - isSignalGenMatched, isPromptGenMatched, isFeeddownGenMatched); + fprintf(outfile, + "Dgen %d DisSignalCalc %o DisSignalCalcPrompt %o DisSignalCalcFeeddown %o\n" + "DisSwapCalc %d DisD0CalcLeftSideBand %d DisD0CalcRightSideBand %d", + MDzero.Dgen[iD], isSignalGenMatched, isPromptGenMatched, isFeeddownGenMatched, isSwapGenMatched, + isD0DecayLeftSideBand, isD0DecayRightSideBand); v.FillRecoDGenMatchedInfo(MDzero.Dgen[iD], (int)isSignalGenMatched, (int)isPromptGenMatched, - (int)isFeeddownGenMatched); + (int)isFeeddownGenMatched, (int)isSwapGenMatched, (int)isD0DecayLeftSideBand, + (int)isD0DecayRightSideBand); } } if (!IsData) { for (int iG = 0; iG < MDzeroGen.Gsize; ++iG) { - bool isSignalGen = (MDzeroGen.GisSignal[iG] == 1 || MDzeroGen.GisSignal[iG] == 2) && MDzeroGen.Gpt[iG] > 0.; + bool isSignalGen = MDzeroGen.Gpt[iG] > 0. && + GisSignalwFSR(MDzeroGen.GpdgId[iG], MDzeroGen.Gdau1pdgId[iG], MDzeroGen.Gdau2pdgId[iG], + MDzeroGen.Gdau3pdgId[iG], MDzeroGen.Gdau4pdgId[iG], MDzeroGen.GnDa[iG], + MDzeroGen.GisSignal[iG]); bool isPromptGen = isSignalGen && MDzeroGen.GBAncestorpdgId[iG] == 0; bool isFeeddownGen = isSignalGen && ((MDzeroGen.GBAncestorpdgId[iG] >= 500 && MDzeroGen.GBAncestorpdgId[iG] < 600) || @@ -444,3 +460,50 @@ bool tightsel(int j, DzeroTreeMessenger &MDzero, std::string varySel) { // if(ishi_) cut = true; // wtf is this return cut; } + +bool GisSignalwFSR(int GpdgId, int Gdau1pdgId, int Gdau2pdgId, int Gdau3pdgId, int Gdau4pdgId, int GnDa, + int GisSignal) { + const int PION_PDGID = 211; + const int KAON_PDGID = 321; + const int DZERO_PDGID = 421; + const int GAMMA_PDGID = 22; + constexpr bool match_all_sign = true; + + // 421 -> -321, 211 + bool isKplusPiminusDecay = (GpdgId == DZERO_PDGID) && (Gdau1pdgId == (-KAON_PDGID) && Gdau2pdgId == PION_PDGID || + Gdau2pdgId == (-KAON_PDGID) && Gdau1pdgId == PION_PDGID); + // -421 -> 321, -211 + bool isKminusPiplusDecay = (GpdgId == (-DZERO_PDGID)) && (Gdau1pdgId == KAON_PDGID && Gdau2pdgId == (-PION_PDGID) || + Gdau2pdgId == KAON_PDGID && Gdau1pdgId == (-PION_PDGID)); + if (match_all_sign) { + // 421 -> 321, 211 + isKplusPiminusDecay = (TMath::Abs(GpdgId) == DZERO_PDGID) && + (TMath::Abs(Gdau1pdgId) == KAON_PDGID && TMath::Abs(Gdau2pdgId) == PION_PDGID || + TMath::Abs(Gdau2pdgId) == KAON_PDGID && TMath::Abs(Gdau1pdgId) == PION_PDGID); + isKminusPiplusDecay = isKplusPiminusDecay; + } + bool isOneGamma = (Gdau3pdgId == GAMMA_PDGID); + bool isTwoGamma = (Gdau4pdgId == GAMMA_PDGID); + + switch (GnDa) { + case 2: { + if ((GisSignal == 1 || GisSignal == 2) != (isKplusPiminusDecay || isKminusPiplusDecay)) { + std::cout << "Warning! " << __PRETTY_FUNCTION__ << "doesn't match previous definition" + << "\n"; + } + return isKplusPiminusDecay || isKminusPiplusDecay; + break; + } + case 3: { + return (isKplusPiminusDecay || isKminusPiplusDecay) && isOneGamma; + break; + } + case 4: { + return (isKplusPiminusDecay || isKminusPiplusDecay) && isOneGamma && isTwoGamma; + break; + } + default: + return false; + break; + } +} \ No newline at end of file diff --git a/SkimValidation/20241110_SkimValidation/ValidateHist.h b/SkimValidation/20241110_SkimValidation/ValidateHist.h index 6687fda8..6206fcaf 100644 --- a/SkimValidation/20241110_SkimValidation/ValidateHist.h +++ b/SkimValidation/20241110_SkimValidation/ValidateHist.h @@ -65,11 +65,15 @@ class ValidateHist { }; void FillRecoDGenMatchedInfo(float _Dgen, float _DisSignalCalc, float _DisSignalCalcPrompt, - float _DisSignalCalcFeeddown) { + float _DisSignalCalcFeeddown, float _DisSwapCalc, float _DisD0CalcLeftSideBand, + float _DisD0CalcRightSideBand) { h_Dgen->Fill(_Dgen); h_DisSignalCalc->Fill(_DisSignalCalc); h_DisSignalCalcPrompt->Fill(_DisSignalCalcPrompt); h_DisSignalCalcFeeddown->Fill(_DisSignalCalcFeeddown); + h_DisSwapCalc->Fill(_DisSwapCalc); + h_DisD0CalcLeftSideBand->Fill(_DisD0CalcLeftSideBand); + h_DisD0CalcRightSideBand->Fill(_DisD0CalcRightSideBand); }; void FillGenDInfo(float _Gpt, float _Gy, float _GisSignalCalc, float _GisSignalCalcPrompt, @@ -127,6 +131,9 @@ class ValidateHist { TH1D *h_DisSignalCalc; TH1D *h_DisSignalCalcPrompt; TH1D *h_DisSignalCalcFeeddown; + TH1D *h_DisSwapCalc; + TH1D *h_DisD0CalcLeftSideBand; + TH1D *h_DisD0CalcRightSideBand; TH1D *h_Gsize; TH1D *h_Gpt; @@ -212,6 +219,12 @@ ValidateHist::ValidateHist(string filename, histDict["DisSignalCalcPrompt"] = h_DisSignalCalcPrompt; h_DisSignalCalcFeeddown = (TH1D *)output->Get("h_DisSignalCalcFeeddown"); histDict["DisSignalCalcFeeddown"] = h_DisSignalCalcFeeddown; + h_DisSwapCalc = (TH1D *)output->Get("h_DisSwapCalc"); + histDict["DisSwapCalc"] = h_DisSwapCalc; + h_DisD0CalcLeftSideBand = (TH1D *)output->Get("h_DisD0CalcLeftSideBand"); + histDict["DisD0CalcLeftSideBand"] = h_DisD0CalcLeftSideBand; + h_DisD0CalcRightSideBand = (TH1D *)output->Get("h_DisD0CalcRightSideBand"); + histDict["DisD0CalcRightSideBand"] = h_DisD0CalcRightSideBand; h_Gsize = (TH1D *)output->Get("h_Gsize"); histDict["Gsize"] = h_Gsize; @@ -295,6 +308,12 @@ ValidateHist::ValidateHist(string filename, histDict["DisSignalCalcPrompt"] = h_DisSignalCalcPrompt; h_DisSignalCalcFeeddown = new TH1D("h_DisSignalCalcFeeddown", "; DisSignalCalcFeeddown; Count", 2, 0, 2); histDict["DisSignalCalcFeeddown"] = h_DisSignalCalcFeeddown; + h_DisSwapCalc = new TH1D("h_DisSwapCalc", "; DisSwapCalc; Count", 2, 0, 2); + histDict["DisSwapCalc"] = h_DisSwapCalc; + h_DisD0CalcLeftSideBand = new TH1D("h_DisD0CalcLeftSideBand", "; DisD0CalcLeftSideBand; Count", 2, 0, 2); + histDict["DisD0CalcLeftSideBand"] = h_DisD0CalcLeftSideBand; + h_DisD0CalcRightSideBand = new TH1D("h_DisD0CalcRightSideBand", "; DisD0CalcRightSideBand; Count", 2, 0, 2); + histDict["DisD0CalcRightSideBand"] = h_DisD0CalcRightSideBand; h_Gsize = new TH1D("h_Gsize", "; Gsize; Count", 10, 0, 10); histDict["Gsize"] = h_Gsize;