Beispiel #1
0
   def setupZDCPEBChains(self):
     from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
     zdcSubDetListWriter = TrigSubDetListWriter("ZDCSubDetListWriter")
     zdcSubDetListWriter.SubdetId = ['TDAQ_CTP','FORWARD_ZDC'] 
     zdcSubDetListWriter.MaxRoIsPerEvent=1
 
     self.robWriter = [zdcSubDetListWriter]            
     self.L2sequenceList += [['', self.robWriter, 'L2_zdc']]     
     self.L2signatureList += [[['L2_zdc']]]
Beispiel #2
0
   def setupLArPEBCalibCalibrationChains(self):
     from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
     larpebSubDetListWriter = TrigSubDetListWriter("LArPEBSubDetListWriter")
     larpebSubDetListWriter.SubdetId = ['TDAQ_CTP','LAr']

     larpebSubDetListWriter.MaxRoIsPerEvent=1

     self.robWriter = [larpebSubDetListWriter]
     self.L2sequenceList += [['', self.robWriter, 'L2_larpeb']]
     self.L2signatureList += [[['L2_larpeb']]]
    def setupCosmicIDNoiseCalibration(self):

        from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter

        if 'pixel' in self.chainPart['purpose']:

            if 'noise' in self.chainPart['addInfo']:
                l2_pixelSubDetListWriter = TrigSubDetListWriter("CosmicPixelNoiseSubDetListWriter")
                l2_pixelSubDetListWriter.Subdetectors = "Pixel"
                l2_pixelSubDetListWriter.extraROBs = []
                theRobWriter = [l2_pixelSubDetListWriter]

            elif 'beam' in self.chainPart['addInfo']:
                l2_pixelSCTSubDetListWriter = TrigSubDetListWriter("CosmicPixelSCTNoiseSubDetListWriter")
                l2_pixelSCTSubDetListWriter.Subdetectors = "Pixel,SCT"
                l2_pixelSCTSubDetListWriter.extraROBs = []            
                theRobWriter = [l2_pixelSCTSubDetListWriter]
                
        elif ('sct' in self.chainPart['purpose']) \
                & ('noise' in self.chainPart['addInfo']):
            l2_SCTSubDetListWriter = TrigSubDetListWriter("CosmicSCTNoiseSubDetListWriter")
            l2_SCTSubDetListWriter.Subdetectors = "SCT"
            l2_SCTSubDetListWriter.extraROBs = []
            theRobWriter= [l2_SCTSubDetListWriter]


        self.L2sequenceList += [[ '', theRobWriter,  'L2_step1']]
        self.L2signatureList+=[ [['L2_step1']*self.mult] ]

        self.TErenamingDict = {
            'L2_step1': mergeRemovingOverlap('L2_','Calib'+self.chainName),
            }
Beispiel #4
0
   def setupALFAIDChains(self):
          
     from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
     
     alfaidSubDetListWriter = TrigSubDetListWriter("ALFAIDSubDetListWriter")
     alfaidSubDetListWriter.SubdetId = ['TDAQ_CTP','InnerDetector','FORWARD_ALPHA']
     alfaidSubDetListWriter.MaxRoIsPerEvent=1

     self.robWriter = [alfaidSubDetListWriter]            
     self.L2sequenceList += [['', self.robWriter, 'L2_alfaid']]     
     self.L2signatureList += [[['L2_alfaid']]]
Beispiel #5
0
   def setupLHCfChains(self):
          
     from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
     
     lhcfSubDetListWriter = TrigSubDetListWriter("LHCfSubDetListWriter")
     lhcfSubDetListWriter.SubdetId = ['TDAQ_HLT','TDAQ_CTP','InnerDetector','DBM','FORWARD_ALPHA','FORWARD_LUCID','FORWARD_ZDC','FORWARD_BCM']
     lhcfSubDetListWriter.MaxRoIsPerEvent=1

     self.robWriter = [lhcfSubDetListWriter]            
     self.L2sequenceList += [['', self.robWriter, 'L2_lhcf']]     
     self.L2signatureList += [[['L2_lhcf']]]
Beispiel #6
0
   def setupLumiPEBChains(self):
          
     from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
     
     vdmSubDetListWriter = TrigSubDetListWriter("VdMSubDetListWriter")
     vdmSubDetListWriter.SubdetId = ['TDAQ_HLT','TDAQ_CTP','SiOnly','DBM']
     vdmSubDetListWriter.MaxRoIsPerEvent=1

     self.robWriter = [vdmSubDetListWriter]            
     self.L2sequenceList += [['', self.robWriter, 'L2_vdm']]     
     self.L2signatureList += [[['L2_vdm']]]
Beispiel #7
0
 def setupAFPALFACalibrationChains(self):
   
   from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
   
   l2_AFPALFASubDetListWriter = TrigSubDetListWriter("AFPALFASubDetListWriter")
   l2_AFPALFASubDetListWriter.SubdetId = ['TDAQ_CTP','FORWARD_AFP','FORWARD_ALPHA']
   l2_AFPALFASubDetListWriter.MaxRoIsPerEvent=1
   
   self.robWriter = [l2_AFPALFASubDetListWriter]            
   self.L2sequenceList += [['', self.robWriter, 'L2_AFPALFAcalib']]
   self.L2signatureList += [[['L2_AFPALFAcalib']]]
   def setupBeamspotChains(self):

     if ('peb' in self.eventBuildType):
       from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
       robListWriter = TrigSubDetListWriter('IDSubDetListWriter')
       robListWriter.SubdetId = [ "SiOnly","TDAQ_CTP" ]
       robListWriter.addL1Calo = False                        
       theAlg = robListWriter       
     else: 
       from TrigGenericAlgs.TrigGenericAlgsConf import PrescaleAlgo
       theAlg = PrescaleAlgo("terminateAlgo")   

            
     if 'trkFS' in self.chainPart['addInfo'] :         
       from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_L2StarB
       theFex = T2VertexBeamSpot_L2StarB()
     elif 'activeTE' in self.chainPart['addInfo']:         
       from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeTE_L2StarB
       theFex = T2VertexBeamSpot_activeTE_L2StarB()
     elif 'allTE' in self.chainPart['addInfo']:         
       from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeAllTE_L2StarB
       theFex =  T2VertexBeamSpot_activeAllTE_L2StarB()
     else:
       mlog.error('Cannot assemble chain %s - only configured for trkFS,allTE and activeTE' % (self.chainPartName))


     #commenting out because of ATR-8976 (removal of package)
     #if  ('L2StarB' in self.l2IDAlg):
     #  from TrigSiTrack.TrigSiTrack_Config import TrigSiTrack_BeamSpot
     #  TrigL2SiTrackFinder_Config = __import__('TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config', fromlist=[""])      
     #  trk_alg = getattr(TrigL2SiTrackFinder_Config, "TrigL2SiTrackFinder_BeamSpotB") 
     #  teaddition = 'L2StarB'
     #else:
     #  mlog.error('Cannot assemble chain %s - only configured for L2StarB' % (self.chainPartName))
         

     self.L2sequenceList +=[[ self.L2InputTE, [theFex], 'L2_fex']]
     self.L2sequenceList +=[[['L2_fex'], [theAlg], 'L2_']]  

     #from TrigGenericAlgs.TrigGenericAlgsConf import  PESA__DummyUnseededAllTEAlgo
     #self.L2sequenceList += [ [[""], [PESA__DummyUnseededAllTEAlgo("L2DummyAlgo"), trk_alg()], 'L2_BeamSpottracks']]
     
     self.L2signatureList += [ [['L2_fex']] ]
     self.L2signatureList += [ [['L2_']] ]
     #self.L2signatureList += [ [['L2_BeamSpottracks']] ]
     
     self.TErenamingDict = {
       'L2_fex'           : mergeRemovingOverlap('L2_', self.chainName+'_fex'),        
       'L2_'              : mergeRemovingOverlap('L2_', self.chainName),        
       #'L2_BeamSpottracks': mergeRemovingOverlap('L2_', 'BeamSpottracks'+teaddition),        
       }    
Beispiel #9
0
 def setupAFPCalibrationChains(self):
   
   from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
   
   l2_AFPSubDetListWriter = TrigSubDetListWriter("AFPSubDetListWriter")
   l2_AFPSubDetListWriter.SubdetId = ['TDAQ_CTP','FORWARD_AFP']
   l2_AFPSubDetListWriter.MaxRoIsPerEvent=1
   
   self.robWriter = [l2_AFPSubDetListWriter]            
   self.L2sequenceList += [['', self.robWriter, 'L2_']]
   
   self.L2signatureList += [[['L2_']]]
   self.TErenamingDict = {
     'L2_':     'L2_l1AFPcalib',
     }
 def setupL1ALFACalibrationChains(self):
   
   from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
   
   l2_ALFASubDetListWriter = TrigSubDetListWriter("ALFASubDetListWriter")
   l2_ALFASubDetListWriter.SubdetId = ['TDAQ_CTP','FORWARD_ALPHA']
   l2_ALFASubDetListWriter.MaxRoIsPerEvent=1
   
   self.robWriter = [l2_ALFASubDetListWriter]            
   self.L2sequenceList += [['', self.robWriter, 'L2_']]
   
   self.L2signatureList += [[['L2_']]]
   self.TErenamingDict = {
     'L2_':     'L2_l1ALFAcalib',
     }
Beispiel #11
0
    def setupCosmicIDNoiseCalibration(self):

        from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter

        l2_SCTSubDetListWriter = TrigSubDetListWriter("CosmicSCTNoiseSubDetListWriter")
        l2_SCTSubDetListWriter.Subdetectors = "SCT"
        l2_SCTSubDetListWriter.extraROBs = []
        theRobWriter= [l2_SCTSubDetListWriter]
        
        
        self.L2sequenceList += [[ '', theRobWriter,  'L2_step1']]
        self.L2signatureList+=[ [['L2_step1']*self.mult] ]
        
        self.TErenamingDict = {
            'L2_step1': mergeRemovingOverlap('L2_','Calib'+self.chainName),
            }
Beispiel #12
0
   def setupIDPSCalibrationChains(self):

     from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter

     l2_IDPSSubDetListWriter = TrigSubDetListWriter("IDPSSubDetListWriter")
     l2_IDPSSubDetListWriter.SubdetId = ['TDAQ_CTP','TDAQ_HLT','InnerDetector']

     l2_IDPSSubDetListWriter.MaxRoIsPerEvent=1

     self.robWriter = [l2_IDPSSubDetListWriter]
     self.L2sequenceList += [['', self.robWriter, 'L2_']]

     self.L2signatureList += [[['L2_']]]
     self.TErenamingDict = {
       'L2_':     'L2_l1IDPScalib',
       }
Beispiel #13
0
   def setupRPCCalibrationChains(self):
     
     from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
     
     l2_RPCSubDetListWriter = TrigSubDetListWriter("RPCSubDetListWriter")
     l2_RPCSubDetListWriter.SubdetId = ['TDAQ_MUON', 'TDAQ_CTP', 'TDAQ_HLT', 'RPC']

     l2_RPCSubDetListWriter.MaxRoIsPerEvent=1
     
     self.robWriter = [l2_RPCSubDetListWriter]            
     self.L2sequenceList += [['', self.robWriter, 'L2_']]
     
     self.L2signatureList += [[['L2_']]]
     self.TErenamingDict = {
       'L2_':     'L2_l1RPCcalib',
       }
Beispiel #14
0
   def setupBeamspotChains(self):

     if 'peb'== self.eventBuildType:
       from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
       robListWriter = TrigSubDetListWriter('IDSubDetListWriter')
       robListWriter.SubdetId = [ "SiOnly","TDAQ_CTP" ]
       robListWriter.addL1Calo = False                        
       theAlg = robListWriter       
     elif 'pebTRT'== self.eventBuildType:
       from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
       robListWriter = TrigSubDetListWriter('IDTRTSubDetListWriter')
#       robListWriter.SubdetId = [ "SiOnly","TDAQ_CTP","TRT" ]
       robListWriter.SubdetId = [ "InnerDetector","TDAQ_CTP" ]
       robListWriter.addL1Calo = False                        
       theAlg = robListWriter              
     else: 
       from TrigGenericAlgs.TrigGenericAlgsConf import PrescaleAlgo
       theAlg = PrescaleAlgo("terminateAlgo")   

     if 'trkFS' in self.chainPart['addInfo'] :
        from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_FTF
        theFex = T2VertexBeamSpot_FTF()
     elif 'activeTE' in self.chainPart['addInfo']:
        from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeTE_FTF
        theFex = T2VertexBeamSpot_activeTE_FTF()
     elif 'allTE' in self.chainPart['addInfo']:
        from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeAllTE_FTF
        theFex =  T2VertexBeamSpot_activeAllTE_FTF()
     else:
        mlog.error('Cannot assemble chain %s - only configured for trkFS,allTE and activeTE' % (self.chainPartName))

     from TrigInDetConf.TrigInDetSequence import TrigInDetSequence
     [trk_alg] = TrigInDetSequence("BeamSpot", "beamSpot", "IDTrig", sequenceFlavour=["FTF"]).getSequence()
        
     from TrigGenericAlgs.TrigGenericAlgsConf import  PESA__DummyUnseededAllTEAlgo

     self.L2sequenceList += [ [[""], [PESA__DummyUnseededAllTEAlgo("L2DummyAlgo")]+trk_alg, 'L2_BeamSpottracks']]

     self.L2sequenceList +=[[['L2_BeamSpottracks'], [theFex], 'L2_fex']]
     self.L2sequenceList +=[[['L2_fex'], [theAlg], 'L2_']]  

     self.L2signatureList += [ [['L2_BeamSpottracks']] ]     
     self.L2signatureList += [ [['L2_fex']] ]
     self.L2signatureList += [ [['L2_']] ]

     self.TErenamingDict = {
       'L2_fex'           : mergeRemovingOverlap('L2_', self.chainName+'_fex'),        
       'L2_'              : mergeRemovingOverlap('L2_', self.chainName),        
       'L2_BeamSpottracks': mergeRemovingOverlap('L2_', self.chainName+'_BeamSpottracks'),        
       }    
Beispiel #15
0
    def setupBeamspotChains(self):

        if 'peb' == self.eventBuildType:
            from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
            robListWriter = TrigSubDetListWriter('IDSubDetListWriter')
            robListWriter.SubdetId = ["SiOnly", "TDAQ_CTP"]
            robListWriter.addL1Calo = False
            theAlg = robListWriter
        elif 'pebTRT' == self.eventBuildType:
            from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
            robListWriter = TrigSubDetListWriter('IDTRTSubDetListWriter')
            #       robListWriter.SubdetId = [ "SiOnly","TDAQ_CTP","TRT" ]
            robListWriter.SubdetId = ["InnerDetector", "TDAQ_CTP"]
            robListWriter.addL1Calo = False
            theAlg = robListWriter
        else:
            from TrigGenericAlgs.TrigGenericAlgsConf import PrescaleAlgo
            theAlg = PrescaleAlgo("terminateAlgo")

        if ('L2StarB' in self.l2IDAlg):
            if 'trkFS' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_L2StarB
                theFex = T2VertexBeamSpot_L2StarB()
            elif 'activeTE' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeTE_L2StarB
                theFex = T2VertexBeamSpot_activeTE_L2StarB()
            elif 'allTE' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeAllTE_L2StarB
                theFex = T2VertexBeamSpot_activeAllTE_L2StarB()
            else:
                mlog.error(
                    'Cannot assemble chain %s - only configured for trkFS,allTE and activeTE'
                    % (self.chainPartName))
            #from TrigSiTrack.TrigSiTrack_Config import TrigSiTrack_BeamSpot
            TrigL2SiTrackFinder_Config = __import__(
                'TrigL2SiTrackFinder.TrigL2SiTrackFinder_Config',
                fromlist=[""])
            my_trk_alg = getattr(TrigL2SiTrackFinder_Config,
                                 "TrigL2SiTrackFinder_BeamSpotB")
            trk_alg = [my_trk_alg()]

        elif ('trkfast' in self.l2IDAlg):
            if 'trkFS' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_FTF
                theFex = T2VertexBeamSpot_FTF()
            elif 'activeTE' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeTE_FTF
                theFex = T2VertexBeamSpot_activeTE_FTF()
            elif 'allTE' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeAllTE_FTF
                theFex = T2VertexBeamSpot_activeAllTE_FTF()
            else:
                mlog.error(
                    'Cannot assemble chain %s - only configured for trkFS,allTE and activeTE'
                    % (self.chainPartName))

            from TrigInDetConf.TrigInDetSequence import TrigInDetSequence
            [trk_alg] = TrigInDetSequence("BeamSpot",
                                          "beamSpot",
                                          "IDTrig",
                                          sequenceFlavour=["FTF"
                                                           ]).getSequence()

        elif ('FTK' in self.l2IDAlg):
            if 'trkFS' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_FTK
                theFex = T2VertexBeamSpot_FTK()
            elif 'activeTE' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeTE_FTK
                theFex = T2VertexBeamSpot_activeTE_FTK()
            elif 'allTE' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeAllTE_FTK
                theFex = T2VertexBeamSpot_activeAllTE_FTK()
            elif 'idperf' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeAllTE_FTK
                theFex = T2VertexBeamSpot_activeAllTE_FTK()

                from TrigFTK_Monitoring.FtkHltEfficiencyConfig import FtkHltEfficiencyFex
                moni_alg = FtkHltEfficiencyFex()
            else:
                mlog.error(
                    'Cannot assemble chain %s - only configured for trkFS,allTE and activeTE'
                    % (self.chainPartName))

            if 'idperf' in self.chainPart['addInfo']:
                from TrigInDetConf.TrigInDetSequence import TrigInDetSequence
                [trk_alg
                 ] = TrigInDetSequence("BeamSpot",
                                       "beamSpot",
                                       "IDTrig",
                                       sequenceFlavour=["FTF"]).getSequence()
                from TrigInDetConf.TrigInDetFTKSequence import TrigInDetFTKSequence
                [ftk_alg] = TrigInDetFTKSequence("BeamSpot", "beamSpot",
                                                 ["mon"]).getSequence()
            elif 'mon' in self.chainPart['addInfo']:
                from TrigInDetConf.TrigInDetFTKSequence import TrigInDetFTKSequence
                [trk_alg] = TrigInDetFTKSequence("BeamSpot", "beamSpot",
                                                 ["mon"]).getSequence()
            else:
                from TrigInDetConf.TrigInDetFTKSequence import TrigInDetFTKSequence
                [trk_alg] = TrigInDetFTKSequence("BeamSpot", "beamSpot",
                                                 [""]).getSequence()

        elif ('FTKRefit' in self.l2IDAlg):
            if 'trkFS' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_FTKRefit
                theFex = T2VertexBeamSpot_FTKRefit()
            elif 'activeTE' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeTE_FTKRefit
                theFex = T2VertexBeamSpot_activeTE_FTKRefit()
            elif 'allTE' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeAllTE_FTKRefit
                theFex = T2VertexBeamSpot_activeAllTE_FTKRefit()
            elif 'idperf' in self.chainPart['addInfo']:
                from TrigT2BeamSpot.T2VertexBeamSpotConfig import T2VertexBeamSpot_activeAllTE_FTKRefit
                theFex = T2VertexBeamSpot_activeAllTE_FTKRefit()
                from TrigFTK_Monitoring.FtkHltEfficiencyConfig import FtkHltEfficiencyFex
                moni_alg = FtkHltEfficiencyFex()
            else:
                mlog.error(
                    'Cannot assemble chain %s - only configured for trkFS,allTE and activeTE'
                    % (self.chainPartName))

            if 'idperf' in self.chainPart['addInfo']:
                from TrigInDetConf.TrigInDetSequence import TrigInDetSequence
                [trk_alg
                 ] = TrigInDetSequence("BeamSpot",
                                       "beamSpot",
                                       "IDTrig",
                                       sequenceFlavour=["FTF"]).getSequence()
                from TrigInDetConf.TrigInDetFTKSequence import TrigInDetFTKSequence
                [ftk_alg] = TrigInDetFTKSequence("BeamSpot", "beamSpot",
                                                 ["refit"]).getSequence()
            else:
                from TrigInDetConf.TrigInDetFTKSequence import TrigInDetFTKSequence
                [trk_alg] = TrigInDetFTKSequence("BeamSpot", "beamSpot",
                                                 ["refit"]).getSequence()

        else:
            mlog.error(
                'Cannot assemble chain %s - only configured for L2StarB' %
                (self.chainPartName))

        from TrigGenericAlgs.TrigGenericAlgsConf import PESA__DummyUnseededAllTEAlgo

        #     self.L2sequenceList += [ [[""], [trk_alg], 'L2_BeamSpottracks']]

        #     self.L2sequenceList +=[[ self.L2InputTE, [theFex], 'L2_fex']]
        #     self.L2sequenceList +=[[['L2_fex'], [theAlg], 'L2_']]
        #
        if (('FTK' in self.l2IDAlg or 'FTKRefit' in self.l2IDAlg)
                and 'idperf' in self.chainPart['addInfo']):
            self.L2sequenceList += [[[
                ""
            ], [PESA__DummyUnseededAllTEAlgo("L2DummyAlgo")] + trk_alg,
                                     'L2_BeamSpotFTFtracks']]
            self.L2sequenceList += [[['L2_BeamSpotFTFtracks'], [moni_alg],
                                     'L2_moni']]
            self.L2sequenceList += [[['L2_moni'], ftk_alg,
                                     'L2_BeamSpottracks']]
        else:
            self.L2sequenceList += [[[
                ""
            ], [PESA__DummyUnseededAllTEAlgo("L2DummyAlgo")] + trk_alg,
                                     'L2_BeamSpottracks']]

        if ('idperf' in self.chainPart['addInfo']):
            self.L2sequenceList += [[['L2_BeamSpottracks'], [theAlg], 'L2_']]
        else:
            self.L2sequenceList += [[['L2_BeamSpottracks'], [theFex],
                                     'L2_fex']]
            self.L2sequenceList += [[['L2_fex'], [theAlg], 'L2_']]

        if (('FTK' in self.l2IDAlg or 'FTKRefit' in self.l2IDAlg)
                and 'idperf' in self.chainPart['addInfo']):
            self.L2signatureList += [[['L2_BeamSpotFTFtracks']]]
            self.L2signatureList += [[['L2_moni']]]

        self.L2signatureList += [[['L2_BeamSpottracks']]]

        if ('idperf' in self.chainPart['addInfo']):
            self.L2signatureList += [[['L2_']]]
        else:
            self.L2signatureList += [[['L2_fex']]]
            self.L2signatureList += [[['L2_']]]

        self.TErenamingDict = {
            'L2_fex':
            mergeRemovingOverlap('L2_', self.chainName + '_fex'),
            #'L2_'              : mergeRemovingOverlap('L2_', self.chainName+self.chainPart['addInfo'][0]),
            'L2_':
            mergeRemovingOverlap('L2_', self.chainName),
            'L2_BeamSpottracks':
            mergeRemovingOverlap('L2_', self.chainName + '_BeamSpottracks'),
        }
Beispiel #16
0
    def setup_mb_sptrk(self):
        doHeavyIon = False
        if 'ion' in self.chainPart['extra']:
            doHeavyIon = True

        doSpNcb = False
        if 'ncb' in self.chainPart['extra']:
            doSpNcb = True

        doBLayer = False
        if 'blayer' in self.chainPart['extra']:
            doBLayer = True

        doVetoSp = False
        if 'vetosp' in self.chainPart['extra']:
            doVetoSp = True

        doSptrk = False
        if "sptrk" in self.chainPart['recoAlg']:  #do EFID
            doSptrk = True

        doMbtsVeto = False
        if "vetombts2in" in self.chainPart[
                'extra'] or "vetospmbts2in" in self.chainPart[
                    'extra']:  #do EFID
            doMbtsVeto = True
            theL2MbtsFex = L2MbMbtsFex
            theL2MbtsHypo = MbMbtsHypo("L2MbMbtsHypo_1_1_inn_veto")

        if "vetombts1side2in" in self.chainPart['extra']:  #do EFID
            doMbtsVeto = True
            theL2MbtsFex = L2MbMbtsFex
            theL2MbtsHypo = MbMbtsHypo("L2MbMbtsHypo_1_1_inn_one_side_veto")

        ########## L2 algos ##################
        #if "sptrk" or "sp" in self.chainPart['recoAlg']:
        if "noisesup" in self.chainPart['extra']:
            chainSuffix = "sptrk_noisesup"
            theL2Fex = L2MbSpFex_SCTNoiseSup
        elif doSpNcb:
            # spacepoint halo trigger is SCT only
            theL2Fex = L2MbSpFex_ncb
            chainSuffix = "sp_ncb"
        elif doBLayer:
            # pix occupancy trigger only counts the innermost pix layer
            theL2Fex = L2MbSpFex_BLayer
            chainSuffix = "sp_blayer"
        else:
            theL2Fex = L2MbSpFex
            if doSptrk:
                chainSuffix = "sptrk"
            elif doVetoSp:
                chainSuffix = "sp_vetosp"
            else:
                chainSuffix = "sp"

        if doMbtsVeto:
            if "vetombts2in" in self.chainPart['extra']:
                chainSuffix = chainSuffix + "_vetombts2in"
            if "vetombts1side2in" in self.chainPart['extra']:
                chainSuffix = chainSuffix + "_vetombts1side2in"

        if doMbtsVeto and doVetoSp:  # this will never be done w tracks
            chainSuffix = "sp_vetospmbts2in"

        if doSpNcb:
            theL2Hypo = L2MbSpHypo_ncb
        elif doBLayer:
            theL2Hypo = L2MbSpHypo_blayer
        elif doVetoSp:
            theL2Hypo = L2MbSpHypo_veto
        else:
            theL2Hypo = L2MbSpHypo

        ########## EF algos ##################
        #if "sptrk" in self.chainPart['recoAlg']:
        if "costr" in self.chainPart['trkInfo']:
            chainSuffix = chainSuffix + "_costr"

            from InDetTrigRecExample.EFInDetConfig import TrigEFIDInsideOut_CosmicsN
            efid_costr = TrigEFIDInsideOut_CosmicsN()
            theEFFex1 = efid_costr.getSequence()
            from TrigMinBias.TrigMinBiasConfig import MbTrkFex_1, MbTrkHypo_1
            theEFFex2 = MbTrkFex_1("MbTrkFex_" + chainSuffix)
            theEFFex2.InputTrackContainerName = "InDetTrigTrackSlimmerIOTRT_CosmicsN_EFID"
            theEFHypo = MbTrkHypo_1("MbTrkHypo_" + chainSuffix)
            theEFHypo.AcceptAll_EF = False
            theEFHypo.Required_ntrks = 1
            theEFHypo.Max_z0 = 1000.0
        else:
            if not doHeavyIon:
                theEFFex1 = efid
            else:
                theEFFex1 = efid_heavyIon

            theEFFex2 = EFMbTrkFex
            efhypo = self.chainPart['hypoEFInfo']
            if efhypo:
                if "pt" in self.chainPart['hypoEFInfo']:
                    efth = efhypo.lstrip('pt')
                    threshold = float(efth)
                    theEFHypo = MbTrkHypo('EFMbTrkHypo_pt%d' % threshold)
                    theEFHypo.Min_pt = threshold
                    theEFHypo.Max_z0 = 401.
                    chainSuffix = chainSuffix + '_pt' + efth
                elif "trk" in self.chainPart['hypoEFInfo']:
                    efth = efhypo.lstrip('trk')
                    theEFHypo = MbTrkHypo('EFMbTrkHypo_trk%i' % int(efth))
                    theEFHypo.Required_ntrks = int(efth)
                    theEFHypo.Min_pt = 0.200
                    theEFHypo.Max_z0 = 401.
                    chainSuffix = chainSuffix + '_trk' + efth
            elif 'exclusiveloose' in self.chainPart['extra']:
                efth = 0.200  #default
                theEFHypo = EFMbTrkHypoExclusiveLoose
                chainSuffix = chainSuffix + "_exclusiveloose"
            elif 'exclusivetight' in self.chainPart['extra']:
                efth = 0.200  #default
                theEFHypo = EFMbTrkHypoExclusiveTight
                chainSuffix = chainSuffix + "_exclusivetight"
            else:
                efth = 0.200  #default
                theEFHypo = EFMbTrkHypo

            #print "igb: ", efhypo
            #print "igb: ", theEFHypo.Min_pt

        ########### Sequence List ##############

        self.L2sequenceList += [["", [dummyRoI], 'L2_mb_dummy']]

        if doMbtsVeto:
            self.L2sequenceList += [[
                'L2_mb_dummy', [theL2MbtsFex, theL2MbtsHypo], 'L2_mb_mbtsveto'
            ]]
            self.L2sequenceList += [[
                'L2_mb_mbtsveto', efiddataprep, 'L2_mb_iddataprep'
            ]]
        else:
            self.L2sequenceList += [[
                'L2_mb_dummy', efiddataprep, 'L2_mb_iddataprep'
            ]]

        self.L2sequenceList += [[['L2_mb_iddataprep'], [theL2Fex, theL2Hypo],
                                 'L2_mb_step1']]

        if doSptrk:
            self.EFsequenceList += [[['L2_mb_step1'],
                                     theEFFex1 + [theEFFex2, theEFHypo],
                                     'EF_mb_step1']]
            if 'peb' in self.chainPart['addInfo']:
                from TrigDetCalib.TrigDetCalibConfig import TrigSubDetListWriter
                ALFASubDetListWriter = TrigSubDetListWriter(
                    "ALFASubDetListWriter")
                ALFASubDetListWriter.SubdetId = [
                    'TDAQ_HLT', 'TDAQ_CTP', 'InnerDetector', 'DBM',
                    'FORWARD_ALPHA', 'FORWARD_LUCID', 'FORWARD_ZDC',
                    'FORWARD_BCM'
                ]
                ALFASubDetListWriter.MaxRoIsPerEvent = 1
                self.EFsequenceList += [[['EF_mb_step1'],
                                         [ALFASubDetListWriter],
                                         'EF_mb_step2']]

        ########### Signatures ###########

        self.L2signatureList += [[['L2_mb_dummy']]]
        if doMbtsVeto:
            self.L2signatureList += [[['L2_mb_mbtsveto']]]
        self.L2signatureList += [[['L2_mb_iddataprep']]]
        self.L2signatureList += [[['L2_mb_step1']]]
        if doSptrk:
            self.EFsignatureList += [[['EF_mb_step1']]]
            if 'peb' in self.chainPart['addInfo']:
                self.EFsignatureList += [[['EF_mb_step2']]]

        self.TErenamingDict = {
            'L2_mb_dummy': mergeRemovingOverlap('L2_dummy_', chainSuffix),
            'L2_mb_mbtsveto': mergeRemovingOverlap('L2_mbtsveto_',
                                                   chainSuffix),
            'L2_mb_iddataprep': mergeRemovingOverlap('L2_iddataprep_',
                                                     chainSuffix),
            'L2_mb_step1': mergeRemovingOverlap('L2_', chainSuffix),
            'EF_mb_step1': mergeRemovingOverlap('EF_', chainSuffix),
        }

        if 'peb' in self.chainPart['addInfo']:
            self.TErenamingDict['EF_mb_step2'] = mergeRemovingOverlap(
                'EF_', chainSuffix + '_peb')