Example #1
0
  def initialize(self):

    Algorithm.initialize(self)
    sg = self.getStoreGateSvc()

    from ROOT import TH1F, TH2F
    sg.mkdir( self._basepath + '/CaloView' )
    offset = 240
    # x axis represents [-240 , 240+1000] the depth (z) calorimeter. Y axis represent one of the faces (x or y)
    sg.addHistogram( TH2F( "lateral_view", ";;;", 10000, -240+offset, 240 + 1000 + offset, 4000, -240+offset, 240+offset) )
    sg.addHistogram( TH2F( "layer_0", "First EM Layer; Energy (eta); Energy (phi)" , 3,0,3,96,0,96)   )
    sg.addHistogram( TH2F( "layer_1", "Second EM Layer; Energy (eta); Energy (phi)", 12,0,12,12,0,12) )
    sg.addHistogram( TH2F( "layer_2", "Third EM Layer; Energy (eta); Energy (phi)" , 12,0,12,6,0,6)   )
    sg.addHistogram( TH2F( "layer_3", "First HAD Layer; Energy (eta); Energy (phi)"  , 8,0,8,8,0,8)   )
    sg.addHistogram( TH2F( "layer_4", "Second HAD Layer; Energy (eta); Energy (phi)" , 8,0,8,8,0,8)   )
    sg.addHistogram( TH2F( "layer_5", "Third HAD Layer; Energy (eta); Energy (phi)"  , 4,0,4,4,0,4)   )


    hists_per_layer = [(3, 96), (12, 12), (12, 6), (8, 8), (8, 8), (4, 4)]
    for layer, hists in enumerate(hists_per_layer):
      for x in range( hists[0] ):
        for y in range( hists[1] ):
          sg.addHistogram( TH1F( ("layer_%d_x%d_y%d")%(layer,x,y), ";Energy;Count", 150, -5, 100 ) )

    self.init_lock()
    return StatusCode.SUCCESS
Example #2
0
    def __init__(self, name, dataframe, selection_list_labels=None, **kw):

        Algorithm.__init__(self, name)

        # declare all properties with default values
        self.declareProperty("Basepath", "Event/ImpactTool_bkup",
                             "Impact base path histogram.")
        self.declareProperty("EtBinningValues", [],
                             "Et bin selection for data selection.")
        self.declareProperty("EtaBinningValues", [],
                             "Et bin selection for data selection.")

        # Set all properties values from the contructor args
        for key, value in kw.items():
            self.setProperty(key, value)

        if selection_list_labels is None:
            # default selection names definition
            self.__selections = [
                'ringer',
                'no_ringer',
            ]
        else:
            self.__selections = selection_list_labels

        self.__selectionFeatures = list()
  def __init__(self, name, **kw):
    Algorithm.__init__(self, name)

    # Set all properties
    for key, value in kw.items():
      if key in self.__property:
        self.declareProperty( key, value )
      else:
        MSG_FATAL( self, "Property with name %s is not allow for %s object", key, self.__class__.__name__)
Example #4
0
  def __init__(self, name, dojpsiee=False, **kw):

    Algorithm.__init__(self, name)
    self.__groups = list()

    # declare all props here
    self.declareProperty( "Basepath", "Event/EfficiencyTool", "Histograms base path for the efficiency tool"      )
    self.declareProperty( "DoJpisee", dojpsiee                 , "Use the J/psiee et bins in the eff et histograms." )
 
    # Set property values using the constructor args
    for key, value in kw.items():
      self.setProperty(key, value)
Example #5
0
  def __init__(self, name, **kw):
    
    Algorithm.__init__(self, name)
    self._event = {}
    self._event_label = []
    self._save_these_bins = list()
    self._extra_features = list()
    
    self.declareProperty( "OutputFile", 'sample.pic', "The output file name"       )


    for key, value in kw.items():
      self.setProperty(key, value)
Example #6
0
    def initialize(self):

        Algorithm.initialize(self)
        sg = self.getStoreGateSvc()

        from ROOT import TH1F, TH2F
        sg.mkdir(self._basepath + '/Rings')
        for ring in range(66):
            sg.addHistogram(
                TH1F(("ring_%d") % (ring), ";Energy;Count", 500, 0, 1000))
        sg.addHistogram(
            TH2F(("rings"), ";Energy;Count", 66, 0, 66, 500, 0, 1000))
        sg.addHistogram(TH1F("ring_profile", ";Energy;Count", 66, 0, 66))
        self.init_lock()

        return StatusCode.SUCCESS
Example #7
0
    def initialize(self):

        Algorithm.initialize(self)
        sg = self.getStoreGateSvc()

        from ROOT import TGraph, TH1F
        sg.mkdir(self._basepath + '/Resolution')

        for energy in self._energy_bins:
            sg.addHistogram(
                TH1F("total_energy_" + str(energy) + "GeV", ";Energy;Count",
                     100, energy - int(np.sqrt(energy)) - 1,
                     energy + int(np.sqrt(energy)) + 1))
        self.init_lock()

        return StatusCode.SUCCESS
Example #8
0
    def __init__(self, name, **kw):

        Algorithm.__init__(self, name)

        # declare all properties with default values
        self.declareProperty("Basepath", "Event/QuadrantTool",
                             "Quadrant base path histogram.")
        self.declareProperty("EtBinningValues", [],
                             "Et bin selection for data selection.")
        self.declareProperty("EtaBinningValues", [],
                             "Et bin selection for data selection.")

        # Set all properties values from the contructor args
        for key, value in kw.items():
            self.setProperty(key, value)

        self.__quadrantFeatures = list()
Example #9
0
 def __init__(self, name, outputname):
     Algorithm.__init__(self, name)
     self._outputname = outputname
     self._event = []
Example #10
0
    def __init__(self, name, L1Item, chain):

        Algorithm.__init__(self, name)
        self.__trigInfo = TriggerInfo(chain)
        self.__l1item = L1Item
        self.__trigger = chain
Example #11
0
 def __init__(self, name, **kw):
     Algorithm.__init__(self, name)
     self._basepath = retrieve_kw(kw, 'basepath', 'particle')
     self._energy_bins = retrieve_kw(kw, 'energy_bins', [])
Example #12
0
 def __init__( self, name, **kw ):
   Algorithm.__init__( self, name )
   self._basepath = retrieve_kw( kw, 'basepath' , '')
    def __init__(self, name, **kw):

        Algorithm.__init__(self, name)
        # List of hypos in this selector
        self.__hypos = None
Example #14
0
  def initialize(self):
    Algorithm.initialize(self)
    for etBinIdx in range(len(self._etbins)-1):
      for etaBinIdx in range(len(self._etabins)-1):
        self._event[ 'et%d_eta%d' % (etBinIdx,etaBinIdx) ] = None


    self._event_label.append( 'avgmu' )

    # Add fast calo ringsE
    self._event_label.extend( [ 'L2Calo_ring_%d'%r for r in range(100) ] )

    self._event_label.extend( [ 'L2Calo_et',
                                'L2Calo_eta',
                                'L2Calo_phi',
                                'L2Calo_reta',
                                'L2Calo_ehad1', # new
                                'L2Calo_eratio',
                                'L2Calo_f1', # new
                                'L2Calo_f3', # new
                                'L2Calo_weta2', # new
                                'L2Calo_wstot', # new
                                'L2Calo_e2tsts1', # new
                                'L2Electron_hastrack',
                                'L2Electron_pt',
                                'L2Electron_eta',
                                'L2Electron_phi',
                                'L2Electron_caloEta',
                                'L2Electron_trkClusDeta',
                                'L2Electron_trkClusDphi',
                                'L2Electron_etOverPt',

                                ] )

 


    self._event_label.extend( [
                                # Offline variables
                                'et',
                                'eta',
                                'phi',
                                # offline shower shapers
                                'rhad1',
                                'rhad',
                                'f3',
                                'weta2',
                                'rphi',
                                'reta',
                                'wtots1',
                                'eratio',
                                'f1',
                                # offline track
                                'hastrack',
                                'numberOfBLayerHits',
                                'numberOfPixelHits',
                                'numberOfTRTHits',
                                'd0',
                                'd0significance',
                                'eProbabilityHT',
                                'trans_TRT_PID',
                                'deltaEta1',
                                'deltaPhi2',
                                'deltaPhi2Rescaled',
                                'DeltaPOverP',

                                ] )


    
    if self._dataframe is DataframeEnum.Electron_v1:
      self._event_label.extend( [
                                'deltaR', #for boosted
                                'eeMass', #for boosted
                                # Offline variables
                                'el_lhtight',
                                'el_lhmedium',
                                'el_lhloose',
                                'el_lhvloose',
                                ] )
    elif self._dataframe is DataframeEnum.Photon_v1:
      self._event_label.extend( [
                                # Offline variables
                                'ph_tight',
                                'ph_medium',
                                'ph_loose',
                                'mc_origin',
                                'mc_type',
                                'trig_EF_ph_tight',
                                'trig_EF_ph_medium',
                                'trig_EF_ph_loose',
                                ] )
    else:
      self._event_label.extend( [
                                # Offline variables
                                'el_lhtight',
                                'el_lhmedium',
                                'el_lhloose',
                                'el_lhvloose',
                                ] )


    self._event_label.extend( self._extra_features )

    return StatusCode.SUCCESS
Example #15
0
 def __init__(self, name, **kw):
     Algorithm.__init__(self, name)
     self._outputname = retrieve_kw(kw, 'outputname', 'collection.pic')
     self._event = []
     self._event_label = []
Example #16
0
    def initialize(self):

        Algorithm.initialize(self)
        sg = self.getStoreGateSvc()

        basepath = self.getProperty("Basepath")
        etBins = self.getProperty("EtBinningValues")
        etaBins = self.getProperty("EtaBinningValues")

        etabins = default_etabins

        for feat in self.__quadrantFeatures:
            # hold quadrant name
            quadrant_name = feat.name_a() + '_Vs_' + feat.name_b()

            ### loopover ets...
            for etBinIdx in range(len(etBins) - 1):
                ### loop over etas...
                for etaBinIdx in range(len(etaBins) - 1):
                    ### loop over quadrants...
                    for quadrant in self.__quadrants:
                        # hold binning name
                        binning_name = ('et%d_eta%d') % (etBinIdx, etaBinIdx)

                        dirname = basepath + '/' + quadrant_name + '/' + binning_name + '/' + quadrant
                        sg.mkdir(dirname)
                        sg.addHistogram(
                            TH1F('et',
                                 ('%s;%s;Count') % (basicInfoQuantities['et'],
                                                    basicInfoQuantities['et']),
                                 basicInfoNBins['et'],
                                 basicInfoLowerEdges['et'],
                                 basicInfoHighEdges['et']))
                        sg.addHistogram(
                            TH1F('eta', ('%s;%s;Count') %
                                 (basicInfoQuantities['eta'],
                                  basicInfoQuantities['eta']),
                                 len(etabins) - 1, np.array(etabins)))
                        sg.addHistogram(
                            TH1F('phi', ('%s;%s;Count') %
                                 (basicInfoQuantities['phi'],
                                  basicInfoQuantities['phi']), 20, -3.2, 3.2))
                        sg.addHistogram(
                            TH1F('avgmu', ('%s;%s;Count') %
                                 (basicInfoQuantities['avgmu'],
                                  basicInfoQuantities['avgmu']), 16, 0, 80))
                        sg.addHistogram(
                            TH1F('nvtx', ('%s;%s;Count') %
                                 (basicInfoQuantities['nvtx'],
                                  basicInfoQuantities['nvtx']),
                                 len(nvtx_bins) - 1, np.array(nvtx_bins)))

                        for key in standardQuantitiesNBins.keys():
                            sg.addHistogram(
                                TH1F(key, ('%s;%s;Count') %
                                     (electronQuantities[key],
                                      electronQuantities[key]),
                                     standardQuantitiesNBins[key],
                                     standardQuantitiesLowerEdges[key],
                                     standardQuantitiesHighEdges[key]))

                        # loop over quadrants

        # loop over pairs
        self.init_lock()
        return StatusCode.SUCCESS
Example #17
0
  def __init__(self, name):

    Algorithm.__init__(self, name)

    # Cut type and values
    self.__cutValues = collections.OrderedDict()
Example #18
0
    def initialize(self):

        Algorithm.initialize(self)
        sg = self.getStoreGateSvc()

        basepath = self.getProperty("Basepath")
        etBins = self.getProperty("EtBinningValues")
        etaBins = self.getProperty("EtaBinningValues")

        etabins = default_etabins

        for feat in self.__selectionFeatures:
            # hold selection name
            selection_name = feat.name_a() + '_VS_' + feat.name_b()

            ### loopover ets...
            for etBinIdx in range(len(etBins) - 1):
                ### loop over etas...
                for etaBinIdx in range(len(etaBins) - 1):
                    ### loop over selections...
                    for selection in self.__selections:
                        # hold binning name
                        binning_name = ('et%d_eta%d') % (etBinIdx, etaBinIdx)

                        dirname = basepath + '/' + selection_name + '/' + binning_name + '/' + selection
                        sg.mkdir(dirname)
                        sg.addHistogram(
                            TH1F('et',
                                 ('%s;%s;Count') % (basicInfoQuantities['et'],
                                                    basicInfoQuantities['et']),
                                 basicInfoNBins['et'],
                                 basicInfoLowerEdges['et'],
                                 basicInfoHighEdges['et']))
                        sg.addHistogram(
                            TH1F('eta', ('%s;%s;Count') %
                                 (basicInfoQuantities['eta'],
                                  basicInfoQuantities['eta']),
                                 len(etabins) - 1, np.array(etabins)))
                        sg.addHistogram(
                            TH1F('phi', ('%s;%s;Count') %
                                 (basicInfoQuantities['phi'],
                                  basicInfoQuantities['phi']), 20, -3.2, 3.2))
                        sg.addHistogram(
                            TH1F('avgmu', ('%s;%s;Count') %
                                 (basicInfoQuantities['avgmu'],
                                  basicInfoQuantities['avgmu']), 16, 0, 80))
                        sg.addHistogram(
                            TH1F('nvtx', ('%s;%s;Count') %
                                 (basicInfoQuantities['nvtx'],
                                  basicInfoQuantities['nvtx']),
                                 len(nvtx_bins) - 1, np.array(nvtx_bins)))

                        # we want measure this
                        for itype in ['off', 'hlt']:
                            for key in [
                                    'f1', 'f3', 'weta2', 'wtots1', 'rphi',
                                    'deltaEta1', 'deltaPhiRescaled2', 'eratio',
                                    'reta', 'rhad'
                            ]:
                                sg.addHistogram(
                                    TH1F('%s_%s' % (itype, key),
                                         ('%s;%s;Count') %
                                         (electronQuantities[key],
                                          electronQuantities[key]),
                                         standardQuantitiesNBins[key],
                                         standardQuantitiesLowerEdges[key],
                                         standardQuantitiesHighEdges[key]))

                        for fc_key in ['f1', 'f3', 'weta2', 'reta', 'eratio']:
                            sg.addHistogram(
                                TH1F('fc_%s' % (fc_key), ('%s;%s;Count') %
                                     (electronQuantities[fc_key],
                                      electronQuantities[fc_key]),
                                     standardQuantitiesNBins[fc_key],
                                     standardQuantitiesLowerEdges[fc_key],
                                     standardQuantitiesHighEdges[fc_key]))
                        # loop over selections

        # loop over pairs
        self.init_lock()
        return StatusCode.SUCCESS
Example #19
0
 def __init__(self):
     Algorithm.__init__(self, "Emulator")
     self.__tools = {}
Example #20
0
    def __init__(self, name, chain):

        Algorithm.__init__(self, name)

        self.__trigger = chain[4::] if chain.startswith('HLT_') else chain