13if __name__ == 
"__main__":
 
   14    from basf2 
import conditions, find_file
 
   16    conditions.testing_payloads = [
 
   17        'localdb/database.txt' 
   20    variables = [
'p', 
'pt', 
'pz', 
'phi',
 
   21                 'daughter(0, p)', 
'daughter(0, pz)', 
'daughter(0, pt)', 
'daughter(0, phi)',
 
   22                 'daughter(1, p)', 
'daughter(1, pz)', 
'daughter(1, pt)', 
'daughter(1, phi)',
 
   23                 'daughter(2, p)', 
'daughter(2, pz)', 
'daughter(2, pt)', 
'daughter(2, phi)',
 
   24                 'chiProb', 
'dr', 
'dz', 
'dphi',
 
   25                 'daughter(0, dr)', 
'daughter(1, dr)', 
'daughter(0, dz)', 
'daughter(1, dz)',
 
   26                 'daughter(0, dphi)', 
'daughter(1, dphi)',
 
   27                 'daughter(0, chiProb)', 
'daughter(1, chiProb)', 
'daughter(2, chiProb)',
 
   28                 'daughter(0, kaonID)', 
'daughter(0, pionID)', 
'daughter(1, kaonID)', 
'daughter(1, pionID)',
 
   29                 'daughterAngle(0, 1)', 
'daughterAngle(0, 2)', 
'daughterAngle(1, 2)',
 
   30                 'daughter(2, daughter(0, E))', 
'daughter(2, daughter(1, E))',
 
   31                 'daughter(2, daughter(0, clusterTiming))', 
'daughter(2, daughter(1, clusterTiming))',
 
   32                 'daughter(2, daughter(0, clusterE9E25))', 
'daughter(2, daughter(1, clusterE9E25))',
 
   33                 'daughter(2, daughter(0, minC2TDist))', 
'daughter(2, daughter(1, minC2TDist))',
 
   36    variables2 = [
'p', 
'pt', 
'pz', 
'phi',
 
   37                  'chiProb', 
'dr', 
'dz', 
'dphi',
 
   38                  'daughter(2, chiProb)',
 
   39                  'daughter(0, kaonID)', 
'daughter(0, pionID)', 
'daughter(1, kaonID)', 
'daughter(1, pionID)',
 
   40                  'daughter(2, daughter(0, E))', 
'daughter(2, daughter(1, E))',
 
   41                  'daughter(2, daughter(0, clusterTiming))', 
'daughter(2, daughter(1, clusterTiming))',
 
   42                  'daughter(2, daughter(0, clusterE9E25))', 
'daughter(2, daughter(1, clusterE9E25))',
 
   43                  'daughter(2, daughter(0, minC2TDist))', 
'daughter(2, daughter(1, minC2TDist))']
 
   45    train_file = find_file(
"mva/train_D0toKpipi.root", 
"examples")
 
   46    training_data = basf2_mva.vector(train_file)
 
   48    general_options = basf2_mva.GeneralOptions()
 
   49    general_options.m_datafiles = training_data
 
   50    general_options.m_treename = 
"tree" 
   51    general_options.m_variables = basf2_mva.vector(*variables)
 
   53    general_options.m_spectators = basf2_mva.vector(
'daughterInvM(0, 1)', 
'daughterInvM(0, 2)')
 
   54    general_options.m_target_variable = 
"isSignal" 
   55    general_options.m_identifier = 
"fastbdt" 
   57    fastbdt_options = basf2_mva.FastBDTOptions()
 
   58    fastbdt_options.m_nTrees = 100
 
   59    fastbdt_options.m_nCuts = 10
 
   60    fastbdt_options.m_nLevels = 5
 
   61    fastbdt_options.m_shrinkage = 0.1
 
   62    fastbdt_options.m_randRatio = 0.5
 
   63    fastbdt_options.m_flatnessLoss = 10.0
 
   65    basf2_mva.teacher(general_options, fastbdt_options)
 
   67    general_options.m_identifier = 
"fastbdt_baseline" 
   68    fastbdt_options.m_flatnessLoss = -1.0
 
   69    basf2_mva.teacher(general_options, fastbdt_options)
 
   71    general_options.m_identifier = 
"fastbdt_drop_feature" 
   72    fastbdt_options.m_flatnessLoss = -1.0
 
   73    general_options.m_variables = basf2_mva.vector(*variables2)
 
   74    basf2_mva.teacher(general_options, fastbdt_options)