@@ -250,6 +250,7 @@ struct AnalysisEventSelection {
250250 OutputObj<THashList> fOutputList {" output" };
251251 OutputObj<TList> fStatsList {" Statistics" };
252252 Configurable<std::string> fConfigMixingVariables {" cfgMixingVars" , " " , " Mixing configs separated by a comma, default no mixing" };
253+ Configurable<std::string> fConfigMixingVariablesJson {" cfgMixingVarsJSON" , " " , " Mixing configs in JSON format" };
253254 Configurable<std::string> fConfigEventCuts {" cfgEventCuts" , " eventStandard" , " Event selection" };
254255 Configurable<std::string> fConfigEventCutsJSON {" cfgEventCutsJSON" , " " , " Additional event cuts specified in JSON format" };
255256 Configurable<bool > fConfigQA {" cfgQA" , false , " If true, fill QA histograms" };
@@ -368,12 +369,18 @@ struct AnalysisEventSelection {
368369 fStatsList ->AddAt (histZorroSel, kStatsZorroSel );
369370
370371 TString mixVarsString = fConfigMixingVariables .value ;
372+ TString mixVarsJsonString = fConfigMixingVariablesJson .value ;
371373 std::unique_ptr<TObjArray> objArray (mixVarsString.Tokenize (" ," ));
372- if (objArray->GetEntries () > 0 ) {
374+ if (objArray->GetEntries () > 0 || mixVarsJsonString != " " ) {
373375 fMixHandler = new MixingHandler (" mixingHandler" , " mixing handler" );
374376 fMixHandler ->Init ();
375- for (int iVar = 0 ; iVar < objArray->GetEntries (); ++iVar) {
376- dqmixing::SetUpMixing (fMixHandler , objArray->At (iVar)->GetName ());
377+ if (objArray->GetEntries () > 0 ) {
378+ for (int iVar = 0 ; iVar < objArray->GetEntries (); ++iVar) {
379+ dqmixing::SetUpMixing (fMixHandler , objArray->At (iVar)->GetName ());
380+ }
381+ }
382+ if (mixVarsJsonString != " " ) {
383+ dqmixing::SetUpMixingFromJSON (fMixHandler , mixVarsJsonString.Data ());
377384 }
378385 }
379386
0 commit comments