Skip to content

enable DTF to be run with same substitutePID but different constraitns

In case one wants to run different DTFs with a given mass swap but different constraints, the internal SubstitutePID created by DecayTreeFitter will have different names, but equal content. With this MR, an additional private member is added to SubstitutePID to differentiate them.

Example code used :

        substitutions = [ "[B+ ->  (J/psi(1S)             ->  e+         e-)  K+{{pi+}}]CC"] 
        DTF = DecayTreeFitter(input_particles=LINE_DATA, input_pvs= None ,  constrain_to_ownpv= False ,  fit_all_pvs = False,
                            name= prefix+"_{hash}",
                            mass_constraints= [ ] ,  
                            substitutions   = substitutions)
        DTF_HEAD = DecayTreeFitter(input_particles=LINE_DATA, input_pvs= None ,  constrain_to_ownpv= False ,  fit_all_pvs = False,
                            name= prefix+"_HEAD_{hash}",
                            mass_constraints= [ "B+" ] ,  
                            substitutions   = substitutions) 

gives an error , with this MR,

        substitutions = [ "[B+ ->  (J/psi(1S)             ->  e+         e-)  K+{{pi+}}]CC"] 
        DTF = DecayTreeFitter(input_particles=LINE_DATA, input_pvs= None ,  constrain_to_ownpv= False ,  fit_all_pvs = False,
                            name= prefix+"_{hash}",
                            mass_constraints= [ ] ,  
                            substitutions   = substitutions)
        DTF_HEAD = DecayTreeFitter(input_particles=LINE_DATA, input_pvs= None ,  constrain_to_ownpv= False ,  fit_all_pvs = False,
                            name= prefix+"_HEAD_{hash}",
                            mass_constraints= [ "B+" ] ,  
                            substitutions   = substitutions
                            substitutions_copyID= 1)

runs fine

Adding for the various swaps another DTF with same substitutions content, trigger error as it is now.

Edited by Renato Quagliani

Merge request reports