Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
import FWCore.ParameterSet.Config as cms

db_client = cms.EDAnalyzer("SiStripCommissioningOfflineDbClient",
  # general parameters
  FilePath         = cms.untracked.string('/tmp'),
  RunNumber        = cms.untracked.uint32(0),
  UseClientFile    = cms.untracked.bool(False),
  UploadHwConfig   = cms.untracked.bool(False),
  UploadAnalyses   = cms.untracked.bool(False),
  DisableDevices   = cms.untracked.bool(False),
  SaveClientFile   = cms.untracked.bool(True),
  SummaryXmlFile   = cms.untracked.FileInPath('DQM/SiStripCommissioningClients/data/summary.xml'),
  # individual parameters
  ApvTimingParameters      = cms.PSet(
    SkipFecUpdate = cms.bool(False),  # skip upload of APV PLL settings
    SkipFedUpdate = cms.bool(False),  # skip upload of FED frame finding threshold
    TargetDelay = cms.int32(-1)       # -1: latest tick (old default), otherwise target delay for all ticks' rising edge
  ),
  CalibrationParameters  = cms.PSet(
        targetRiseTime     = cms.double(50),
        targetDecayTime    = cms.double(125),
        tuneSimultaneously = cms.bool(False)
        ),
  DaqScopeModeParameters   = cms.PSet(
        HighThreshold       = cms.double(5),
        LowThreshold        = cms.double(2),
        DisableBadStrips    = cms.bool(False),
        DeadStripMax        = cms.double(10),
        NoisyStripMin       = cms.double(10),
        KeepsStripsDisabled = cms.bool(False),
        SkipPedestalUpdate  = cms.bool(False),
        SkipTickUpdate  = cms.bool(False)
        ),
  FastFedCablingParameters = cms.PSet(),
  FedCablingParameters     = cms.PSet(),
  FedTimingParameters      = cms.PSet(),
  FineDelayParameters      = cms.PSet(
    cosmic =  cms.bool(True)
  ),
  LatencyParamameters      = cms.PSet(
    OptimizePerPartition = cms.bool(False)
  ),
  NoiseParameters          = cms.PSet(),
  OptoScanParameters       = cms.PSet(
    TargetGain = cms.double(0.863),   # target gain (0.863 ~ 690ADC for tickmark)
    SkipGainUpdate = cms.bool(False)  # wether to keep the gain the same as already on the db
  ),
  PedestalsParameters      = cms.PSet(
    DeadStripMax        = cms.double(10),   # number times the noise spread below mean noise
    NoisyStripMin       = cms.double(10),   # number times the noise spread above mean noise
    HighThreshold       = cms.double(5),    # analysis-wide high threshold for the fed zero suppression
    LowThreshold        = cms.double(2),    # analysis-wide low threshold for the fed zero suppression
    DisableBadStrips    = cms.bool(False),  # for experts! disables bad strips on the fed level 
    AddBadStrips	= cms.bool(False),  #for experts! keep and add disabled bad strips. 
    KeepStripsDisabled = cms.bool(False)    # for experts! keep strips disabled as in the db's current state
  ),
  PedsOnlyParameters       = cms.PSet(),
  ### Bad channel analysis                           
  PedsFullNoiseParameters  = cms.PSet(
        #### selections used to define a bad strip
        MaxDriftResidualCut = cms.double(20),  ### the strip baseline can drift during run .. if more then N ADC count, mark the strip as bad
        MinStripNoiseCut  = cms.double(2),     ### if a strip has a noise value less the N ADC, mark as low noisy i.e. bad
        MaxStripNoiseCut  = cms.double(30),    ### if a strip has a noise value larger than N ADC, mark strip has high noisy i.e. bad
        MaxStripNoiseSignificanceCut = cms.double(10), ## if a strip has a noise significance larger than N, mark it as bad
        AdProbabCut   = cms.double(0.002699796063), ### this is 3 sigma quantile selection on the AndersonDarling p-value
        KsProbabCut   = cms.double(0.002699796063), ### this is 3 sigma quantile selection on the Kolmogorov Smirnov p-value
        GenerateRandomHisto = cms.bool(False), ### random sampling of the gaussian fit or not while computing p-values
        JbProbabCut   = cms.double(0.000000573303), ### this is 3 sigma quantile selection on the jacque-Bera p-value 
        Chi2ProbabCut = cms.double(0.000000573303), ### this is 3 sigma quantile selection on the chi2 p-value (from a Gaussian fit)
        KurtosisCut   = cms.double(2),  ### max value of kurtosis to identify strips with long tails
        IntegralNsigma  = cms.int32(5), ### this is expressed in terms of number of gaussian quantiles .. 5 means take the integral 5-sigma from the peak
        IntegralTailCut = cms.double(0.0005), ### selection on the N-sigma integral
        AshmanDistance  = cms.double(2),    ### to flag double peaked strips
        AmplitudeRatio  = cms.double(0.85), ### to flag double peaked strips
        #### Zero suppression information
        HighThreshold    = cms.double(5),  ### analysis-wide high threshold for the fed zero suppression
        LowThreshold     = cms.double(2),  ### analysis-wide low threshold for the fed zero suppression
        #### Flags on bad strips
        DisableBadStrips   = cms.bool(True),  ### When the upload is performed, strips are masked in case they are flagged by the analysis
        KeepStripsDisabled = cms.bool(False), ### True: if a strip is already flagged bad in the db, it will be kept bad; False: if a strip was bad, now the analysis will tell us if it's bad or not
        UploadOnlyStripBadChannelBit = cms.bool(False), ### True: means that pedestal and noise values are not changed in the FED version --> use old values
        SkipEmptyStrips    =  cms.bool(True), ### In the analysis, if true strips with no data are not marked as bad but as dead --> could be mis-configured at the time of the run, not masked
        UploadPedsFullNoiseDBTable = cms.bool(False) ### Tell whether the PedsFullNoise DB table needs to be uploaded --> for the time being this can be done ONLY on the oracle test account.
        ),
  SamplingParameters       = cms.PSet(),
  VpspScanParameters       = cms.PSet(),
)