T1 detector

retrieve raw list of dead and noisy channels

Sample T1 dead channels list is placed in the repository:

CMSSW_4_2_4/src/TotemCondFormats/DAQInformation/data/T1DeadChannelsList.xml
It was obtained using run 5656 and parameters:
deadCutValue = 200
noiseCutValue = 9

The list of dead and noisy channels can be obtained by using T1DeadChannelAnalyzer that is similar to T1XMLDataDigiProducer. T1DeadChannelAnalyzer code is placed :

CMSSW_4_2_4/src/TotemRawData/RawToDigi/plugins/T1DeadChannelAnalyzer.cc

T1DeadChannelAnalyzer count hits per channel and saves it in the map: encoded_channel_number -> number_of_hits.

Where:

encoded_channel_number  = 1000000 * arm + 100000 * plane + 10000 * chamber + 1000 * channelType + channelNumber; 

You can run T1DeadChannelAnalyzer using sample configuration file:

import FWCore.ParameterSet.Config as cms
process = cms.Process("T1ChannelsHitRate")
process.maxEvents = cms.untracked.PSet(
    input = cms.untracked.int32(NUMBER_OF_EVENTS)
)
process.load("Configuration.TotemCommon.LoggerMin_cfi")
process.source = cms.Source("RawDataSource",
    verbosity = cms.untracked.uint32(0),
    eventsToCheck = cms.uint32(10),
    skipCorruptedEvents = cms.bool(False),
    performChecks = cms.bool(True), 
    setRunNumberFromFileName=cms.bool(False),    
    fileNames = cms.untracked.vstring('/castor/cern.ch/totem/LHCRawData/2011/Physics/run_5656.000.vmea')
)
process.t1channes = cms.EDAnalyzer("T1DeadChannelDataAnalyzer",
                                    verbosity = cms.untracked.uint32(0),
                                    deadCutValue= cms.untracked.uint32(150),
                                    noiseCutValue= cms.untracked.uint32(10),
                                    outputFile = cms.string("T1RawDeadChannelsList.txt")
)
process.DAQInformationSourceXML = cms.ESSource("DAQInformationSourceXML",
    xmlFileName = cms.string('TotemRawData/RawToDigi/python/T1_all_0.xml')
)
process.o1 = cms.OutputModule("PoolOutputModule",
    fileName = cms.untracked.string('./deadChannels.root'),
    outputCommands=cms.untracked.vstring('drop totemRawEvent_*_*_*')
)
process.p1 = cms.Path(process.t1channes)
process.outpath = cms.EndPath(process.o1)

it is advised to set NUMBER_OF_EVENTS > 10 000.

deadCutValue and noiseCutValue is used when checking if channel is dead or noisy. By default deadCutValue = 200 and noiseCutValue = 9.

It means that channel is considered dead if it's hits number is less or equal than average_number_of_hits_per_channel_in_plane / deadCutValue

channel is considered as noisy when it's hits number is greater or equal then average_number_of_hits_per_channel_in_plane * noiseCutValue

At the end of processing all channels that are considered dead or noisy are printed to a file. File name can be set using "outputFile" parameter.

above configuration file is placed:

CMSSW_4_2_4/src/TotemCondFormats/DAQInformation/test/T1DeadChannelAnalyzer_runner.py

The output has format:

arm:plane:chamber:channel_type:channel_number

It is called raw dead/noisy channels list.

Chart presenting number of hits per channel in T1 detector - can be helpful when picking deadCutValue and noiseCutValue parameters.

  • T1ChannelsHitRate:
    channels_unsorted.jpg

Create XML file with dead and noisy channels

Raw dead/noisy channels list has to be changed to XML file. To do that i wrote T1RawDeadChannelsToXML.py that parse raw dead channels list file and prints xml format list.

The code can be found there:

CMSSW_4_2_4/src/TotemCondFormats/DAQInformation/scripts/T1DeadChannelsToXML.py

to run it:

$ python2.6 T1RawDeadChannelsToXML.py    T1RawDeadChannelsList.txt     >    T1DeadChannelsList.xml 

If you see error like this:

Traceback (most recent call last):
  File "T1DeadChannelsToXML.py", line 74, in ?
    main()
  File "T1DeadChannelsToXML.py", line 70, in main
    deadChannelsMap[arm][plane][chamber][channelType][channel] = True;
KeyError: '0'

It means that your python version is lower than 2.6.

use AnalysisMask in order to exclude channels from simulation and reconstruction

To exclude channels from simulation or reconstruction we have to simply check whether an AnalysisMask contains this channels and then (if it is true) skip operation. For T1 it is done in:

Real data processing:

In class (TotemRawData/RawToDigi/plugins/Raw2DigiProducer.cc) in method T1DataProduce

Simulation:

In classes:

T1DigiProducer (SimTotem/T1DigiProducer/src/T1DigiProducer.cc)

T1Digitizer (SimTotem/T1DigiProducer/src/T1Digitizer.cc)

T1WireElectronicsSim (SimTotem/T1DigiProducer/src/T1WireElectronicsSim.cc)

T1StripElectronicsSimStandard (SimTotem/T1DigiProducer/src/T1StripElectronicsSimStandard.cc)

T1StripElectronicsSimVfat (SimTotem/T1DigiProducer/src/T1StripElectronicsSimVfat.cc)

  • reading AnalysisMask
In method beginJob of T1DigiProducer (after software migration it is very likely that this method will change to beginRun)

  • removing dead and noisy channels
In method produce, using T1DeadChannelsManager (SimTotem/T1DigiProducer/src/T1DeadChannelsManager.cc)

-- MarcinBorratynski - 08-Sep-2011

Topic attachments
I Attachment History Action Size Date Who Comment
JPEGjpg channels_unsorted.jpg r1 manage 90.4 K 2011-09-09 - 20:09 JakubSmajek  
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2011-09-12 - MarcinBorratynski
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    TOTEM All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback