# Basic configuration file. # Execute with: gaudirun.py $KEPLERROOT/options/example.py from Gaudi.Configuration import * from Configurables import Kepler import pickle import ROOT # Set the path to the directory/files to be processed path = 'eos/lhcb/testbeam/velo/timepix3/' RUN = '9110' # if int(RUN) < 2000: # path += 'July' # elif int(RUN) < 2815: # path += 'Oct' # elif int(RUN) < 4000: # path += 'Nov' # else: # path += 'Dec' # path += '2014' path += 'July2015' Kepler().InputFiles = [path + '/RawData/Run' + RUN + '/'] Kepler().PixelConfigFile = ["eos/lhcb/testbeam/velo/timepix3/July2014/RootFiles/Run1236/Conditions/PixelConfig.dat"] Kepler().AlignmentFile = path + '/RootFiles/Run' + RUN + '/Conditions/Alignment' + RUN + 'mille.dat' #Kepler().AlignmentFile = 'ResStudies/Alignments/dut/Alignment2509.dat' Kepler().HistogramFile= 'Kepler_histos_' + RUN + '.root' # Set the number of events to run over Kepler().EvtMax = 11000000 #Kepler().TimingConfigFile = "myTimingConfig.dat" # Set the configuration of the individual algorithms, e. g. from Configurables import TbEventBuilder #TbEventBuilder().MinPlanesWithHits = 5 from Configurables import TbClustering TbClustering().PrintConfiguration = True from Configurables import TbSimpleTracking TbSimpleTracking().PrintConfiguration = True from Configurables import TbVisualiserOutput TbVisualiserOutput().PrintConfiguration = True TbVisualiserOutput().ViewerEvent = 1049 Kepler().UserAlgorithms = [TbVisualiserOutput()] DUT_id = pickle.load( open( "DUTnum.p", "rb" ) ) #DUT_id = 3 fResiduals = ROOT.TFile("UnbiasedLocalResolutionsPerPlane.root") gx = fResiduals.Get("xPerPlane") gy = fResiduals.Get("yPerPlane") scaling = 15 print ((gx.GetBinContent(DUT_id+1)**2 + gy.GetBinContent(DUT_id+1)**2)**0.5) allowance = scaling * ((gx.GetBinContent(DUT_id+1)**2 + gy.GetBinContent(DUT_id+1)**2)**0.5) print 'DUT_id', DUT_id print 'allowance:', allowance def egRun(): from Configurables import TbEventBuilder, TbTrackPlots, TbCalibration, TbVisualiserOutput from Configurables import TbClustering, TbClusterPlots, TbSimpleTracking, TbHitMonitor from Configurables import TbClusterAssociator, TbEfficiency, TbDUTMonitor TbEventBuilder().PrintFreq = 10 TbSimpleTracking().TimeWindow = 6 TbSimpleTracking().MaxDistance = 0 TbSimpleTracking().MinPlanes = 7 TbSimpleTracking().MaskedPlanes = [DUT_id, 4] TbSimpleTracking().MaxOpeningAngle = 0.005 TbSimpleTracking().RecheckTrack = True TbSimpleTracking().ChargeCutLow = 0 TbSimpleTracking().DoOccupancyCut = True TbSimpleTracking().MaxClusterSize = 20 TbSimpleTracking().MaxOccupancy = 7 # not inclusive TbTrackPlots().MaskedPlanes = [DUT_id, 4] TbClusterAssociator().DUTs = [DUT_id] TbDUTMonitor().DUTs = [DUT_id] TbClusterAssociator().TimeWindow = 10 TbClusterAssociator().XWindow = allowance TbEfficiency().CheckHitDUT = True TbEfficiency().CheckHitAlivePixel = True TbEfficiency().DUT = DUT_id TbEfficiency().TakeDeadPixelsFromFile = True TbEfficiency().nTotalTracks =500000 TbEfficiency().MaxChi = 2 seq = GaudiSequencer("Telescope") seq.Members = [TbEventBuilder(), TbClustering(), TbSimpleTracking(), TbClusterAssociator(), TbEfficiency()] #seq.Members = [TbEventBuilder()] seq = GaudiSequencer("Monitoring") from Configurables import TbHitMonitor, TbClusterPlots, TbTrackPlots #seq.Members = [TbHitMonitor(), TbClusterPlots(), TbTrackPlots(), TbDUTMonitor(), TbVisualiserOutput()] seq.Members = [TbDUTMonitor()] appendPostConfigAction(egRun)