@@ -68,7 +68,14 @@ Analysis::Analysis(
6868 PIDtoFinalState.insert ({ 2212 , " pTrack" });
6969
7070 // dihadrons
71- availableBinSchemes.insert ({ " dihMh" , " M_{h}" });
71+ availableBinSchemes.insert ({ " DihMh" , " M_{h}" });
72+ availableBinSchemes.insert ({ " DihMX" , " M_{X}" });
73+ availableBinSchemes.insert ({ " DihZ" , " Z" });
74+ availableBinSchemes.insert ({ " DihPhPerp" , " P_{h,T}" });
75+ availableBinSchemes.insert ({ " DihTheta" , " #theta" });
76+ availableBinSchemes.insert ({ " DihPhiH" , " #phi_{h}" });
77+ availableBinSchemes.insert ({ " DihPhiR" , " #phi_{R}" });
78+ availableBinSchemes.insert ({ " DihPhiS" , " #phi_{S}" });
7279
7380 // kinematics reconstruction methods
7481 // - choose one of these methods using `SetReconMethod(TString name)`
@@ -340,11 +347,6 @@ void Analysis::Prepare() {
340347 dihSet->IncludeHadron (state);
341348 }
342349 dihadronFinalState (TRegexp (" _$" )) = " " ;
343- // aesthetic quick fix: re-order the name and title for pi+pi-
344- if (dihadronFinalState==" pimTrack_pipTrack" ) {
345- dihadronFinalState = " pipTrack_pimTrack" ;
346- dihadronTitle = " #pi^{+}#pi^{-}" ;
347- }
348350 dihadronTitle += " dihadrons" ;
349351 // add the new dihadron final state
350352 finalStateToTitle.insert ({dihadronFinalState,dihadronTitle});
@@ -381,7 +383,14 @@ void Analysis::Prepare() {
381383 HD->SetBinSchemeValue (" tSpin" , [this ](){ return (Double_t)kin->tSpin ; });
382384 HD->SetBinSchemeValue (" lSpin" , [this ](){ return (Double_t)kin->lSpin ; });
383385 /* dihadron */
384- HD->SetBinSchemeValue (" dihMh" , [this ](){ return dih->Mh ; });
386+ HD->SetBinSchemeValue (" DihMh" , [this ](){ return dih->Mh ; });
387+ HD->SetBinSchemeValue (" DihMX" , [this ](){ return dih->MX ; });
388+ HD->SetBinSchemeValue (" DihZ" , [this ](){ return dih->Z ; });
389+ HD->SetBinSchemeValue (" DihPhPerp" , [this ](){ return dih->PhPerp ; });
390+ HD->SetBinSchemeValue (" DihTheta" , [this ](){ return dih->Theta ; });
391+ HD->SetBinSchemeValue (" DihPhiH" , [this ](){ return dih->PhiH ; });
392+ HD->SetBinSchemeValue (" DihPhiR" , [this ](){ return dih->PhiR ; });
393+ HD->SetBinSchemeValue (" DihPhiS" , [this ](){ return dih->PhiS ; });
385394 /* jets */
386395#ifndef EXCLUDE_DELPHES
387396 HD->SetBinSchemeValue (" JetPT" , [this ](){ return kin->pTjet ; });
@@ -512,7 +521,14 @@ void Analysis::Prepare() {
512521 }
513522 // -- dihadron kinematics
514523 if (includeOutputSet[" 2h" ]) {
515- HS->DefineHist1D (" dihMh" , " M_{h}" , " GeV" , 2 *NBINS, 0 , 5 );
524+ HS->DefineHist1D (" DihMh" , " M_{h}" , " GeV" , 2 *NBINS, 0 , 5 );
525+ HS->DefineHist1D (" DihMX" , " M_{X}" , " GeV" , NBINS, 0 , 40 );
526+ HS->DefineHist1D (" DihZ" , " Z" , " " , NBINS, 0 , 1 );
527+ HS->DefineHist1D (" DihPhPerp" , " P_{h,T}" , " GeV" , NBINS, 1e-2 , 3 , true );
528+ HS->DefineHist1D (" DihTheta" , " #theta" , " " , NBINS, 0 , TMath::Pi ());
529+ HS->DefineHist1D (" DihPhiH" , " #phi_{h}" , " " , NBINS, -TMath::Pi (), TMath::Pi ());
530+ HS->DefineHist1D (" DihPhiR" , " #phi_{R}" , " " , NBINS, -TMath::Pi (), TMath::Pi ());
531+ HS->DefineHist1D (" DihPhiS" , " #phi_{S}" , " " , NBINS, -TMath::Pi (), TMath::Pi ());
516532 }
517533 // -- jet kinematics
518534#ifndef EXCLUDE_DELPHES
@@ -723,11 +739,19 @@ void Analysis::AddFinalState(TString finalStateN) {
723739 return ;
724740 };
725741 BinScheme (" finalState" )->BuildExternalBin (finalStateN,finalStateT);
726- activeFinalStates.insert (finalStateN);
742+ activeFinalStates.push_back (finalStateN);
727743 fmt::print (" AddFinalState: name='{}'\n title='{}'\n " ,finalStateN,finalStateT);
728744};
729745
730746
747+ // check if this final state bin has been added
748+ // ----------------------------------------------
749+ Bool_t Analysis::IsFinalState (TString finalState) {
750+ return std::find ( activeFinalStates.begin (), activeFinalStates.end (), finalState) != activeFinalStates.end ();
751+ >>>>>>> add most dihadron kinematics calculations
752+ };
753+
754+
731755// FillHistos methods: check bins and fill associated histograms
732756// - checks which bins the track/jet/etc. falls in
733757// - fills the histograms in the associated Histos objects
@@ -828,7 +852,14 @@ void Analysis::FillHistosTracks() {
828852void Analysis::FillHistosDihadrons () {
829853 HD->CheckBins ();
830854 HD->Payload ([this ](Histos *H){
831- H->FillHist1D (" dihMh" , dih->Mh , wTrack);
855+ H->FillHist1D (" DihMh" , dih->Mh , wTrack);
856+ H->FillHist1D (" DihMX" , dih->MX , wTrack);
857+ H->FillHist1D (" DihZ" , dih->Z , wTrack);
858+ H->FillHist1D (" DihPhPerp" , dih->PhPerp , wTrack);
859+ H->FillHist1D (" DihTheta" , dih->Theta , wTrack);
860+ H->FillHist1D (" DihPhiH" , dih->PhiH , wTrack);
861+ H->FillHist1D (" DihPhiR" , dih->PhiR , wTrack);
862+ H->FillHist1D (" DihPhiS" , dih->PhiS , wTrack);
832863 });
833864 HD->ExecuteOps (true );
834865}
0 commit comments