#acl ClemensLange:read,write All:read ##master-page:ClemensLange/SingleTopDPDMaker ##master-date:Unknown-Date #format wiki #language en #CategorySingleTopDPDMaker === Implemented features === * AntiKt4 '''TopoCluster''' Jets * Muon ptcone information * fix trigger object information * em fractions for jets, also have Cone4H1TowerJets in * b-tagging for new jet algorithms (espec. AntiKt4) - done, see [[#newjettag | below]] * more reco missing ET variables - done, see [[#METvars | below]] * shower variables for electrons - done, see [[#egammashape|below]] * muon position at muon spectrometer - done, see [[ClemensLange/SingleTopDPDMaker/MuonPositionAtSpectrometer]] === Implementation === ==== b-tagging for new jet algorithms ==== <> In exeSingleTopDPDMaker.py you have to change the order of the block starting with the comment "New Jet container generation" and directly after commented as "New and existing Jet tagging". Otherwise the JetGetter doesn't know how to do the b-tagging for the new jets. In the "Jet container generation block you have to replace {{{ jetFlags.doBTagging = False }}} with {{{ if ExecuteNewJetTagging: jetFlags.doBTagging = True else: jetFlags.doBTagging = False }}} As the tagging is done automatically if desired in the new jet container, it keeps its name and does not get the JetsAOD suffix as is the case for the jets already in the AOD. Thus you also have to change setSingleTopDPDMaker.py. In the part where you loop over the NewJetNumber, get rid of the if clause and just set the NewJetContainerName like this (I commented the stuff you should remove): {{{ for i in range(NewJetNumber): #if ExecuteNewJetTagging: #NewJetContainerName += [NewJetName[i]+"JetsAOD"] #else: #NewJetContainerName += [NewJetName[i]+"Jets"] NewJetContainerName += [NewJetName[i]+"Jets"] }}} One thing one might also want to change is the EtMax of the jet selection, which should get a number larger than just 1000 TeV. By the way, in runSingleTopDPDMaker, splitting ExecuteNewJetAlgorithm and ExecuteNewJetSelection doesn't make sense, I think. If you set only the first to true, the DPDMaker complains about the NewJetSelectionInfo not being available, but that's just a sidemark. As I wrote in an earlier mail. Using the Cone4/7TowerH1 calibration as alias for the new jet tagging should according to the b-tagging group not make much of a difference. ==== Implementation of MET variables ==== <> The first line in the source code is the one you should search for (and keep) In runSingleTopDPDMaker: {{{ if FullReco: MissingEtName = ["MET_Base","MET_Calib","MET_CryoCone","MET_Cryo","MET_Final","MET_MuonBoy","MET_Muon","MET_RefFinal","MET_Topo"] }}} delete MissingEtLabel. In setSingleTopDPDMaker: {{{ TreeMaker_MissingEtName = MissingEtName if not "MissingEtLabel" in dir(): MissingEtLabel=MissingEtName TreeMaker_MissingEtLabel = MissingEtLabel }}} ==== Electron shower shapes variables ==== <> This is to a big extent already implemented in the code. There are just a few things that one might want to add. First of all, in setSingleTopDPDMaker.py, around line 2470 add the ''Shower'' dump option to the TreeMaker: {{{ TreeMaker_ContainerName += [ElectronContainerName] TreeMaker_ContainerLabel += ["Electron"] TreeMaker_ContainerDumpOption.append (["Shower"]) }}} This adds the following shower variables to the Electron: * Electron_EMShower_emaxs1 * Electron_EMShower_emins1 * Electron_EMShower_e2tsts1 * Electron_EMShower_e237 * Electron_EMShower_e277 * Electron_EMShower_ethad1 I also wanted to have Electron_etcone30 in addition to etcone20. To do this one has to add the code in src/ElectronTree.cxx. Search for each occurence of "etcone20", copy the line, paste below and replace the 20 with a 30. Don't forget to do the same for the header file. ---- CategorySingleTopDPDMaker