Warning, /TopQuarkAnalysis/TopJetCombination/data/TtSemiLepJetCombMVATrainer.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
0002
0003 <!-- in order to be able to use this file correctly
0004 you have to enable XSLT parsing in the MVATrainer!
0005 this is done by using the option "-x" of the mvaTreeTrainer -->
0006
0007 <MVATrainer xmlns:xi="http://www.w3.org/2001/XInclude">
0008
0009 <general>
0010 <option name="id">TtSemiLepJetCombMVATrainer</option>
0011 <option name="trainfiles">train_%1$s%2$s.%3$s</option>
0012 </general>
0013
0014 <!-- include the main input section containing all variables from a file
0015 which is shared with the TtSemiLepJetCombMVATrainTreeSaver.xml -->
0016
0017 <xi:include href="TtSemiLepJetCombMVATrainer_vars.xml"/>
0018
0019 <!-- the following processor defines that the subsequent 5 processors
0020 are called for each jetComb hypothesis separately in every event -->
0021
0022 <processor id="loop" name="ProcForeach">
0023 <input>
0024 <var source="input" name="target"/>
0025 <var source="input" name="deltaRHadTopLepTop"/>
0026 <var source="input" name="deltaRHadQHadQBar"/>
0027 <var source="input" name="deltaRLepBLepton"/>
0028 <var source="input" name="bTagHadBTrkCntHighEff"/>
0029 <var source="input" name="bTagLepBTrkCntHighEff"/>
0030 <var source="input" name="bTagSumHadQHadQBarTrkCntHighEff"/>
0031 </input>
0032 <config>
0033 <procs next="5"/>
0034 </config>
0035 <output>
0036 <var name="index"/>
0037 <var name="target"/>
0038 <var name="deltaRHadTopLepTop"/>
0039 <var name="deltaRHadQHadQBar"/>
0040 <var name="deltaRLepBLepton"/>
0041 <var name="bTagHadBTrkCntHighEff"/>
0042 <var name="bTagLepBTrkCntHighEff"/>
0043 <var name="bTagSumHadQHadQBarTrkCntHighEff"/>
0044 </output>
0045 </processor>
0046
0047 <!-- create target variable from input variable "target":
0048 0 (bakground) : if "target" <= 0.5;
0049 1 (signal) : else -->
0050
0051 <processor id="target_hyp" name="ProcCategory">
0052 <input>
0053 <var source="loop" name="target"/>
0054 </input>
0055 <config>
0056 <group><box><range max="0.5"/></box></group>
0057 <group><box><range/></box></group>
0058 </config>
0059 <output>
0060 <var name="target"/>
0061 </output>
0062 </processor>
0063
0064 <!-- normalize input variables -->
0065
0066 <processor id="norm" name="ProcNormalize">
0067 <input>
0068 <var source="loop" name="deltaRHadTopLepTop"/>
0069 <var source="loop" name="deltaRHadQHadQBar"/>
0070 <var source="loop" name="deltaRLepBLepton"/>
0071 <var source="loop" name="bTagHadBTrkCntHighEff"/>
0072 <var source="loop" name="bTagLepBTrkCntHighEff"/>
0073 <var source="loop" name="bTagSumHadQHadQBarTrkCntHighEff"/>
0074 <var source="target_hyp" name="target" target="true"/>
0075 </input>
0076 <config>
0077 <pdf/>
0078 <pdf/>
0079 <pdf/>
0080 <pdf/>
0081 <pdf/>
0082 <pdf/>
0083 </config>
0084 <output>
0085 <var name="deltaRHadTopLepTop"/>
0086 <var name="deltaRHadQHadQBar"/>
0087 <var name="deltaRLepBLepton"/>
0088 <var name="bTagHadBTrkCntHighEff"/>
0089 <var name="bTagLepBTrkCntHighEff"/>
0090 <var name="bTagSumHadQHadQBarTrkCntHighEff"/>
0091 </output>
0092 </processor>
0093
0094 <!-- decorrelate input variables using matrix ration -->
0095
0096 <processor id="rot" name="ProcMatrix">
0097 <input>
0098 <var source="target_hyp" name="target" target="true"/>
0099 <var source="norm" name="deltaRHadTopLepTop"/>
0100 <var source="norm" name="deltaRHadQHadQBar"/>
0101 <var source="norm" name="deltaRLepBLepton"/>
0102 <var source="norm" name="bTagHadBTrkCntHighEff"/>
0103 <var source="norm" name="bTagLepBTrkCntHighEff"/>
0104 <var source="norm" name="bTagSumHadQHadQBarTrkCntHighEff"/>
0105 </input>
0106 <config>
0107 <fill signal="true" background="true"/>
0108 </config>
0109 <output>
0110 <var name="rot1"/>
0111 <var name="rot2"/>
0112 <var name="rot3"/>
0113 <var name="rot4"/>
0114 <var name="rot5"/>
0115 <var name="rot6"/>
0116 </output>
0117 </processor>
0118
0119 <!-- combine variables into likelihood -->
0120
0121 <processor id="like" name="ProcLikelihood">
0122 <input>
0123 <var source="target_hyp" name="target" target="true"/>
0124 <var source="norm" name="deltaRHadTopLepTop"/>
0125 <var source="norm" name="deltaRHadQHadQBar"/>
0126 <var source="norm" name="deltaRLepBLepton"/>
0127 <var source="norm" name="bTagHadBTrkCntHighEff"/>
0128 <var source="norm" name="bTagLepBTrkCntHighEff"/>
0129 <var source="norm" name="bTagSumHadQHadQBarTrkCntHighEff"/>
0130 </input>
0131 <config>
0132 <sigbkg smooth="3"/>
0133 <sigbkg smooth="3"/>
0134 <sigbkg smooth="3"/>
0135 <sigbkg smooth="3"/>
0136 <sigbkg smooth="3"/>
0137 <sigbkg smooth="3"/>
0138 </config>
0139 <output>
0140 <var name="discr"/>
0141 </output>
0142 </processor>
0143
0144 <!-- this is just a workaround to get monitoring histograms for the likelihood for each hypothesis-->
0145
0146 <processor id="norm_monitor_hyp" name="ProcNormalize">
0147 <input>
0148 <var source="target_hyp" name="target" target="true"/>
0149 <var source="like" name="discr"/>
0150 </input>
0151 <config>
0152 <pdf/>
0153 </config>
0154 <output>
0155 <var name="var_dummy1"/>
0156 </output>
0157 </processor>
0158
0159 <!-- end of ProcForEach loop -->
0160
0161 <!-- sort hypotheses w.r.t. the discriminator (second input variable, therefore index="1")
0162 in descending order, i.e. from the highest discriminator to the lowest -->
0163
0164 <processor id="sort" name="ProcSort">
0165 <input>
0166 <var source="target_hyp" name="target"/>
0167 <var source="like" name="discr"/>
0168 </input>
0169 <config>
0170 <key index="1" descending="true"/>
0171 </config>
0172 <output>
0173 <var name="index"/>
0174 <var name="target"/>
0175 <var name="discr"/>
0176 </output>
0177 </processor>
0178
0179 <!-- separate best hypothesis from the rest -->
0180
0181 <processor id="split_best" name="ProcSplitter">
0182 <input>
0183 <var source="sort" name="target"/>
0184 <var source="sort" name="discr"/>
0185 </input>
0186 <config>
0187 <select first="1"/>
0188 </config>
0189 <output>
0190 <var name="target"/>
0191 <var name="targetRest"/>
0192 <var name="discr"/> <!-- this variable is the final mva output for each event -->
0193 <var name="discrRest"/>
0194 </output>
0195 </processor>
0196
0197 <!-- create target variable for the event (only for calculating purities and efficiencies):
0198 0 (background) : best hypothesis was background;
0199 1 (signal) : best hypothesis was signal -->
0200
0201 <processor id="target_evt" name="ProcCategory">
0202 <input>
0203 <var source="split_best" name="target"/>
0204 </input>
0205 <config>
0206 <group><box><range max="0.5"/></box></group>
0207 <group><box><range/></box></group>
0208 </config>
0209 <output>
0210 <var name="target"/>
0211 </output>
0212 </processor>
0213
0214 <!-- this is just a workaround to get monitoring histograms from ProcSplitter -->
0215
0216 <processor id="norm_monitor_evt" name="ProcNormalize">
0217 <input>
0218 <var source="split_best" name="discr"/>
0219 <var source="split_best" name="discrRest"/>
0220 <var source="target_evt" name="target" target="true"/>
0221 </input>
0222 <config>
0223 <pdf/>
0224 <pdf/>
0225 </config>
0226 <output>
0227 <var name="var_dummy1"/>
0228 <var name="var_dummy2"/>
0229 </output>
0230 </processor>
0231
0232 <!-- final output is the discriminator of the best hypothesis -->
0233
0234 <output>
0235 <var source="split_best" name="discr"/>
0236 </output>
0237
0238 </MVATrainer>