예제 #1
0
    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'),
    )
예제 #2
0
        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 ''))
예제 #4
0
            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 ''))
예제 #6
0
    '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:
예제 #7
0
            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 ''))
예제 #9
0
            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 ''))