enable DTF to be run with same substitutePID but different constraitns
requested to merge rquaglia-substitutePIDCopyID-toEnableDTFRunningDifferentDTFsWithSameSubsID into 2024-patches
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