Пример #1
0
    def __init__(self):
        '''
        This class is meant as a base class for the FatJet studies
        You will not need to edit it for trying out things
        '''
        TrainData.__init__(self)

        #define truth:
        self.treename = "tree"
        self.undefTruth = ['']
        self.truthclasses = ['sig', 'bkg']
        self.referenceclass = 'sig'  ## used for pt reshaping
        self.registerBranches([])

        self.weightbranchX = 'H_pt'
        self.weightbranchY = 'H_mass'

        self.weight_binX = numpy.array([0, 3000], dtype=float)
        self.weight_binY = numpy.array([0, 3000], dtype=float)

        #this is only needed because the truth definitions are different from deepFlavour
        self.allbranchestoberead = []
        self.registerBranches(self.undefTruth)
        self.registerBranches(self.truthclasses)
        print("Branches read:", self.allbranchestoberead)
Пример #2
0
    def __init__(self):
        TrainData.__init__(self)

        self.treename = "clusters"  #input root tree name

        self.truthclasses = [
            'electron', 'muon', 'photon', 'pi0', 'neutral', 'charged'
        ]  #truth classes for classification

        self.weightbranchX = 'pt'  #needs to be specified
        self.weightbranchY = 'eta'  #needs to be specified

        self.referenceclass = 'flatten'
        self.weight_binX = numpy.array([0, 40000], dtype=float)
        self.weight_binY = numpy.array([-40000, 40000], dtype=float)

        self.addBranches(['pt', 'eta'])  #list of branches to be used

        self.channels = [
            'bin_x_1', 'bin_y_1', 'bin_z_1', 'bin_energy_1', 'bin_x_2',
            'bin_y_2', 'bin_z_2', 'bin_energy_2'
        ]

        self.addBranches(self.channels, 950)

        self.registerBranches(self.truthclasses)

        #call this at the end
        self.reduceTruth(None)
Пример #3
0
    def __init__(self):
        TrainData.__init__(self)

        self.treename="tree" #input root tree name
        
        self.truthclasses=[]#['isA','isB','isC'] #truth classes for classification
        self.regressiontargetclasses=['sigsum']
        
        self.weightbranchX='isA' #needs to be specified if weighter is used
        self.weightbranchY='isB' #needs to be specified if weighter is used
        
        #there is no need to resample/reweight
        self.weight=False
        self.remove=False
        #does not do anything in this configuration
        self.referenceclass='flatten'
        self.weight_binX = numpy.array([0,40000],dtype=float) 
        self.weight_binY = numpy.array([0,40000],dtype=float) 
        
        
        self.registerBranches(self.regressiontargetclasses) #list of branches to be used 
        
        self.registerBranches(self.truthclasses)
        
        
        #call this at the end
        self.reduceTruth(None)
Пример #4
0
    def __init__(self):
        import numpy
        TrainData.__init__(self)

        self.treename = "tree"

        self.undefTruth = ['']

        self.truthclasses = [
            'isGamma',
            'isElectron',
            'isPionCharged',
            'isNeutralPion',
        ]

        self.weightbranchX = 'true_energy'
        self.weightbranchY = 'seed_eta'

        #is already flat
        self.referenceclass = 'flatten'
        self.weight_binX = numpy.array([0, 0.1, 40000], dtype=float)
        self.weight_binY = numpy.array([-40000, 40000], dtype=float)

        self.registerBranches([
            'rechit_energy', 'rechit_eta', 'rechit_phi', 'rechit_layer',
            'nrechits', 'seed_eta', 'seed_phi', 'true_energy'
        ])

        self.regtruth = 'true_energy'

        self.regressiontargetclasses = ['E']

        self.registerBranches(self.truthclasses)

        self.reduceTruth(None)
Пример #5
0
    def __init__(self):
        import numpy
        TrainData.__init__(self)

        #setting DeepJet specific defaults
        self.treename = "deepntuplizer/tree"
        self.truthclasses = ['class1', 'class2']

        self.treename = "deepntuplizer/tree"
        self.referenceclass = 'class1'

        self.registerBranches(self.truthclasses)
        self.registerBranches(['x'])

        self.weightbranchX = 'x'
        self.weightbranchY = 'x'

        self.weight_binX = numpy.array([-1, 0.9, 2.0], dtype=float)

        self.weight_binY = numpy.array([-1, 0.9, 2.0], dtype=float)

        def reduceTruth(self, tuple_in):

            self.reducedtruthclasses = [
                'isB', 'isBB', 'isLeptB', 'isC', 'isUDS', 'isG'
            ]
            if tuple_in is not None:
                class1 = tuple_in['class1'].view(numpy.ndarray)

                class2 = tuple_in['class2'].view(numpy.ndarray)

                return numpy.vstack((class1, class2)).transpose()
Пример #6
0
    def __init__(self):
        TrainData.__init__(self)

        self.nPU = 200
        self.nfilespremix = 20
        self.eventsperround = 200
        self.always_use_test_minbias = False
Пример #7
0
    def __init__(self):
        TrainData.__init__(self)

        self.treename = "clusters"  #input root tree name

        self.truthclasses = [
            'electron', 'muon', 'photon', 'pi0', 'neutral', 'charged'
        ]  #truth classes for classification

        self.weightbranchX = 'cluster_pt'  #needs to be specified
        self.weightbranchY = 'cluster_eta'  #needs to be specified

        self.referenceclass = 'electron'
        self.weight_binX = np.array(
            [0, 3, 5, 10, 20, 40, 70, 100, 150, 200, 300, 500, 40000],
            dtype=float)
        self.weight_binY = np.array(
            [1.3, 1.5, 1.7, 1.9, 2.1, 2.3, 2.5, 2.7, 3.0], dtype=float)

        self.registerBranches(['cluster_pt',
                               'cluster_eta'])  #list of branches to be used
        self.registerBranches(self.truthclasses)

        #call this at the end
        self.reducedtruthclasses = ['egamma', 'muon', 'pi0', 'hadron']
Пример #8
0
 def __init__(self):
     import numpy
     TrainData.__init__(self)
     
     #setting DeepJet specific defaults
     self.treename="tree"
     self.undefTruth=[]
     self.referenceclass='isB'
     self.truthclasses=['isB','isC','isUDSG']
     
     
     #standard branches
     self.registerBranches(self.undefTruth)
     self.registerBranches(self.truthclasses)
     self.registerBranches(['jet_pt','jet_eta'])
     
     self.weightbranchX='jet_pt'
     self.weightbranchY='jet_eta'
     
     self.weight_binX = numpy.array([
             10,25,30,35,40,45,50,60,75,100,
             125,150,175,200,250,300,400,500,
             600,2000],dtype=float)
     
     self.weight_binY = numpy.array(
         [-2.5,-2.,-1.5,-1.,-0.5,0.5,1,1.5,2.,2.5],
         dtype=float
         )
     
          
     self.reduceTruth(None)
Пример #9
0
    def __init__(self):
        import numpy 
        TrainData.__init__(self)
        
        self.treename="events"
        
        self.undefTruth=['']
    
        self.truthclasses=[]
        
        self.remove=False
        self.weight=False
        
        self.weightbranchX='true_energy'
        self.weightbranchY='true_x'
        
        #is already flat
        self.referenceclass='flatten'
        self.weight_binX = numpy.array([0,0.1,40000],dtype=float) 
        self.weight_binY = numpy.array([-40000,40000],dtype=float) 
        
        
        
        
        self.regtruth='true_energy'

        self.regressiontargetclasses=['E']
        
        self.registerBranches([self.regtruth])
        
        self.reduceTruth(None)
        
        self.rebinx = 1
        self.rebiny = 1
        self.rebinz = 1
Пример #10
0
 def __init__(self):
     import numpy
     TrainData.__init__(self)
     
     #setting DeepJet specific defaults
     self.treename="tree"
     #self.undefTruth=['isUndefined']
     self.referenceclass='lep_isPromptId_Training'
     self.truthclasses=['lep_isPromptId_Training','lep_isNonPromptId_Training','lep_isFakeId_Training']
     
     
     #standard branches
     #self.registerBranches(self.undefTruth)
     self.registerBranches(self.truthclasses)
     self.registerBranches(['lep_pt','lep_eta'])
     
     self.weightbranchX='lep_pt'
     self.weightbranchY='lep_eta'
     
     self.weight_binX = numpy.array([
             5,7.5,10,12.5,15,17.5,20,25,30,35,40,45,50,60,75,100,
             125,150,175,200,250,300,400,500,
             600,2000],dtype=float)
     
     self.weight_binY = numpy.array(
         [-2.5,-2.,-1.5,-1.,-0.5,0.5,1,1.5,2.,2.5],
         dtype=float
         )
     
     
          
     self.reduceTruth(None)
    def __init__(self):
        '''
        This class is meant as a base class for the FatJet studies
        You will not need to edit it for trying out things
        '''
        TrainData.__init__(self)
        
        #define truth:
	self.treename = "deepntuplizer/tree"
        self.undefTruth=['isUndefined']
        self.truthclasses=['fj_isNonCC', 'fj_isCC', 'fj_isNonBB']
        self.referenceclass='fj_isNonCC' ## used for pt reshaping
        self.registerBranches(['fj_pt','fj_sdmass'])

        self.weightbranchX='fj_pt'
        self.weightbranchY='fj_sdmass'

        #self.weight_binX = numpy.array([
        #        300,2500],dtype=float)
	self.weight_binX = numpy.array([
                10,25,30,35,40,45,50,60,75,100,
                125,150,175,200,250,300,400,500,
                600,700, 800, 900, 1000, 1200, 1400, 1600, 1800, 2000],dtype=float)

        self.weight_binY = numpy.array(
            [40,200],
            dtype=float
            )

        #this is only needed because the truth definitions are different from deepFlavour
        self.allbranchestoberead=[]
        self.registerBranches(self.undefTruth)
        self.registerBranches(self.truthclasses)
        self.registerBranches(['fj_isBB', 'fj_isNonBB'])
        print("Branches read:", self.allbranchestoberead)
Пример #12
0
    def __init__(self):
        TrainData.__init__(self)

        self.description      = "DeepLepton training datastructure"
        self.truth_branches   = ['lep_isPromptId_Training','lep_isNonPromptId_Training','lep_isFakeId_Training']
        self.undefTruth       = []
        self.weightbranchX    = 'lep_pt'
        self.weightbranchY    = 'lep_eta'
        self.remove           = True
        self.referenceclass   = 'lep_isPromptId_Training' #'lep_isNonPromptId_Training'
        #setting DeepLepton specific defaults
        self.treename         = "tree"
        #self.undefTruth=['isUndefined']
        #self.red_classes      = ['cat_P', 'cat_NP', 'cat_F']
        #self.reduce_truth     = ['lep_isPromptId_Training', 'lep_isNonPromptId_Training', 'lep_isFakeId_Training']
        #self.class_weights    = [1.00, 1.00, 1.00]

        #self.weight_binX = np.array([
        #        5,7.5,10,12.5,15,17.5,20,25,30,35,40,45,50,60,75,100,
        #        125,150,175,200,250,300,400,500,
        #        600,2000],dtype=float)
        self.weight_binX = np.geomspace(3.5, 2000, 30)
        
        self.weight_binY = np.array(
            [-2.5,-2.,-1.5,-1.,-0.5,0.5,1,1.5,2.,2.5],
            dtype=float
            )

        self.global_branches = [
            'lep_pt', 'lep_eta', 'lep_phi',
            'lep_mediumId',
            'lep_miniPFRelIso_all',
            'lep_sip3d', 'lep_dxy', 'lep_dz',
            'lep_charge',
            'lep_dxyErr', 'lep_dzErr', 'lep_ip3d',
            'lep_jetPtRelv2', 'lep_jetRelIso',
            'lep_miniPFRelIso_chg', 'lep_mvaLowPt', 'lep_nStations', 'lep_nTrackerLayers', 'lep_pfRelIso03_all', 'lep_pfRelIso03_chg', 'lep_pfRelIso04_all', 'lep_ptErr',
            'lep_segmentComp', 'lep_tkRelIso', 'lep_tunepRelPt',
            ]

        self.pfCand_neutral_branches = ['pfCand_neutral_eta', 'pfCand_neutral_phi', 'pfCand_neutral_pt', 'pfCand_neutral_puppiWeight', 'pfCand_neutral_puppiWeightNoLep', 'pfCand_neutral_ptRel', 'pfCand_neutral_deltaR',]
        self.npfCand_neutral         = 10

        self.pfCand_charged_branches = ['pfCand_charged_d0', 'pfCand_charged_d0Err', 'pfCand_charged_dz', 'pfCand_charged_dzErr', 'pfCand_charged_eta', 'pfCand_charged_mass', 'pfCand_charged_phi', 'pfCand_charged_pt', 'pfCand_charged_puppiWeight', 'pfCand_charged_puppiWeightNoLep', 'pfCand_charged_trkChi2', 'pfCand_charged_vtxChi2', 'pfCand_charged_charge', 'pfCand_charged_lostInnerHits', 'pfCand_charged_pvAssocQuality', 'pfCand_charged_trkQuality', 'pfCand_charged_ptRel', 'pfCand_charged_deltaR',]
        self.npfCand_charged         = 80

        self.pfCand_photon_branches  = ['pfCand_photon_eta', 'pfCand_photon_phi', 'pfCand_photon_pt', 'pfCand_photon_puppiWeight', 'pfCand_photon_puppiWeightNoLep', 'pfCand_photon_ptRel', 'pfCand_photon_deltaR',]
        self.npfCand_photon          = 50

        self.pfCand_electron_branches = ['pfCand_electron_d0', 'pfCand_electron_d0Err', 'pfCand_electron_dz', 'pfCand_electron_dzErr', 'pfCand_electron_eta', 'pfCand_electron_mass', 'pfCand_electron_phi', 'pfCand_electron_pt', 'pfCand_electron_puppiWeight', 'pfCand_electron_puppiWeightNoLep', 'pfCand_electron_trkChi2', 'pfCand_electron_vtxChi2', 'pfCand_electron_charge', 'pfCand_electron_lostInnerHits', 'pfCand_electron_pvAssocQuality', 'pfCand_electron_trkQuality', 'pfCand_electron_ptRel', 'pfCand_electron_deltaR',]
        self.npfCand_electron         = 4

        self.pfCand_muon_branches = ['pfCand_muon_d0', 'pfCand_muon_d0Err', 'pfCand_muon_dz', 'pfCand_muon_dzErr', 'pfCand_muon_eta', 'pfCand_muon_mass', 'pfCand_muon_phi', 'pfCand_muon_pt', 'pfCand_muon_puppiWeight', 'pfCand_muon_puppiWeightNoLep', 'pfCand_muon_trkChi2', 'pfCand_muon_vtxChi2', 'pfCand_muon_charge', 'pfCand_muon_lostInnerHits', 'pfCand_muon_pvAssocQuality', 'pfCand_muon_trkQuality', 'pfCand_muon_ptRel', 'pfCand_muon_deltaR']
        self.npfCand_muon         = 6

        self.SV_branches = ['SV_dlen', 'SV_dlenSig', 'SV_dxy', 'SV_dxySig', 'SV_pAngle', 'SV_chi2', 'SV_eta', 'SV_mass', 'SV_ndof', 'SV_phi', 'SV_pt', 'SV_x', 'SV_y', 'SV_z', 'SV_ptRel', 'SV_deltaR',]
        self.nSV         = 10
Пример #13
0
    def __init__(self):
        import numpy
        TrainData.__init__(self)
        
        #setting DeepJet specific defaults
        self.treename="deepntuplizer/tree"
        self.truthclasses=['class1','class2']

        self.treename="deepntuplizer/tree"
        self.referenceclass='class1'
Пример #14
0
    def __init__(self):

        TrainData.__init__(self)

        self.description = "DeepCSV training datastructure"

        self.truth_branches = [
            'isB', 'isBB', 'isGBB', 'isLeptonicB', 'isLeptonicB_C', 'isC',
            'isGCC', 'isCC', 'isUD', 'isS', 'isG'
        ]
        self.undefTruth = ['isUndefined']
        self.weightbranchX = 'jet_pt'
        self.weightbranchY = 'jet_eta'
        self.remove = True
        self.referenceclass = 'isB'
        self.weight_binX = np.array([
            10, 25, 30, 35, 40, 45, 50, 60, 75, 100, 125, 150, 175, 200, 250,
            300, 400, 500, 600, 2000
        ],
                                    dtype=float)

        self.weight_binY = np.array(
            [-2.5, -2., -1.5, -1., -0.5, 0.5, 1, 1.5, 2., 2.5], dtype=float)

        self.global_branches = [
            'jet_pt', 'jet_eta', 'TagVarCSV_jetNSecondaryVertices',
            'TagVarCSV_trackSumJetEtRatio', 'TagVarCSV_trackSumJetDeltaR',
            'TagVarCSV_vertexCategory', 'TagVarCSV_trackSip2dValAboveCharm',
            'TagVarCSV_trackSip2dSigAboveCharm',
            'TagVarCSV_trackSip3dValAboveCharm',
            'TagVarCSV_trackSip3dSigAboveCharm',
            'TagVarCSV_jetNSelectedTracks', 'TagVarCSV_jetNTracksEtaRel'
        ]

        self.track_branches = [
            'TagVarCSVTrk_trackJetDistVal', 'TagVarCSVTrk_trackPtRel',
            'TagVarCSVTrk_trackDeltaR', 'TagVarCSVTrk_trackPtRatio',
            'TagVarCSVTrk_trackSip3dSig', 'TagVarCSVTrk_trackSip2dSig',
            'TagVarCSVTrk_trackDecayLenVal'
        ]
        self.n_track = 6

        self.eta_rel_branches = ['TagVarCSV_trackEtaRel']
        self.n_eta_rel = 4

        self.vtx_branches = [
            'TagVarCSV_vertexMass', 'TagVarCSV_vertexNTracks',
            'TagVarCSV_vertexEnergyRatio', 'TagVarCSV_vertexJetDeltaR',
            'TagVarCSV_flightDistance2dVal', 'TagVarCSV_flightDistance2dSig',
            'TagVarCSV_flightDistance3dVal', 'TagVarCSV_flightDistance3dSig'
        ]
        self.n_vtx = 1

        self.reduced_truth = ['isB', 'isBB', 'isC', 'isUDSG']
Пример #15
0
    def __init__(self):
        TrainData.__init__(self)

        #define truth:
        self.treename = "deepntuplizerCA8/tree"
        self.undefTruth = ['isUndefined']
        self.truthclasses = [
            'isB',
            'isBB',  #'isGBB',
            #'isLeptonicB','isLeptonicB_C',
            'isC',
            'isCC',  #'isGCC',
            'isUD',
            'isS',
            'isG',
            'isTauHTauH',
            'isTauHTauM',
            'isTauHTauE',
            #'isTauMTauM','isTauMTauE','isTauETauE',
            #'isTauH','isTauM','isTauE',
        ]

        self.registerBranches(self.truthclasses)
        self.registerBranches(self.undefTruth)

        self.referenceclass = 'isTauHTauH'  # 'flatten' or class name
        #self.referenceclass='flatten'
        #self.referenceclass='lowest'
        self.weightbranchX = 'jet_pt'
        self.weightbranchY = 'jet_eta'
        #self.weightbranchY='jet_mass'

        self.registerBranches([self.weightbranchX, self.weightbranchY])

        self.weight_binX = np.array([
            10, 25, 30, 35, 40, 45, 50, 60, 75, 100, 125, 150, 175, 200, 250,
            300, 400, 500, 600, 2000
        ],
                                    dtype=float)

        self.weight_binY = np.array(
            [-2.5, -2., -1.5, -1., -0.5, 0.5, 1, 1.5, 2., 2.5], dtype=float)

        #self.weight_binY = np.array([
        #        10,30,40,50,75,100,
        #        125,150,175,200,250,300,400,500,
        #        600,800,1000,1500,2000],dtype=float)

        self.weight = False
        self.remove = True
Пример #16
0
    def __init__(self):
        import numpy
        TrainData.__init__(self)

        #setting DeepJet specific defaults
        self.treename = "deepntuplizer/tree"
        self.undefTruth = ['isUndefined']
        self.referenceclass = 'isB'
        self.truthclasses = [
            'isB', 'isBB', 'isGBB', 'isLeptonicB', 'isLeptonicB_C', 'isC',
            'isCC', 'isGCC', 'isUD', 'isS', 'isG', 'isUndefined'
        ]

        self.branches = []
        self.reduceTruth(None)
Пример #17
0
    def __init__(self):
        '''
        This class is meant as a base class for the FatJet studies
        You will not need to edit it for trying out things
        '''
        TrainData.__init__(self)

        #define truth:
        self.treename = "deepntuplizer/tree"
        self.undefTruth = ['isUndefined']
        #self.truthclasses=['fj_isNonCC', 'fj_isCC', 'fj_isNonBB', 'fj_isQCD', 'fj_isH']
        #self.truthclasses=['fj_isCC', 'fj_isBB', 'fj_isQCD' ]
        #self.truthclasses=["label_H_bb", "label_H_cc", "label_QCD_bb",  "label_QCD_cc", "label_QCD_others"]
        self.truthclasses = ['fj_isNonCC', 'fj_isCC']
        #self.truthclasses=["fj_isCC", "fj_isNonCC"]
        #self.referenceclass='label_H_cc' ## used for pt reshaping
        self.referenceclass = 'lowest'  ## used for pt reshaping
        #self.referenceclass='flatten' ## used for pt reshaping
        self.registerBranches(['fj_pt', 'fj_sdmass'])

        self.weightbranchX = 'fj_pt'
        self.weightbranchY = 'fj_sdmass'

        #self.weight_binX = numpy.array([
        #        300,1000,2500],dtype=float)
        self.weight_binX = numpy.array(
            #[300,400,500,600,700, 800, 900, 1000,
            #1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000]
            range(300, 1000, 50) + range(1000, 2600, 200),
            dtype=float)

        self.weight_binY = numpy.array(
            [40, 200],
            #range(40,200,40),
            dtype=float)
        self.weight = True
        self.remove = False

        #this is only needed because the truth definitions are different from deepFlavour
        self.allbranchestoberead = []
        self.registerBranches(self.undefTruth)
        self.registerBranches(self.truthclasses)
        self.registerBranches([
            'fj_isBB', 'fj_isNonBB', 'fj_isNonCC', 'fj_isCC', 'fj_isQCD',
            'fj_isH', "label_H_bb", "label_H_cc", "label_QCD_bb",
            "label_QCD_cc", "label_QCD_others"
        ])
        print("Branches read:", self.allbranchestoberead)
Пример #18
0
    def __init__(self):
        '''
        This class is meant as a base class for the FatJet studies
        You will not need to edit it for trying out things
        '''
        TrainData.__init__(self)

        #define truth:
        self.treename = "deepntuplizer/tree"
        self.undefTruth = ['isUndefined']
        self.truthclasses = [
            "fj_isH", "fj_isCC", "fj_isBB", "fj_isNonCC", "fj_isNonBB",
            "fj_isZ", "fj_isQCD", "sample_isQCD"
        ]

        self.referenceclass = 'lowest'  ## used for pt reshaping options=['lowest', 'flatten', '<class_name>']
        self.weightbranchX = 'fj_pt'
        self.weightbranchY = 'fj_sdmass'

        self.weight_binX = numpy.array(range(300, 1000, 50) +
                                       range(1000, 2600, 200),
                                       dtype=float)

        self.weight_binY = numpy.array([40, 200], dtype=float)

        self.weight = True
        self.remove = False
        self.removeUnderOverflow = True

        #this is only needed because the truth definitions are different from deepFlavour
        self.allbranchestoberead = []
        self.registerBranches(self.undefTruth)
        self.registerBranches(self.truthclasses)
        self.registerBranches(['fj_pt', 'fj_sdmass'])
        self.registerBranches([
            "label_H_bb",
            "label_H_cc",
            "label_QCD_bb",
            "label_QCD_cc",
            "label_QCD_others",
            "label_Z_bb",
            "label_Z_cc",
        ])
        print("Branches read:", self.allbranchestoberead)
Пример #19
0
    def __init__(self):
        TrainData.__init__(self)

        self.treename = "Delphes"  #input root tree name

        self.feat_branch = "rechit_features"
        self.truth_branch = "rechit_simcluster_fractions"
        # this needs to be adapted!!
        self.max_rechits = 3500

        #this should be fine
        self.n_features = 10
        self.n_simcluster = 20

        self.regressiontargetclasses = [
            str(i) for i in range(self.n_simcluster)
        ]

        self.other_useless_inits()
Пример #20
0
    def __init__(self):
        import numpy
        TrainData.__init__(self)

        self.treename = "deepntuplizer/tree"

        self.weightbranchX = 'true_energy'
        self.weightbranchY = 'true_eta'

        self.referenceclass = 'flatten'
        self.weight_binX = numpy.array([
            0, 1, 2, 3, 4, 5, 7.5, 10, 20, 30, 40, 50, 60, 80, 100, 120, 140,
            160, 200, 240, 300, 400
        ],
                                       dtype=float)

        self.registerBranches([
            'rechit_energy', 'rechit_eta', 'rechit_phi', 'rechit_time',
            'rechit_layer', 'nrechits', 'seed_eta', 'seed_phi', 'true_energy',
            'true_eta', 'true_energyfraction'
        ])
    def __init__(self):
        TrainData.__init__(self)

        self.description = "DeepLepton training datastructure"
        # Define the four truth labels, should be consistent with
        # Network architecture, i.e. the output layer.
        self.truth_branches = [
            'lep_isPromptId_Training', 'lep_isNonPromptId_Training',
            'lep_isFakeId_Training', 'lep_isFromSUSYandHF_Training'
        ]
        #  'lep_isFromSUSY_Training',
        #  'lep_isFromSUSYHF_Training',]
        self.undefTruth = []
        # The Weighter can "weight" two lepton features.
        # Here we only "weight" the dxy feature by making only one bin in eta
        # "weight" means to throw away leptons from the non reference class s.t.
        # weightbranchX/Y gets similarly distributed as the reference class
        self.weightbranchX = 'lep_eta'
        self.weightbranchY = 'lep_dxy'
        # enables or disables (False) Weighter
        self.remove = True
        # Define the reference class
        self.referenceclass = 'lep_isFromSUSYandHF_Training'
        # setting DeepLepton specific defaults
        self.treename = "tree"

        # make one huge bin for eta
        self.weight_binX = np.array([-30, 30])
        # make the extension large enough to cover the whole feature range of the
        # leptons in the non-reference class
        self.weight_binY = np.linspace(start=-50,
                                       stop=50,
                                       num=50,
                                       endpoint=True,
                                       dtype=float)

        # if training not flat in pt, eta one could remove the
        # feature from the training as well
        self.global_branches = [
            'lep_pt',  # 0 
            'lep_eta',  # 1
            'lep_phi',  # 2
            'lep_mediumId',  # 3
            'lep_miniPFRelIso_all',  # 4
            'lep_sip3d',  # 5
            'lep_dxy',  # 6
            'lep_dz',
            'lep_charge',
            'lep_dxyErr',
            'lep_dzErr',
            'lep_ip3d',
            'lep_jetPtRelv2',
            'lep_jetRelIso',
            'lep_miniPFRelIso_chg',
            'lep_mvaLowPt',
            'lep_nStations',
            'lep_nTrackerLayers',
            'lep_pfRelIso03_all',
            'lep_pfRelIso03_chg',
            'lep_pfRelIso04_all',
            'lep_ptErr',
            'lep_segmentComp',
            'lep_tkRelIso',
            'lep_tunepRelPt',
        ]

        self.pfCand_neutral_branches = [
            'pfCand_neutral_eta',
            'pfCand_neutral_phi',
            'pfCand_neutral_pt',
            'pfCand_neutral_puppiWeight',
            'pfCand_neutral_puppiWeightNoLep',
            'pfCand_neutral_ptRel',
            'pfCand_neutral_deltaR',
        ]
        self.npfCand_neutral = 10

        self.pfCand_charged_branches = [
            'pfCand_charged_d0',
            'pfCand_charged_d0Err',
            'pfCand_charged_dz',
            'pfCand_charged_dzErr',
            'pfCand_charged_eta',
            'pfCand_charged_mass',
            'pfCand_charged_phi',
            'pfCand_charged_pt',
            'pfCand_charged_puppiWeight',
            'pfCand_charged_puppiWeightNoLep',
            'pfCand_charged_trkChi2',
            'pfCand_charged_vtxChi2',
            'pfCand_charged_charge',
            'pfCand_charged_lostInnerHits',
            'pfCand_charged_pvAssocQuality',
            'pfCand_charged_trkQuality',
            'pfCand_charged_ptRel',
            'pfCand_charged_deltaR',
        ]
        self.npfCand_charged = 80

        self.pfCand_photon_branches = [
            'pfCand_photon_eta',
            'pfCand_photon_phi',
            'pfCand_photon_pt',
            'pfCand_photon_puppiWeight',
            'pfCand_photon_puppiWeightNoLep',
            'pfCand_photon_ptRel',
            'pfCand_photon_deltaR',
        ]
        self.npfCand_photon = 50

        self.pfCand_electron_branches = [
            'pfCand_electron_d0',
            'pfCand_electron_d0Err',
            'pfCand_electron_dz',
            'pfCand_electron_dzErr',
            'pfCand_electron_eta',
            'pfCand_electron_mass',
            'pfCand_electron_phi',
            'pfCand_electron_pt',
            'pfCand_electron_puppiWeight',
            'pfCand_electron_puppiWeightNoLep',
            'pfCand_electron_trkChi2',
            'pfCand_electron_vtxChi2',
            'pfCand_electron_charge',
            'pfCand_electron_lostInnerHits',
            'pfCand_electron_pvAssocQuality',
            'pfCand_electron_trkQuality',
            'pfCand_electron_ptRel',
            'pfCand_electron_deltaR',
        ]
        self.npfCand_electron = 4

        self.pfCand_muon_branches = [
            'pfCand_muon_d0', 'pfCand_muon_d0Err', 'pfCand_muon_dz',
            'pfCand_muon_dzErr', 'pfCand_muon_eta', 'pfCand_muon_mass',
            'pfCand_muon_phi', 'pfCand_muon_pt', 'pfCand_muon_puppiWeight',
            'pfCand_muon_puppiWeightNoLep', 'pfCand_muon_trkChi2',
            'pfCand_muon_vtxChi2', 'pfCand_muon_charge',
            'pfCand_muon_lostInnerHits', 'pfCand_muon_pvAssocQuality',
            'pfCand_muon_trkQuality', 'pfCand_muon_ptRel', 'pfCand_muon_deltaR'
        ]
        self.npfCand_muon = 6

        self.SV_branches = [
            'SV_dlen',
            'SV_dlenSig',
            'SV_dxy',
            'SV_dxySig',
            'SV_pAngle',
            'SV_chi2',
            'SV_eta',
            'SV_mass',
            'SV_ndof',
            'SV_phi',
            'SV_pt',
            'SV_x',
            'SV_y',
            'SV_z',
            'SV_ptRel',
            'SV_deltaR',
        ]
        self.nSV = 10
Пример #22
0
 def __init__(self):
     self.splitIdx = None
     TrainData.__init__(self)
Пример #23
0
 def __init__(self):
     TrainData.__init__(self)
Пример #24
0
 def __init__(self):
     TrainData.__init__(self)
     # no class member is mandatory
     self.description = "This is a TrainData example file. Having a description string is not a bad idea (but not mandatory), e.g. for describing the array structure."
     #define any other (configuration) members that seem useful
     self.someusefulemember = "something you might need later"
Пример #25
0
 def __init__(self):
     TrainData.__init__(self)
     self.npart = 9
Пример #26
0
    def __init__(self):

        TrainData.__init__(self)

        self.truth_branches = [
            'isB', 'isBB', 'isGBB', 'isLeptonicB', 'isLeptonicB_C', 'isC',
            'isGCC', 'isCC', 'isUD', 'isS', 'isG'
        ]
        self.undefTruth = ['isUndefined']
        self.weightbranchX = 'jet_pt'
        self.weightbranchY = 'jet_eta'
        self.remove = True
        self.referenceclass = 'isB'  #Choose 'flatten' for flat or one of the truth branch for ref
        self.red_classes = ['cat_B', 'cat_C', 'cat_UDS',
                            'cat_G']  #Reduced classes (flat only)
        self.truth_red_fusion = [
            ('isB', 'isBB', 'isGBB', 'isLeptonicB', 'isLeptonicB_C'),
            ('isC', 'isGCC', 'isCC'), ('isUD', 'isS'), ('isG')
        ]  #Indicate here how you are making the fusion of your truth branches to the reduced classes for the flat reweighting
        self.class_weights = [1.00, 1.00, 2.50, 5.00
                              ]  #Ratio between our reduced classes (flat only)
        self.weight_binX = np.array([
            10, 25, 30, 35, 40, 45, 50, 60, 75, 100, 125, 150, 175, 200, 250,
            300, 400, 500, 600, 2000
        ],
                                    dtype=float)

        self.weight_binY = np.array(
            [-2.5, -2., -1.5, -1., -0.5, 0.5, 1, 1.5, 2., 2.5], dtype=float)

        self.global_branches = [
            'jet_pt', 'jet_eta', 'nCpfcand', 'nNpfcand', 'nsv', 'npv',
            'TagVarCSV_trackSumJetEtRatio', 'TagVarCSV_trackSumJetDeltaR',
            'TagVarCSV_vertexCategory', 'TagVarCSV_trackSip2dValAboveCharm',
            'TagVarCSV_trackSip2dSigAboveCharm',
            'TagVarCSV_trackSip3dValAboveCharm',
            'TagVarCSV_trackSip3dSigAboveCharm',
            'TagVarCSV_jetNSelectedTracks', 'TagVarCSV_jetNTracksEtaRel'
        ]

        self.cpf_branches = [
            'Cpfcan_BtagPf_trackEtaRel', 'Cpfcan_BtagPf_trackPtRel',
            'Cpfcan_BtagPf_trackPPar', 'Cpfcan_BtagPf_trackDeltaR',
            'Cpfcan_BtagPf_trackPParRatio', 'Cpfcan_BtagPf_trackSip2dVal',
            'Cpfcan_BtagPf_trackSip2dSig', 'Cpfcan_BtagPf_trackSip3dVal',
            'Cpfcan_BtagPf_trackSip3dSig', 'Cpfcan_BtagPf_trackJetDistVal',
            'Cpfcan_ptrel', 'Cpfcan_drminsv', 'Cpfcan_VTX_ass',
            'Cpfcan_puppiw', 'Cpfcan_chi2', 'Cpfcan_quality'
        ]
        self.n_cpf = 25

        self.npf_branches = [
            'Npfcan_ptrel', 'Npfcan_deltaR', 'Npfcan_isGamma',
            'Npfcan_HadFrac', 'Npfcan_drminsv', 'Npfcan_puppiw'
        ]
        self.n_npf = 25

        self.vtx_branches = [
            'sv_pt',
            'sv_deltaR',
            'sv_mass',
            'sv_ntracks',
            'sv_chi2',
            'sv_normchi2',
            'sv_dxy',
            'sv_dxysig',
            'sv_d3d',
            'sv_d3dsig',
            'sv_costhetasvpv',
            'sv_enratio',
        ]

        self.n_vtx = 4

        self.reduced_truth = [
            'isB', 'isBB', 'isLeptonicB', 'isC', 'isUDS', 'isG'
        ]
Пример #27
0
    def __init__(self):

        TrainData.__init__(self)

        self.description = "DeepCSV training datastructure"

        self.truth_branches = [
            'isB', 'isBB', 'isGBB', 'isLeptonicB', 'isLeptonicB_C', 'isC',
            'isGCC', 'isCC', 'isUD', 'isS', 'isG'
        ]
        self.undefTruth = ['isUndefined']
        self.weightbranchX = 'jet_pt'
        self.weightbranchY = 'jet_eta'
        self.remove = True
        self.referenceclass = 'isB'  #Choose 'flatten' for flat or one of the truth branch for ref
        self.red_classes = ['cat_B', 'cat_C', 'cat_UDS',
                            'cat_G']  #Reduced classes (flat only)
        self.truth_red_fusion = [
            ('isB', 'isBB', 'isGBB', 'isLeptonicB', 'isLeptonicB_C'),
            ('isC', 'isGCC', 'isCC'), ('isUD', 'isS'), ('isG')
        ]  #Indicate here how you are making the fusion of your truth branches to the reduced classes for the flat reweighting
        self.class_weights = [1.00, 1.00, 2.50, 5.00
                              ]  #Ratio between our reduced classes (flat only)
        self.weight_binX = np.array([
            10, 25, 30, 35, 40, 45, 50, 60, 75, 100, 125, 150, 175, 200, 250,
            300, 400, 500, 600, 2000
        ],
                                    dtype=float)

        self.weight_binY = np.array(
            [-2.5, -2., -1.5, -1., -0.5, 0.5, 1, 1.5, 2., 2.5], dtype=float)

        self.global_branches = [
            'jet_pt', 'jet_eta', 'TagVarCSV_jetNSecondaryVertices',
            'TagVarCSV_trackSumJetEtRatio', 'TagVarCSV_trackSumJetDeltaR',
            'TagVarCSV_vertexCategory', 'TagVarCSV_trackSip2dValAboveCharm',
            'TagVarCSV_trackSip2dSigAboveCharm',
            'TagVarCSV_trackSip3dValAboveCharm',
            'TagVarCSV_trackSip3dSigAboveCharm',
            'TagVarCSV_jetNSelectedTracks', 'TagVarCSV_jetNTracksEtaRel'
        ]

        self.track_branches = [
            'TagVarCSVTrk_trackJetDistVal', 'TagVarCSVTrk_trackPtRel',
            'TagVarCSVTrk_trackDeltaR', 'TagVarCSVTrk_trackPtRatio',
            'TagVarCSVTrk_trackSip3dSig', 'TagVarCSVTrk_trackSip2dSig',
            'TagVarCSVTrk_trackDecayLenVal'
        ]
        self.n_track = 6

        self.eta_rel_branches = ['TagVarCSV_trackEtaRel']
        self.n_eta_rel = 4

        self.vtx_branches = [
            'TagVarCSV_vertexMass', 'TagVarCSV_vertexNTracks',
            'TagVarCSV_vertexEnergyRatio', 'TagVarCSV_vertexJetDeltaR',
            'TagVarCSV_flightDistance2dVal', 'TagVarCSV_flightDistance2dSig',
            'TagVarCSV_flightDistance3dVal', 'TagVarCSV_flightDistance3dSig'
        ]
        self.n_vtx = 1

        self.reduced_truth = ['isB', 'isBB', 'isC', 'isUDSG']
Пример #28
0
    def __init__(self):
        TrainData.__init__(self)

        self.treename = "tree"  #input root tree name

        self.truthclasses = ['isTau',
                             'isNoTau']  #truth classes for classification

        self.weightbranchX = 'recTau_pt'  #needs to be specified
        self.weightbranchY = 'recTau_eta'  #needs to be specified

        self.referenceclass = 'isTau'
        #this removes everything that is not a recTau, which has pt>0, and eta!=0
        self.weight_binX = numpy.array([
            0, 5, 20, 22.5, 25, 27.5, 30, 35, 40, 45, 50, 60, 70, 80, 100, 150,
            200, 250, 500, 1e5
        ],
                                       dtype=float)
        self.weight_binY = numpy.array(
            [-4, -3, -2, -1, -1e-4, 0, 1e-4, 1, 2, 3, 4], dtype=float)

        #globals
        self.addBranches([
            #'isRecTau',
            'numPileUp',
            'recTauDecayMode',
            'recTau_pt',
            'recTau_eta',
            'recTau_phi',
            'recTau_M',
            'recTauVtxZ',
            'recImpactParamPCA_x',
            'recImpactParamPCA_y',
            'recImpactParamPCA_z',
            'recImpactParam',
            'recImpactParamSign',
            'recImpactParam3D',
            'recImpactParamSign3D',
            'hasRecDecayVertex',
            'recDecayDist_x',
            'recDecayDist_y',
            'recDecayDist_z',
            'recDecayDistSign',
            'recTauPtWeightedDetaStrip',
            'recTauPtWeightedDphiStrip',
            'recTauPtWeightedDrSignal',
            'recTauPtWeightedDrIsolation',
            'recTauNphoton',
            'recTauEratio',
            'recTauLeadingTrackChi2',
            'recTauNphotonSignal',
            'recTauNphotonIso',
            'recJet_pt',
            'recJet_eta',
            'recJet_mass',
            'recJetLooseId',
            'nCpfcan',
            'nNpfcand',
        ])

        self.addBranches([
            'Cpfcan_pt',
            'Cpfcan_eta',
            'Cpfcan_ptrel',
            'Cpfcan_erel',
            'Cpfcan_deltaR',
            'Cpfcan_puppiw',
            'Cpfcan_VTX_ass',
            'Cpfcan_fromPV',
            'Cpfcan_vertex_rho',
            'Cpfcan_vertex_phirel',
            'Cpfcan_vertex_etarel',
            'Cpfcan_dz',
            'Cpfcan_dxy',
            'Cpfcan_dxyerrinv',
            'Cpfcan_dxysig',
            'Cpfcan_BtagPf_trackMomentum',
            'Cpfcan_BtagPf_trackEtaRel',
            'Cpfcan_BtagPf_trackPtRel',
            'Cpfcan_BtagPf_trackPPar',
            'Cpfcan_BtagPf_trackDeltaR',
            'Cpfcan_BtagPf_trackPtRatio',
            'Cpfcan_BtagPf_trackPParRatio',
            'Cpfcan_BtagPf_trackSip3dVal',
            'Cpfcan_BtagPf_trackSip3dSig',
            'Cpfcan_BtagPf_trackSip2dVal',
            'Cpfcan_BtagPf_trackSip2dSig',
            'Cpfcan_BtagPf_trackJetDistVal',
            'Cpfcan_isMu',
            'Cpfcan_isEl',
            'Cpfcan_pdgID',
            'Cpfcan_charge',
            'Cpfcan_lostInnerHits',
            'Cpfcan_numberOfPixelHits',
            'Cpfcan_chi2',
            'Cpfcan_quality',
        ], 20)

        self.addBranches([
            'Npfcan_pt',
            'Npfcan_eta',
            'Npfcan_ptrel',
            'Npfcan_erel',
            'Npfcan_puppiw',
            'Npfcan_phirel',
            'Npfcan_etarel',
            'Npfcan_deltaR',
            'Npfcan_isGamma',
            'Npfcan_HadFrac',
        ], 40)

        self.addBranches(['recTau_pt', 'recJet_pt'])

        self.regtruth = 'genTau_pt'

        self.regressiontargetclasses = ['pt']

        self.registerBranches(['genTau_pt'])  #list of branches to be used

        self.registerBranches(self.truthclasses)

        #call this at the end
        self.reduceTruth(None)
Пример #29
0
 def __init__(self):
     import numpy
     TrainData.__init__(self)
Пример #30
0
    def __init__(self):
        TrainData.__init__(self)

        self.rebinx = 1
        self.rebiny = 1
        self.rebinz = 1