else: print '{:s}'.format(self.NAME), print '{events:5d} {selected:5d} {matchEvents:5d} {matches:5d}'.format( **self.COUNTS) #### RUN ANALYSIS #### if __name__ == '__main__': Analyzer.PARSER.add_argument('--pcoption', dest='PCOPTION', type=int, default=1) Analyzer.PARSER.add_argument('--hybrids', dest='HYBRIDS', action='store_true') # get arguments ARGS = Analyzer.PARSER.parse_args() # set sample object based on arguments Analyzer.setSample(ARGS) # define Analyzer methods for METHOD in ('begin', 'declareHistograms', 'analyze', 'end'): setattr(Analyzer.Analyzer, METHOD, locals()[METHOD]) # declare analyzer analyzer = Analyzer.Analyzer( ARGS=ARGS, BRANCHKEYS=('DIMUON', 'PATMUON', 'DSAMUON', 'TRIGGER', 'GEN', 'EVENT'), )
except: multiDictCounts.append(0) print fstring.format(self.SP.mH, self.SP.mX, self.SP.cTau, '4Mu' if '4Mu' in self.NAME else '2Mu2J', self.COUNTERS['nGenMuons'], self.COUNTERS['nGenAcc'], self.COUNTERS['nMatches'], self.COUNTERS['nMultiple'], *multiDictCounts) #### RUN ANALYSIS #### if __name__ == '__main__': Analyzer.PARSER.add_argument('--color', dest='COLOR', action='store_true', help='whether to print reco matches in color') Analyzer.PARSER.add_argument( '--dump', dest='DUMP', action='store_true', help='whether to dump detailed information about the event') ARGS = Analyzer.PARSER.parse_args() Analyzer.setSample(ARGS) for METHOD in ('begin', 'analyze', 'end'): setattr(Analyzer.Analyzer, METHOD, locals()[METHOD]) analyzer = Analyzer.Analyzer( ARGS=ARGS, BRANCHKEYS=('EVENT', 'GEN', 'DSAMUON'), PARAMS=ARGS, )
self.HISTS['pTRes-' + MUON].Fill(pTRes) # cleanup function for Analyzer class def end(self, PARAMS=None): pass #### RUN ANALYSIS #### if __name__ == '__main__': # get arguments ARGS = Analyzer.PARSER.parse_args() # set sample object based on arguments Analyzer.setSample(ARGS) # define Analyzer methods for METHOD in ('begin', 'declareHistograms', 'analyze', 'end'): setattr(Analyzer.Analyzer, METHOD, locals()[METHOD]) # declare analyzer analyzer = Analyzer.Analyzer( ARGS=ARGS, BRANCHKEYS=('RSAMUON', 'DSAMUON', 'TRIGGER', 'GEN', 'EVENT', 'FILTER'), ) # write plots analyzer.writeHistograms('roots/mcbg/DSAVSRSAPlots{}_{{}}.root'.format( '_Trig' if ARGS.TRIGGER else ''))
dRRG = matchesRG[0]['deltaR'] dRBS = matchesBS[0]['deltaR'] self.HISTS['deltaDeltaR'].Fill(dRRG - dRBS) elif len(matchesRG) > 0: self.HISTS['deltaDeltaR'].Fill(.4) elif len(matchesBS) > 0: self.HISTS['deltaDeltaR'].Fill(-.4) #### RUN ANALYSIS #### if __name__ == '__main__': # get arguments ARGS = Analyzer.PARSER.parse_args() # set sample object based on arguments Analyzer.setSample(ARGS) # define Analyzer methods for METHOD in ( 'declareHistograms', 'analyze', ): setattr(Analyzer.Analyzer, METHOD, locals()[METHOD]) # declare analyzer analyzer = Analyzer.Analyzer(ARGS=ARGS, BRANCHKEYS=('DSAMUON', 'GEN', 'DIMUON')) # write plots analyzer.writeHistograms( 'roots/ResTest{}_{{}}.root'.format('_Trig' if ARGS.TRIGGER else ''))
# loop over dimuons and fill if they pass their selection for dimuon in Dimuons: if Selections.DimuonSelection(dimuon): self.HISTS['pT'].Fill(dimuon.pt) # cleanup function for Analyzer class def end(self, PARAMS=None): pass #### RUN ANALYSIS #### if __name__ == '__main__': # get arguments ARGS = Analyzer.PARSER.parse_args() # set sample object based on arguments Analyzer.setSample(ARGS) # define Analyzer methods for METHOD in ('begin', 'declareHistograms', 'analyze', 'end'): setattr(Analyzer.Analyzer, METHOD, locals()[METHOD]) # declare analyzer analyzer = Analyzer.Analyzer( ARGS = ARGS, BRANCHKEYS = ('DIMUON',), ) # write plots analyzer.writeHistograms('roots/test{}_{{}}.root'.format('_Trig' if ARGS.TRIGGER else ''))
'dPhiMuMu', 'dPhiMuX', 'dPhiCol', 'massX', 'pTX', 'cosAlpha', 'd0', 'pTmu', 'etaMu', 'LxyVSLz', ) #### MAIN CODE #### if __name__ == '__main__': ARGS = Analyzer.PARSER.parse_args() Analyzer.setSample(ARGS) if not ARGS.NAME.startswith('HTo2X'): raise Exception('[ANALYZER ERROR]: This script runs on signal only.') fs = ARGS.NAME.replace('HTo2XTo', '') sp = tuple(ARGS.SIGNALPOINT) HAliases, HExpressions = makeAliasesAndExpressions(fs) HISTS[(fs, sp)] = {} fillPlots(fs, sp, HList, ARGS.SAMPLE.getNTuples()) print 'Created all plots for', fs, sp FileName = 'roots/GenPlots_HTo2XTo{FS}_{SP}.root'.format( FS=fs, SP=SPStr(sp)) if not ARGS.TEST else 'test.root' FILES[(fs, sp)] = R.TFile.Open(FileName, 'RECREATE') FILES[(fs, sp)].cd() for key in HList:
global counter print "Event: " + str(counter) counter = counter +1 print dimuon foundDSADimuon = True self.HISTS['DSA p_{T} Spectrum'].Fill(min(dimuon.mu1.pt,dimuon.mu2.pt)) #if foundDSADimuon: print Event # cleanup function for Analyzer class def end(self, PARAMS=None): pass #### RUN ANALYSIS #### if __name__ == '__main__': ARGS = Analyzer.PARSER.parse_args() Analyzer.setSample(ARGS) for METHOD in ('declareHistograms', 'analyze', 'end'): setattr(Analyzer.Analyzer, METHOD, locals()[METHOD]) analyzer = Analyzer.Analyzer( ARGS = ARGS, BRANCHKEYS = ('EVENT','DIMUON','DSAMUON','PATMUON','FILTER', 'TRIGGER'), FILES = '/afs/cern.ch/user/w/wnash/DisplacedDimuons/Tupler/python/qcdIsolation.root' #FILES = '/afs/cern.ch/user/w/wnash/DisplacedDimuons/Tupler/python/signalIsolation.root' ) analyzer.writeHistograms('roots/qcdIsolationPlots.root') #analyzer.writeHistograms('roots/signalIsolationPlots.root')
self.HISTS['pileup'].Fill(Event.nTruePV) # cleanup function for Analyzer class def end(self, PARAMS=None): pass #### RUN ANALYSIS #### if __name__ == '__main__': # get arguments ARGS = Analyzer.PARSER.parse_args() # set sample object based on arguments Analyzer.setSample(ARGS) # define Analyzer methods for METHOD in ('begin', 'declareHistograms', 'analyze', 'end'): setattr(Analyzer.Analyzer, METHOD, locals()[METHOD]) # declare analyzer analyzer = Analyzer.Analyzer( ARGS=ARGS, BRANCHKEYS=('EVENT', 'GEN', 'TRIGGER'), ) # write plots analyzer.writeHistograms( 'roots/pileup{}_{{}}.root'.format('_Trig' if ARGS.TRIGGER else ''))
COSALPHAMIN = -0.8 if CONFIG['cosAlpha']['LAMBDA'](genMuonPair) < COSALPHAMIN: continue for KEY in CONFIG: self.HISTS[MUONTYPE + 'Dim_Den_' + KEY].Fill( CONFIG[KEY]['LAMBDA'](genMuonPair)) if len(HLTMuons) >= 2: for KEY in CONFIG: self.HISTS[MUONTYPE + 'Dim_Num_' + KEY].Fill( CONFIG[KEY]['LAMBDA'](genMuonPair)) #### RUN ANALYSIS #### if __name__ == '__main__': ARGS = Analyzer.PARSER.parse_args() Analyzer.setSample(ARGS) for METHOD in ('declareHistograms', 'analyze'): setattr(Analyzer.Analyzer, METHOD, locals()[METHOD]) analyzer = Analyzer.Analyzer( ARGS=ARGS, BRANCHKEYS=('GEN', 'DSAMUON', 'RSAMUON', 'DIMUON', 'TRIGGER'), # MAX_EVENTS = 500 ) analyzer.writeHistograms( 'roots/TriggerDimuonPlots_pTGT30_etaLT2.0_massGT15_cosAlphaGT-0.8_simple_{}.root' )
self.HISTS['Beamspot-Vertex-t'].Fill(Beamspot.x - Vertex.x, Beamspot.y - Vertex.y) self.HISTS['Beamspot-Vertex-z'].Fill(Beamspot.z - Vertex.z) self.HISTS['Beamspot-x'].Fill(Beamspot.x) self.HISTS['Beamspot-y'].Fill(Beamspot.y) self.HISTS['Beamspot-z'].Fill(Beamspot.z) #selections #if self.TRIGGER: # if not Selections.passTrigger(E): return # cleanup function for Analyzer class def end(self, PARAMS=None): pass #### RUN ANALYSIS #### if __name__ == '__main__': ARGS = Analyzer.PARSER.parse_args() Analyzer.setSample(ARGS) for METHOD in ('declareHistograms', 'analyze', 'end'): setattr(Analyzer.Analyzer, METHOD, locals()[METHOD]) analyzer = Analyzer.Analyzer( ARGS=ARGS, BRANCHKEYS=('BEAMSPOT', 'VERTEX'), ) analyzer.writeHistograms( 'roots/interactionPointComparisonPlots{}_{{}}.root'.format( '_Trig' if ARGS.TRIGGER else ''))