def FastClusterMakerTool(name="FastClusterMakerTool", **kwargs):
    from Digitization.DigitizationFlags import digitizationFlags
    #FIXME: at some point we should move away from being dependent on the experimentalDigi flags.
    if 'doFastSCT_Digi' in digitizationFlags.experimentalDigi(
    ) and not 'doFastPixelDigi' in digitizationFlags.experimentalDigi():
        kwargs.setdefault("UsePixelCalibCondDB", False)
        kwargs.setdefault("PixelCalibSvc", "")
        kwargs.setdefault("PixelOfflineCalibSvc", "")
    else:
        from AthenaCommon.Include import include
        include("PixelConditionsServices/PixelDCSSvc_jobOptions.py")
        include.block("PixelConditionsServices/PixelDCSSvc_jobOptions.py")
        from AthenaCommon.AppMgr import ToolSvc
        if not hasattr(ToolSvc, "PixelRecoDbTool"):
            from PixelConditionsTools.PixelConditionsToolsConf import PixelRecoDbTool
            ToolSvc += PixelRecoDbTool()
        ToolSvc.PixelRecoDbTool.InputSource = 1

        # setup PixelCalibDbTool in ToolSvc
        if not hasattr(ToolSvc, "PixelCalibDbTool"):
            from PixelConditionsTools.PixelConditionsToolsConf import PixelCalibDbTool
            ToolSvc += PixelCalibDbTool()

        from IOVDbSvc.CondDB import conddb
        if not conddb.folderRequested('/PIXEL/PixCalib'):
            conddb.addFolder("PIXEL_OFL", "/PIXEL/PixCalib")
        if not conddb.folderRequested('/PIXEL/ReadoutSpeed'):
            conddb.addFolder("PIXEL_OFL", "/PIXEL/ReadoutSpeed")
        from AthenaCommon.AppMgr import ServiceMgr
        if not hasattr(ServiceMgr, "PixelCalibSvc"):
            from PixelConditionsServices.PixelConditionsServicesConf import PixelCalibSvc
            InDetPixelCalibSvc = PixelCalibSvc()
            ServiceMgr += InDetPixelCalibSvc
        if not hasattr(ServiceMgr, "PixelSiPropertiesSvc"):
            from SiLorentzAngleSvc.LorentzAngleSvcSetup import lorentzAngleSvc
            from SiPropertiesSvc.SiPropertiesSvcConf import SiPropertiesSvc
            PixelSiPropertiesSvc = SiPropertiesSvc(
                name="PixelSiPropertiesSvc",
                DetectorName="Pixel",
                SiConditionsServices=lorentzAngleSvc.pixelSiliconConditionsSvc)
            ServiceMgr += PixelSiPropertiesSvc
        if not hasattr(ServiceMgr, "PixelOfflineCalibSvc"):
            from PixelConditionsServices.PixelConditionsServicesConf import PixelOfflineCalibSvc
            ServiceMgr += PixelOfflineCalibSvc()
            ServiceMgr.PixelOfflineCalibSvc.HDCFromCOOL = False

    from AthenaCommon import CfgMgr
    return CfgMgr.InDet__ClusterMakerTool(name, **kwargs)
include.block("PixelConditionsServices/PixelCalibSvc_jobOptions.py")
# load library
#theApp.Dlls += [ "PixelConditionsServices" ]

#from AthenaCommon.AppMgr import ToolSvc

# configure PixelCalibSvc
from PixelConditionsServices.PixelConditionsServicesConf import PixelCalibSvc
ServiceMgr += PixelCalibSvc()
PixelCalibSvc = ServiceMgr.PixelCalibSvc

# configure PixelCalibDbTool
#from PixelConditionsTools.PixelConditionsToolsConf import PixelCalibDbTool
#ToolSvc +=PixelCalibDbTool()

#theApp.ExtSvc += [ "PixelCalibSvc" ]
#PixelCalibSvc = Service( "PixelCalibSvc" )

#theApp.Dlls += [ "PixelConditionsTools" ]
#theApp.Dlls +=["DetDescrCondTools","DetDescrCondExample"]
#if 'InDetCabling' not in theApp.Dlls:
#    theApp.Dlls += [ "InDetCabling" ]

# setup for ToolSvc
#ToolSvc = Service( "ToolSvc" )
#ToolSvc.ConditionsAlgStream.OutputFile="dummy.root"
# this example is for a local SQlite file mysqlfile.db, COOL DB named COOLTEST
#IOVDbSvc.dbConnection="impl=cool;techno=oracle;ATLAS_COOLPROD:COMP130:ATLAS_COOL_READER:COOLRED4PRD"
#IOVDbSvc.Folders+=[CondDBCool.PIXEL + "/PIXEL/PixCalib" + "<tag>PixCalib-Assembly-01</tag>"]
#IOVDbSvc.GlobalTag ="PixCalib-Assembly-00"
#IOVDbSvc.OutputLevel = DEBUG
Exemplo n.º 3
0
from IOVDbSvc.CondDB import conddb


from PixelConditionsTools.PixelConditionsToolsConf import PixelRecoDbTool
ToolSvc += PixelRecoDbTool()
ToolSvc.PixelRecoDbTool.InputSource = 1

from PixelConditionsTools.PixelConditionsToolsConf import PixelCalibDbTool
ToolSvc += PixelCalibDbTool()

if not conddb.folderRequested('/PIXEL/PixCalib'):
  conddb.addFolder("PIXEL_OFL","/PIXEL/PixCalib")
if not conddb.folderRequested('/PIXEL/ReadoutSpeed'):
  conddb.addFolder("PIXEL_OFL","/PIXEL/ReadoutSpeed")
from PixelConditionsServices.PixelConditionsServicesConf import PixelCalibSvc
InDetPixelCalibSvc = PixelCalibSvc()
ServiceMgr += InDetPixelCalibSvc



from FastSiDigitization.FastSiDigitizationConf import PixelFastDigitization

# now add config class to algsequence()
from AthenaCommon.AlgSequence import AlgSequence
job = AlgSequence()
if digitizationFlags.doXingByXingPileUp():
    from FastSiDigitization.FastSiDigitizationConf import PixelFastDigitizationTool
    job.PileUpToolsAlg.PileUpTools += [ PixelFastDigitizationTool() ]
    pix = job.PileUpToolsAlg.PileUpTools[ "PixelFastDigitizationTool" ]
else:
    job += PixelFastDigitization("PixelFastDigitization")
    def createSvc(self):
        from AthenaCommon.AppMgr import ToolSvc, ServiceMgr, theApp
        from IOVDbSvc.CondDB import conddb

        from PixelConditionsServices.PixelConditionsServicesConf import PixelConditionsSummarySvc as pixSummarySvc
        PixelConditionsSummarySvc = \
            pixSummarySvc(name=self.instanceName('PixelConditionsSummarySvc'),
                          UseDCS = self.useDCS,
                          UseByteStream=self.useBS,
                          #UseSpecialPixelMap= not self.onlineMode,
                          UseSpecialPixelMap=True,
                          UseTDAQ=self.useTDAQ
                          )
        #active states used by dcs (if on)
        if self.useDCS and not self.onlineMode:
            PixelConditionsSummarySvc.IsActiveStates = ['READY', 'ON']
            PixelConditionsSummarySvc.IsActiveStatus = ['OK', 'WARNING']

        ServiceMgr += PixelConditionsSummarySvc

        if self._print: print PixelConditionsSummarySvc

        # #create another instance of the PixelConditionsSummarySvc w/o BS
        # #   service to be used with RegionSelector
        # InDetTrigRSPixelConditionsSummarySvc = pixSummarySvc(name='InDetTrigRSPixelConditionsSummarySvc',
        #                                                      UseDCS = self.useDCS,
        #                                                      UseByteStream=self.useBS
        #                                                      UseSpecialPixelMap= True,
        #                                                      )
        # ServiceMgr += InDetTrigRSPixelConditionsSummarySvc
        # if self._print: print InDetTrigRSPixelConditionsSummarySvc

        if not self.onlineMode:
            from PixelConditionsServices.PixelConditionsServicesConf import PixelCalibSvc
            PixelCalibSvc = PixelCalibSvc(
                name=self.instanceName('PixelCalibSvc'))

            if not conddb.folderRequested("/PIXEL/PixCalib"):
                conddb.addFolder("PIXEL_OFL", "/PIXEL/PixCalib")

            if self._print: print PixelCalibSvc

            #only when inputsource=1
            #if not conddb.folderRequested("/PIXEL/PixReco"):
            #  conddb.addFolder("PIXEL_OFL","/PIXEL/PixReco")

        if not conddb.folderRequested("/PIXEL/PixReco"):
            conddb.addFolderSplitOnline("PIXEL", "/PIXEL/Onl/PixReco",
                                        "/PIXEL/PixReco")

        #Configure PixelRecoDbTool
        from PixelConditionsTools.PixelConditionsToolsConf import PixelRecoDbTool
        PixelRecoDbTool = PixelRecoDbTool(
            name=self.instanceName('PixelRecoDbTool'))
        ToolSvc += PixelRecoDbTool
        PixelRecoDbTool.InputSource = 2
        # if self.onlineMode:
        #   PixelRecoDbTool.InputSource = 1      #after change of run1 conditions
        # else:
        #   PixelRecoDbTool.InputSource = 2

        if self._print: print PixelRecoDbTool

        #use corresponding PixelRecoDBTool
        from PixelConditionsServices.PixelConditionsServicesConf import PixelOfflineCalibSvc
        PixelOfflineCalibSvc = PixelOfflineCalibSvc(
            self.instanceName('PixelOfflineCalibSvc'))
        PixelOfflineCalibSvc.PixelRecoDbTool = PixelRecoDbTool
        ServiceMgr += PixelOfflineCalibSvc

        if self._print: print PixelOfflineCalibSvc

        ### configure the special pixel map service
        if not (conddb.folderRequested("/PIXEL/PixMapShort")
                or conddb.folderRequested("/PIXEL/Onl/PixMapShort")):
            conddb.addFolderSplitOnline("PIXEL", "/PIXEL/Onl/PixMapShort",
                                        "/PIXEL/PixMapShort")
        if not (conddb.folderRequested("/PIXEL/PixMapLong")
                or conddb.folderRequested("/PIXEL/Onl/PixMapLong")):
            conddb.addFolderSplitOnline("PIXEL", "/PIXEL/Onl/PixMapLong",
                                        "/PIXEL/PixMapLong")
        if not (conddb.folderRequested("/PIXEL/NoiseMapShort")
                or conddb.folderRequested("/PIXEL/Onl/NoiseMapShort")):
            conddb.addFolderSplitOnline("PIXEL", "/PIXEL/Onl/NoiseMapShort",
                                        "/PIXEL/NoiseMapShort")
        if not (conddb.folderRequested("/PIXEL/NoiseMapLong")
                or conddb.folderRequested("/PIXEL/Onl/NoiseMapLong")):
            conddb.addFolderSplitOnline("PIXEL", "/PIXEL/Onl/NoiseMapLong",
                                        "/PIXEL/NoiseMapLong")
        if not (conddb.folderRequested("/PIXEL/PixMapOverlay")
                or conddb.folderRequested("/PIXEL/Onl/PixMapOverlay")):
            conddb.addFolderSplitOnline("PIXEL", "/PIXEL/Onl/PixMapOverlay",
                                        "/PIXEL/PixMapOverlay")

        from PixelConditionsServices.PixelConditionsServicesConf import SpecialPixelMapSvc

        SpecialPixelMapSvc = SpecialPixelMapSvc(name='SpecialPixelMapSvc')
        ServiceMgr += SpecialPixelMapSvc

        SpecialPixelMapSvc.DBFolders = [
            "/PIXEL/PixMapShort", "/PIXEL/PixMapLong"
        ]
        SpecialPixelMapSvc.SpecialPixelMapKeys = [
            "SpecialPixelMap", "SpecialPixelMapLong"
        ]

        SpecialPixelMapSvc.DBFolders += [
            "/PIXEL/NoiseMapShort", "/PIXEL/NoiseMapLong"
        ]
        SpecialPixelMapSvc.SpecialPixelMapKeys += [
            "NoiseMapShort", "NoiseMapLong"
        ]

        SpecialPixelMapSvc.OverlayKey = "PixMapOverlay"
        SpecialPixelMapSvc.OverlayFolder = "/PIXEL/PixMapOverlay"

        ServiceMgr += SpecialPixelMapSvc
        #theApp.CreateSvc += [ 'SpecialPixelMapSvc/%s' % self.instanceName('SpecialPixelMapSvc') ]

        if self._print: print SpecialPixelMapSvc

        from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
        from AthenaCommon.GlobalFlags import globalflags
        if self.useDCS or self.onlineMode:
            #sim
            if globalflags.DataSource() == 'geant4' or (
                    not athenaCommonFlags.isOnline()):
                if not conddb.folderRequested('/PIXEL/DCS/TEMPERATURE'):
                    conddb.addFolder("DCS_OFL", "/PIXEL/DCS/TEMPERATURE")
                if not conddb.folderRequested('/PIXEL/DCS/HV'):
                    conddb.addFolder("DCS_OFL", "/PIXEL/DCS/HV")
                if not conddb.folderRequested('/PIXEL/DCS/FSMSTATUS'):
                    conddb.addFolder("DCS_OFL", "/PIXEL/DCS/FSMSTATUS")
                if not conddb.folderRequested('/PIXEL/DCS/FSMSTATE'):
                    conddb.addFolder("DCS_OFL", "/PIXEL/DCS/FSMSTATE")
            else:
                if not conddb.folderRequested('/PIXEL/HLT/DCS/TEMPERATURE'):
                    conddb.addFolder("PIXEL_ONL", "/PIXEL/HLT/DCS/TEMPERATURE")
                    #conddb.addFolder("PIXEL","/PIXEL/HLT/DCS/TEMPERATURE <tag>PixDCSTemp-UPD1-00</tag>")
                if not conddb.folderRequested('/PIXEL/HLT/DCS/HV'):
                    conddb.addFolder("PIXEL_ONL", "/PIXEL/HLT/DCS/HV")
                    #conddb.addFolder("PIXEL","/PIXEL/HLT/DCS/HV <tag>PixDCSHV-UPD1-00</tag>")

            from PixelConditionsServices.PixelConditionsServicesConf import PixelDCSSvc
            InDetPixelDCSSvc = PixelDCSSvc(
                name='TrigPixelDCSSvc',
                RegisterCallback=True,
                TemperatureFolder="/PIXEL/DCS/TEMPERATURE",
                HVFolder="/PIXEL/DCS/HV",
                FSMStatusFolder="/PIXEL/DCS/FSMSTATUS",
                FSMStateFolder="/PIXEL/DCS/FSMSTATE",
                TemperatureFieldName="temperature",
                HVFieldName="HV",
                FSMStatusFieldName="FSM_status",
                FSMStateFieldName="FSM_state",
                UseFSMStatus=False,
                UseFSMState=False)

            if globalflags.DataSource() == 'data':
                if (not athenaCommonFlags.isOnline()):
                    InDetPixelDCSSvc.TemperatureFolder = "/PIXEL/DCS/TEMPERATURE"
                    InDetPixelDCSSvc.HVFolder = "/PIXEL/DCS/HV"
                else:
                    InDetPixelDCSSvc.TemperatureFolder = "/PIXEL/HLT/DCS/TEMPERATURE"
                    InDetPixelDCSSvc.HVFolder = "/PIXEL/HLT/DCS/HV"

            ServiceMgr += InDetPixelDCSSvc

        if self.useDCS or self.onlineMode:
            if self._print: print InDetPixelDCSSvc

        #this needs also updates how LorentzAngleSvc is accessed ()
        from SiLorentzAngleSvc.SiLorentzAngleSvcConf import SiLorentzAngleSvc
        PixelLorentzAngleSvc = SiLorentzAngleSvc(name='PixelLorentzAngleSvc')
        from PixelConditionsServices.PixelConditionsServicesConf import PixelSiliconConditionsSvc
        pixelSiliconConditionsSvc = PixelSiliconConditionsSvc(
            name=self.instanceName('PixelSiliconConditionsSvc'),
            PixelDCSSvc='TrigPixelDCSSvc')
        pixelSiliconConditionsSvc.ForceUseGeoModel = False
        pixelSiliconConditionsSvc.UseDBForHV = True
        pixelSiliconConditionsSvc.UseDBForTemperature = True
        ServiceMgr += pixelSiliconConditionsSvc

        PixelLorentzAngleSvc.SiConditionsServices = pixelSiliconConditionsSvc
        PixelLorentzAngleSvc.UseMagFieldSvc = True  #may need also MagFieldSvc instance

        #if self.useDCS or self.onlineMode:
        #if (globalflags.DataSource() == 'data'):
        #else:
        #pixelSiliconConditionsSvc.ForceUseGeoModel = True
        #PixelLorentzAngleSvc.pixelForceUseGeoModel()
        if self._print:
            print pixelSiliconConditionsSvc
            print PixelLorentzAngleSvc
Exemplo n.º 5
0
#conddb.addFolder("PIXEL_OFL","/PIXEL/PixMapOverlay")
#conddb.addOverride('/PIXEL/PixMapShort','PixMapShort-Test-00')
#conddb.addOverride('/PIXEL/PixMapLong','PixMapLong-Test-00')

if mySQ:
  if isIBL:
    conddb.iovdbsvc.Folders = [ "<dbConnection>sqlite://;schema=pixmapdb_ibl3ddbm_IBL3D25DBM-04-01.db;dbname=OFLP200</dbConnection> /PIXEL/PixCalib <tag>PixCalib-IBL3D25DBM-04-01</tag>" ]
  else:
    conddb.iovdbsvc.Folders = [ "<dbConnection>sqlite://;schema=pixmapdb.db;dbname=OFLP200</dbConnection> /PIXEL/PixCalib <tag>PixCalib-IBL3D25DBM-04-01</tag>" ]
else:
  conddb.addFolder("PIXEL_OFL","/PIXEL/PixCalib")

### configure the special pixel map service

from PixelConditionsServices.PixelConditionsServicesConf import PixelCalibSvc
PixelCalibSvc = PixelCalibSvc()

ServiceMgr.EventSelector.RunNumber = 282222
#ServiceMgr.EventSelector.RunNumber = 222222
#ServiceMgr.EventSelector.RunNumber = 200805

### define the job

from AthenaCommon.AlgSequence import AlgSequence

job = AlgSequence()

from PixelConditionsServices.PixelConditionsServicesConf import PixelCalibServiceTest

job +=PixelCalibServiceTest(OutputTextFile =myOutput, MakeDummy = TRUE )