class PartonBlock((Parton + MatchedObject).prefix('parton1_') + (Parton + MatchedObject).prefix('parton2_')): dEta_partons = FloatCol(default=-1) dR_partons = FloatCol() dR_parton_tau = FloatCol() parton_beta = Vector3 @classmethod def set(cls, tree, parton1, parton2): # TODO: UPDATE # sort by eta parton1, parton2 = sorted([parton1, parton2], key=lambda parton: parton.fourvect.Eta()) parton1_fourvect = parton1.fourvect parton2_fourvect = parton2.fourvect tree.mass_true_quark1_quark2 = (parton1_fourvect + parton2_fourvect).M() tree.parton1_fourvect.copy_from(parton1_fourvect) tree.parton2_fourvect.copy_from(parton2_fourvect) beta = (parton1_fourvect + parton2_fourvect).BoostVector() tree.parton_beta.copy_from(beta) parton1_fourvect.Boost(beta * -1) parton2_fourvect.Boost(beta * -1) tree.parton1_fourvect_boosted.copy_from(parton1_fourvect) tree.parton2_fourvect_boosted.copy_from(parton2_fourvect) tree.parton1_pdgId = parton1.pdgId tree.parton2_pdgId = parton2.pdgId
class EmbeddingModel(TreeModel): # embedding corrections embedding_reco_unfold = FloatCol(default=1.) embedding_trigger_weight = FloatCol(default=1.) embedding_dimuon_mass = FloatCol() embedding_isolation = IntCol() embedding_spin_weight = FloatCol(default=1.)
class TrueTau(FourMomentum + FourMomentum.prefix('full_')): nProng = IntCol(default=-1111) nPi0 = IntCol(default=-1111) charge = IntCol() flavor = CharCol() pdgId = IntCol(default=-1111) index = IntCol() eta_centrality = FloatCol() collinear_momentum_fraction= FloatCol() @classmethod def set_full(cls, this, other): if isinstance(other, TLorentzVector): vect = other else: vect = other.fourvect this.full_pt = vect.Pt() this.full_p = vect.P() this.full_et = vect.Et() this.full_e = vect.E() this.full_m = vect.M() with ignore_warning: this.full_phi = vect.Phi() this.full_eta = vect.Eta()
class Event(TreeModel): data = FloatCol() forecast = FloatCol() #FloatArrayCol(mulmax) year = IntCol() month = IntCol() day = IntCol() hour = IntCol()
class TrueJetBlock(TrueJet.prefix('jet1_') + TrueJet.prefix('jet2_')): dEta_jet1_jet2 = FloatCol(default = -9999) eta_product_jets = FloatCol(default = -9999) eta_product_jets_boosted = FloatCol(default = -9999) mass_jet1_jet2 = FloatCol(default = -9999) jet_beta = Vector3 numJets = IntCol() nonisolatedjet=IntCol() #num_true_jets_no_overlap =IntCol() @classmethod def set(cls, tree, jet1, jet2): if jet1 is not None: tree.jet1.index = jet1.index FourMomentum.set(tree.jet1, jet1) if jet2 is not None: tree.jet2.index = jet2.index FourMomentum.set(tree.jet2, jet2) tree.dEta_jet1_jet2 = abs(jet1.eta - jet2.eta) tree.eta_product_jets = jet1.eta * jet2.eta tree.eta_product_jets_boosted = (jet1.fourvect_boosted.Eta() * jet2.fourvect_boosted.Eta()) tree.mass_jet1_jet2 = (jet1.fourvect + jet2.fourvect).M()
class Event(TreeModel): s = CharCol() string = CharArrayCol(5) x = FloatCol() y = FloatCol() z = FloatCol() f = FloatArrayCol(5) i = IntCol()
class Track(FourMomentum): d0 = FloatCol(default=-1111.) z0 = FloatCol(default=-1111.) nBLHits = IntCol(default=-1111) nPixHits = IntCol(default=-1111) nSCTHits = IntCol(default=-1111) nTRTHits = IntCol(default=-1111) nHits = IntCol(default=-1111)
class OpDet(TreeModel): eventid = IntCol() id = IntCol() NTDC = IntCol() NS_PER_TDC = FloatCol() adc = FloatArrayCol(GPUDaqUBooNE.NTDC) q = FloatCol() t = FloatCol()
class RecoTau(FourMomentum + CaloTau + TrackTau + CaloTrackTau + ClusterBasedTau): index = IntCol(default=-1) BDTloose = FloatCol(default=-1111.) BDTmedium = FloatCol(default=-1111.) BDTtight = FloatCol(default=-1111.) index_matched_true = IntCol(default=-1) index_matched_EF = IntCol(default=-1) index_matched_L1 = IntCol(default=-1)
class FourMomentum(TreeModel): pt = FloatCol() et = FloatCol() eta = FloatCol(default=-1111) phi = FloatCol(default=-1111) m = FloatCol() @classmethod def set(cls, this, other): if isinstance(other, TLorentzVector): this.pt = other.Pt() this.p = other.P() this.et = other.Et() this.e = other.E() this.m = other.M() with ignore_warning: this.phi = other.Phi() this.eta = other.Eta() class Met(FourMomentum): met_et=FloatCol() met_etx=FloatCol() met_ety=FloatCol() met_phi=FloatCol() met_sumet=FloatCol() @classmethod def set(cls, this,other): this.met_et=other.true_met_et this.met_etx=other.true_met_etx this.met_ety=other.true_met_ety this.met_phi=other.true_met_phi this.met_sumet=other.true_met_sumet class Tau(FourMomentum + FourMomentum.prefix('full_')): true_tau_0_decay_mode = 6 true_tau_0_n_charged = 1 true_tau_0_n_charged_pion = 0 true_tau_0_n_neutral = 0 true_tau_0_n_neutral_pion = 0 @classmethod def set_full(cls, this, other): if isinstance(other, TLorentzVector): vect = other else: vect = other.fourvect this.full_pt = vect.Pt() this.full_p = vect.P() this.full_et = vect.Et() this.full_e = vect.E() this.full_m = vect.M() with ignore_warning: this.full_phi = vect.Phi() this.full_eta = vect.Eta()
class Event(TreeModel): s = CharCol() string = CharArrayCol(5) x = FloatCol() y = FloatCol() z = FloatCol() f = FloatArrayCol(5) num_vals = IntCol() # variable-length array vals = FloatArrayCol(5, length_name='num_vals')
class Met(TreeModel): et = FloatCol(default=-1111) phi = FloatCol(default=-1111) etx = FloatCol(default=-1111) ety = FloatCol(default=-1111) @classmethod def set(cls, this, other): this.et = other.Mod() this.phi = other.Phi() this.etx = other.X() this.ety = other.Y()
class Met(FourMomentum): met_et=FloatCol() met_etx=FloatCol() met_ety=FloatCol() met_phi=FloatCol() met_sumet=FloatCol() @classmethod def set(cls, this,other): this.met_et=other.true_met_et this.met_etx=other.true_met_etx this.met_ety=other.true_met_ety this.met_phi=other.true_met_phi this.met_sumet=other.true_met_sumet
class Event(TreeModel): W = FloatCol() Q2 = FloatCol() tp = FloatCol() t = FloatCol() asy = FloatCol() asysfi = FloatCol() asy2fi = FloatCol() asyfpfs = FloatCol() asy3f = FloatCol()
class CaloTrackTau(TreeModel): EMPOverTrkSysP = FloatCol(-1111.) ChPiEMEOverCaloEME = FloatCol(-1111.) EtOverLeadTrackPt = FloatCol(-1111.) corrFTrk = FloatCol(-1111.) trkAvgDist = FloatCol(-1111.) @classmethod def set(cls, this, other): this.EMPOverTrkSysP = other.calcVars_EMPOverTrkSysP this.ChPiEMEOverCaloEME = other.calcVars_ChPiEMEOverCaloEME this.corrFTrk = other.calcVars_corrFTrk this.EtOverLeadTrackPt = 1. / this.corrFTrk this.trkAvgDist = other.seedCalo_trkAvgDist
class EventModel(TreeModel): runnumber = IntCol() evtnumber = IntCol() weight = FloatCol() hadhad = IntCol() # 1 or 0 lephad = IntCol() # 1 or 0 leplep = IntCol() # 1 or 0
class ClusterBasedTau(TreeModel): pi0BDTPrimary = FloatCol(-1111.) pi0BDTSecondary = FloatCol(-1111.) pi0_ptratio = FloatCol(-1111.) pi0_vistau_m = FloatCol(-1111.) pi0_n = IntCol(-1111) clbased_pt = FloatCol(-1111.) @classmethod def set(cls, this, other): this.pi0BDTPrimary = other.calcVars_pi0BDTPrimaryScore this.pi0BDTSecondary = other.calcVars_pi0BDTSecondaryScore this.pi0_ptratio = other.pi0_vistau_pt / other.pt this.pi0_vistau_m = other.pi0_vistau_m this.pi0_n = other.pi0_n this.clbased_pt = other.fourvect_clbased.Pt()
class EventInfo(TreeModel): runnumber = IntCol() evtnumber = IntCol() lumiblock = IntCol() npv = IntCol() mu = FloatCol() chain_EF_tau20_medium1 = IntCol() chain_EF_tauNoCut = IntCol() chain_L2_tauNoCut = IntCol() chain_L1_TAU8 = IntCol() chain_L1_TAU11I = IntCol() chain_L2_tau18Ti_loose2_e18vh_medium1 = IntCol(-1111) @classmethod def set(cls, this, other): this.runnumber = other.RunNumber this.evtnumber = other.EventNumber this.lumiblock = other.lbn this.npv = other.evt_calcVars_numGoodVertices this.mu = other.averageIntPerXing this.chain_EF_tau20_medium1 = other.EF_tau20_medium1 this.chain_EF_tauNoCut = other.EF_tauNoCut this.chain_L2_tauNoCut = other.L2_tauNoCut this.chain_L1_TAU8 = other.L1_TAU8 this.chain_L1_TAU11I = other.L1_TAU11I
class OutputTree(TreeModel): classID = FloatCol(default=-1111.) var1 = FloatCol(default=-1111.) var2 = FloatCol(default=-1111.) var3 = FloatCol(default=-1111.) weight = FloatCol(default=-1111.) cls0 = FloatCol(default=-1111.) cls1 = FloatCol(default=-1111.) cls2 = FloatCol(default=-1111.)
class TrueTau(FourMomentum): nProng = IntCol(default=-1111) nPi0 = IntCol(default=-1111) charge = IntCol(default=-1111) vis_pt = FloatCol(default=-1111.) vis_p = FloatCol(default=-1111.) vis_et = FloatCol(default=-1111.) vis_e = FloatCol(default=-1111.) vis_eta = FloatCol(default=-1111.) vis_phi = FloatCol(default=-1111.) vis_m = FloatCol(default=-1111.) @classmethod def set(cls, this, other): FourMomentum.set(this, other) this.nProng = other.nProng this.nPi0 = other.nPi0 this.charge = other.charge this.vis_pt = other.fourvect_vis.Pt() this.vis_p = other.fourvect_vis.P() this.vis_et = other.fourvect_vis.Et() this.vis_e = other.fourvect_vis.E() this.vis_m = other.fourvect_vis.M() with ignore_warning: this.vis_eta = other.fourvect_vis.Eta() this.vis_phi = other.fourvect_vis.Phi()
class TrackTau(TreeModel): numTrack = IntCol(default=-1111) nWideTrk = IntCol(default=-1111) nOtherTrk = IntCol(default=-1111) ipSigLeadTrk = FloatCol(-1111.) trFlightPathSig = FloatCol(-1111.) massTrkSys = FloatCol(-1111.) dRmax = FloatCol(-1111.) @classmethod def set(cls, this, other): this.numTrack = other.numTrack this.nWideTrk = other.seedCalo_nWideTrk this.nOtherTrk = other.otherTrk_n this.ipSigLeadTrk = other.ipSigLeadTrk this.trFlightPathSig = other.trFlightPathSig this.massTrkSys = other.massTrkSys this.dRmax = other.seedCalo_dRmax
class PhotonData(TreeModel): end_x = FloatCol() end_y = FloatCol() end_z = FloatCol() reflect_diffuse = IntCol() reflect_specular = IntCol() bulk_scatter = IntCol() bulk_absorb = IntCol() surface_detect = IntCol() surface_absorb = IntCol() surface_reemit = IntCol() def reset(self): self.reflect_diffuse = 0 self.reflect_specular = 0 self.bulk_scatter = 0 self.bulk_absorb = 0 self.surface_detect = 0 self.surface_absorb = 0 self.surface_reemit = 0
class rTrack(TreeModel): id = IntCol() event_id = IntCol() hit_indices = stl.vector("int") residuals = stl.vector("float") lincoords = stl.vector("float") color = IntCol() length = FloatCol() rho = FloatCol() theta = FloatCol() x0 = FloatCol() y0 = FloatCol() x1 = FloatCol() y1 = FloatCol() nHits = IntCol() R2 = FloatCol() is_good = IntCol()
class Event(TreeModel): # properties of particle "a" a_x = FloatCol() a_y = FloatCol() a_z = FloatCol() # properties of particle "b" b_x = FloatCol() b_y = FloatCol() b_z = FloatCol() # a collection of particles col_x = stl.vector("float") col_y = stl.vector("float") col_z = stl.vector("float") col_n = IntCol() # a TLorentzVector p = LorentzVector i = IntCol()
class FourMomentum(TreeModel): pt = FloatCol() p = FloatCol() et = FloatCol() e = FloatCol() eta = FloatCol(default=-1111) phi = FloatCol(default=-1111) m = FloatCol() @classmethod def set(cls, this, other): if isinstance(other, TLorentzVector): vect = other else: vect = other.fourvect this.pt = vect.Pt() this.p = vect.P() this.et = vect.Et() this.e = vect.E() this.m = vect.M() with ignore_warning: this.phi = vect.Phi() this.eta = vect.Eta()
class EcalVetoEvent(TreeModel): evtNum = IntCol() pnWeight = FloatCol() trigPass = BoolCol() nReadoutHits = IntCol() summedDet = FloatCol() summedTightIso = FloatCol() maxCellDep = FloatCol() showerRMS = FloatCol() xStd = FloatCol() yStd = FloatCol() avgLayerHit = FloatCol() stdLayerHit = FloatCol() deepestLayerHit = IntCol() discValue = FloatCol() #discValueFernand = FloatCol() hcalMaxPE = FloatCol() passHcalVeto = BoolCol() passTrackerVeto = BoolCol() recoilPx = FloatCol() recoilPy = FloatCol() recoilPz = FloatCol() recoilX = FloatCol() recoilY = FloatCol() fiducial = BoolCol() leadhadpid = IntCol() leadhadke = FloatCol() leadhadthetaz = FloatCol() nelectrons = IntCol() trigEnergy = FloatCol() ecalBackEnergy = FloatCol() eleP = FloatArrayCol(3) elePTarget = FloatArrayCol(3) elePosSP = FloatArrayCol(3) photonP = FloatArrayCol(3) photonPosSP = FloatArrayCol(3) ele68TotalEnergies = FloatArrayCol(34) photon68TotalEnergies = FloatArrayCol(34) overlap68TotalEnergies = FloatArrayCol(34) outside68TotalEnergies = FloatArrayCol(34) outside68TotalNHits = FloatArrayCol(34) outside68Xmeans = FloatArrayCol(34) outside68Ymeans = FloatArrayCol(34) outside68Xstds = FloatArrayCol(34) outside68Ystds = FloatArrayCol(34) ele68ContEnergy = FloatCol() ele68x2ContEnergy = FloatCol() ele68x3ContEnergy = FloatCol() ele68x4ContEnergy = FloatCol() ele68x5ContEnergy = FloatCol() photon68ContEnergy = FloatCol() photon68x2ContEnergy = FloatCol() photon68x3ContEnergy = FloatCol() photon68x4ContEnergy = FloatCol() photon68x5ContEnergy = FloatCol() overlap68ContEnergy = FloatCol() overlap68x2ContEnergy = FloatCol() overlap68x3ContEnergy = FloatCol() overlap68x4ContEnergy = FloatCol() overlap68x5ContEnergy = FloatCol() outside68ContEnergy = FloatCol() outside68x2ContEnergy = FloatCol() outside68x3ContEnergy = FloatCol() outside68x4ContEnergy = FloatCol() outside68x5ContEnergy = FloatCol() outside68ContNHits = FloatCol() outside68x2ContNHits = FloatCol() outside68x3ContNHits = FloatCol() outside68x4ContNHits = FloatCol() outside68x5ContNHits = FloatCol() outside68ContXmean = FloatCol() outside68x2ContXmean = FloatCol() outside68x3ContXmean = FloatCol() outside68x4ContXmean = FloatCol() outside68x5ContXmean = FloatCol() outside68ContYmean = FloatCol() outside68x2ContYmean = FloatCol() outside68x3ContYmean = FloatCol() outside68x4ContYmean = FloatCol() outside68x5ContYmean = FloatCol() outside68ContXstd = FloatCol() outside68x2ContXstd = FloatCol() outside68x3ContXstd = FloatCol() outside68x4ContXstd = FloatCol() outside68x5ContXstd = FloatCol() outside68ContYstd = FloatCol() outside68x2ContYstd = FloatCol() outside68x3ContYstd = FloatCol() outside68x4ContYstd = FloatCol() outside68x5ContYstd = FloatCol() outside68ContShowerRMS = FloatCol() outside68x2ContShowerRMS = FloatCol() outside68x3ContShowerRMS = FloatCol() outside68x4ContShowerRMS = FloatCol() outside68x5ContShowerRMS = FloatCol()
class Event(TreeModel): """Event model definition""" x = FloatCol() y = FloatCol() z = FloatCol() i = IntCol()
class JetImage(TreeModel): ''' Buffer for Jet Image ''' # -- START BUFFER # -- raveled image image = FloatArrayCol(25 ** 2) # -- 1 if signal, 0 otherwise signal = FloatCol() # -- kinematics jet_pt = FloatCol() jet_eta = FloatCol() jet_phi = FloatCol() jet_m = FloatCol() jet_delta_R = FloatCol() # -- NSJ tau_32 = FloatCol() tau_21 = FloatCol() tau_1 = FloatCol() tau_2 = FloatCol() tau_3 = FloatCol()
class Particle(TreeModel): q = IntCol() pt = FloatCol() eta = FloatCol() phi = FloatCol()
class RecoTau(FourMomentum): index = IntCol(default=-1) BDTJetScore = FloatCol() BDTEleScore = FloatCol() JetBDTSigLoose = BoolCol() JetBDTSigMedium = BoolCol() JetBDTSigTight = BoolCol() id = IntCol() nPi0 = IntCol() seedCalo_numTrack = IntCol() numTrack = IntCol() charge = IntCol() jvtxf = FloatCol() seedCalo_centFrac = FloatCol() BCHMedium = BoolCol() BCHTight = BoolCol() centrality = FloatCol(default=-1E10) centrality_boosted = FloatCol(default=-1E10) # efficiency scale factor if matches truth id_sf = FloatCol(default=1.) id_sf_high = FloatCol(default=1.) id_sf_low = FloatCol(default=1.) id_sf_stat_high = FloatCol(default=1.) id_sf_stat_low = FloatCol(default=1.) id_sf_sys_high = FloatCol(default=1.) id_sf_sys_low = FloatCol(default=1.) # trigger efficiency trigger_sf = FloatCol(default=1.) trigger_sf_high = FloatCol(default=1.) trigger_sf_low = FloatCol(default=1.) trigger_sf_mc_stat_high = FloatCol(default=1.) trigger_sf_mc_stat_low = FloatCol(default=1.) trigger_sf_data_stat_high = FloatCol(default=1.) trigger_sf_data_stat_low = FloatCol(default=1.) trigger_sf_stat_high = FloatCol(default=1.) trigger_sf_stat_low = FloatCol(default=1.) trigger_sf_stat_scale_high = FloatCol(default=1.) trigger_sf_stat_scale_low = FloatCol(default=1.) trigger_sf_sys_high = FloatCol(default=1.) trigger_sf_sys_low = FloatCol(default=1.) trigger_eff = FloatCol(default=1.) trigger_eff_high = FloatCol(default=1.) trigger_eff_low = FloatCol(default=1.) trigger_eff_stat_high = FloatCol(default=1.) trigger_eff_stat_low = FloatCol(default=1.) trigger_eff_stat_scale_high = FloatCol(default=1.) trigger_eff_stat_scale_low = FloatCol(default=1.) trigger_eff_sys_high = FloatCol(default=1.) trigger_eff_sys_low = FloatCol(default=1.) trigger_sf_stat_scale_PeriodA_high = FloatCol(default=1.) trigger_sf_stat_scale_PeriodA_low = FloatCol(default=1.) trigger_sf_stat_scale_PeriodBD_Barrel_high = FloatCol(default=1.) trigger_sf_stat_scale_PeriodBD_Barrel_low = FloatCol(default=1.) trigger_sf_stat_scale_PeriodBD_EndCap_high = FloatCol(default=1.) trigger_sf_stat_scale_PeriodBD_EndCap_low = FloatCol(default=1.) trigger_sf_stat_scale_PeriodEM_Barrel_high = FloatCol(default=1.) trigger_sf_stat_scale_PeriodEM_Barrel_low = FloatCol(default=1.) trigger_sf_stat_scale_PeriodEM_EndCap_high = FloatCol(default=1.) trigger_sf_stat_scale_PeriodEM_EndCap_low = FloatCol(default=1.) trigger_eff_stat_scale_PeriodA_high = FloatCol(default=1.) trigger_eff_stat_scale_PeriodA_low = FloatCol(default=1.) trigger_eff_stat_scale_PeriodBD_Barrel_high = FloatCol(default=1.) trigger_eff_stat_scale_PeriodBD_Barrel_low = FloatCol(default=1.) trigger_eff_stat_scale_PeriodBD_EndCap_high = FloatCol(default=1.) trigger_eff_stat_scale_PeriodBD_EndCap_low = FloatCol(default=1.) trigger_eff_stat_scale_PeriodEM_Barrel_high = FloatCol(default=1.) trigger_eff_stat_scale_PeriodEM_Barrel_low = FloatCol(default=1.) trigger_eff_stat_scale_PeriodEM_EndCap_high = FloatCol(default=1.) trigger_eff_stat_scale_PeriodEM_EndCap_low = FloatCol(default=1.) # fake rate scale factor for taus that do not match truth fakerate_sf = FloatCol(default=1.) fakerate_sf_high = FloatCol(default=1.) fakerate_sf_low = FloatCol(default=1.) # fake rate reco scale factor for taus that do not match truth fakerate_sf_reco = FloatCol(default=1.) fakerate_sf_reco_high = FloatCol(default=1.) fakerate_sf_reco_low = FloatCol(default=1.) #trigger_match_thresh = IntCol(default=0) # overlap checking min_dr_jet = FloatCol(default=9999) # track recounting numTrack_recounted = IntCol(default=-1) # vertex association vertex_prob = FloatCol() collinear_momentum_fraction = FloatCol()