TWiki> CMS Web>NewPhysics>CmsSusy>SiPixelQuality (revision 27)EditAttach

v39 ToDo

- Failing ROCs not listed under "Known Problems":
  -- FPix_BpI_D2_BLD2_PNL1_PLQ1_ROC0 (completely new)
  -- BPix_BmO_SEC1_LYR3_LDR3F_MOD3_ROC5 (already seen in the past)
Unkown:
BPix_BpI_SEC3_LYR1_LDR4F_MOD3_ROC2 - bad levels
BPix_BmI_SEC5_LYR1_LDR6F_MOD3_ROC0 - bad levels
Bpix_BmO_SEC1_LYR3_LDR3F_MOD3_ROC5 - bad levels

Already known:
  BPix_BpO_SEC4_LYR2_LDR8F_MOD1_ROC3 - disabled (BBB)
  BPix_BpI_SEC2_LYR3_LDR6F_MOD1_ROC14 - disabled (no hits)
  BPix_BmO_SEC8_LYR1_LDR9F_MOD4_ROC[8-15] (TBM-B) - out (known)
  BPix_BmO_SEC4_LYR2_LDR8F_MOD4_ROC7 - disabled (BBB)
  BPix_BmO_SEC3_LYR2 - out
  Bpix_BmI_SEC6_LYR3_LDR14F_MOD4_ROC11 - out (generates BUSY)
  FPix_BmO_D2_BLD10_PNL1_PLQ2_ROC4 - disabled (newly in detconfig 212)
  FPix_BpO_D1_BLD5_PNL2_PLQ2_ROC6 - disabled

!!!!!!!!
FPix_BmO_D2_BLD10_PNL1_PLQ2_ROC4
!!!!!!!!

Procedure

Environment

# create a new directory with an appropriate name 
# choose a run on which the data validation will be done, let's refer to it as $run$
https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary
# Need to choose a collision run, the button "for the last 24 hours" is a good starting point, but of course the main thing is that the run should be later then the module was switched off. 
# One can also set up the date intervals in the webpage
grid-proxy-init
das_client --query="dataset run=$run$" --limit=0 | grep "/FEVT"
# choose the FEVT dataset
# in case that is not yet avaible 
# das_client --query="das_client --query="dataset run=$run$" --limit=0 | grep "/RECO" | grep "Zero"
" and choose the RECO
# lets refer to the found dataset as $dataset$ now
# check the following, this must give back the dataset
das_client --query="dataset dataset=$dataset$ run=$run$"
# check whether the dataset is avaible on disk or not, this query must give back at least one T2 site. Otherwise, choose an other dataset.
das_client --query="site dataset=$dataset$" --limit=0
# check the release
das_client --query="release dataset=$dataset$"
# let's choose the most recent one and now refer to it as $release$
cmsrel $release$
cd $release$/src
cmsenv
git cms-addpkg CondTools/SiPixel
git clone https://github.com/jkarancs/PixelTimingStudy DPGAnalysis/PixelTimingStudy
vim DPGAnalysis/PixelTimingStudy/plugins/TimingStudy.cc 
#define COMPLETE 0
#define SPLIT 2

vim DPGAnalysis/PixelTimingStudy/plugins/TimingStudy.h

#define COMPLETE 0

scram b -j 10

New Quality payload generation

cd CondTools/SiPixel/test
# choose the most recent config from git using the link below
https://github.com/tvami/SiPixelQualtiyValidation
# let me note the version number now like $xy$
wget https://raw.githubusercontent.com/tvami/SiPixelQualtiyValidation/master/0SiPixelBadModuleByHandBuilder_cfg_v$xy$.py
# add the new bad module(s) to a new file
cp 0SiPixelBadModuleByHandBuilder_cfg_v$xy$.py 0SiPixelBadModuleByHandBuilder_cfg_v$xy+1$.py
vim 0SiPixelBadModuleByHandBuilder_cfg_v$xy+1$.py
# edit the following lines

    connect = cms.string('sqlite_file:SiPixelQuality_v$xy+1$.db'),
    toPut = cms.VPSet(cms.PSet(
        record = cms.string('SiPixelQualityFromDbRcd'),
        tag = cms.string('SiPixelQuality_v$xy+1$')
# add a new bad module using
 cms.PSet(
    errortype = cms.string('$type$'),
    detid = cms.uint32($detid$)
    ),
# $type$ could be none/tbmA/tbmB/whole
# $detid$ can be learned from
https://tvami.web.cern.ch/tvami/projects/PixelBadModules/phase0GeometryTopology.txt

cmsRun 0SiPixelBadModuleByHandBuilder_cfg_v$xy+1$.py
uploadConditions.py SiPixelQuality_v$xy+1$.db
# upload the sqlite to Prep answering the following way
Answer [y]: y
inputTag [0]: 0
destinationDatabase: oracle://cms_orcoff_prep/CMS_CONDITIONS 
since []: 
userText []: New pixel bad module list
destinationTag []: SiPixelQuality_v$xy+1$

# where $xy+1$ is the next version number

Answer [n]: y

# upload the new python to the git using the link below
https://github.com/tvami/SiPixelQualtiyValidation/upload/master

MC Validation

mkdir MC
cd MC/
# create the crab config -- dont forget to change the $user$ and the $xy+1$ the other should be ok like this
vim crab_config.py 

from CRABClient.UserUtilities import config 
config = config()

config.section_('General')
config.General.requestName = 'SiPixelQuality_MCValidation_v$xy+1$'
config.General.transferOutputs = True
config.General.transferLogs = True

config.section_('JobType')
config.JobType.pluginName = 'Analysis'
config.JobType.psetName = 'TimingStudy_MCValidation_cfg.py'
config.JobType.outputFiles = ['Ntuple.root']
config.JobType.allowUndistributedCMSSW = True

config.section_('Data')
config.Data.inputDBS = 'phys03'
config.Data.inputDataset = '/MinBias/tvami-MC_GENSIMDIG2RAW_20k_PerfectDet-b9e9bfc52642b2ceb34895d495556bcd/USER' 
config.Data.splitting = 'LumiBased'
config.Data.unitsPerJob = 2
config.Data.outLFNDirBase = '/store/user/$user/QualityValidation/'
config.Data.outputDatasetTag  = config.General.requestName

config.section_('Site')
config.Site.storageSite = 'T2_HU_Budapest'

wget https://raw.githubusercontent.com/tvami/SiPixelQualtiyValidation/master/TimingStudy_MCValidation_cfg.py
# edit it
# make sure this is True: process.siPixelDigis.UseQualityInfo = cms.bool(True)

#edit this line to the appropiate version number $xy+1$
	toGet = cms.VPSet(
        	cms.PSet(
                        record = cms.string('SiPixelQualityFromDbRcd'),
                        tag = cms.string('SiPixelQuality_v$xy+1$') # local file tag name 
        )

source /cvmfs/cms.cern.ch/crab3/crab.csh
crab submit -c crab_config.py
Now lets wait until CRAB finishes the job. In the meantime one can start the data validation
crab status -d SiPixelQuality_MCValidation_v$xy+1$
crab getoutput -d SiPixelQuality_MCValidation_v$xy+1$
mv SiPixelQuality_MCValidation_v$xy+1$/results/*.root .

Data Validation

# go back to the /src directory

cd ..
mkdir Data

# other crab python for data reco
# don't forget to modify $xy+1$, $dataset$, $run$, $user$, $GT$ variables, $GT$ can be learn the following way

# go to 

https://cmsweb.cern.ch/das/

#enter the dataset name like

config dataset=$dataset$
# click to the "cmsRun" thing
# look for  "global_tag": 
vim crab_config.py
import os
import glob

from WMCore.Configuration import Configuration
config = Configuration()

PTSdir = os.environ['CMSSW_BASE']+'/src/DPGAnalysis/PixelTimingStudy/'

config.section_('General')
config.General.transferOutputs = True
config.General.transferLogs = True
config.General.requestName = 'SiPixelQuality_DataValidation_v$xy+1$' #can be anything

config.section_('JobType')
config.JobType.allowUndistributedCMSSW = True
config.JobType.pluginName = 'Analysis'
config.JobType.psetName = PTSdir+'test/TimingStudy_RunIIData_80X_cfg.py'
config.JobType.pyCfgParams = ['globalTag='$GT$]
config.JobType.inputFiles = [ PTSdir+'portcardmap.dat', PTSdir+'run_ls_instlumi_pileup_2015.txt' ]
config.JobType.outputFiles = ['Ntuple.root']
config.JobType.disableAutomaticOutputCollection = True

config.section_('Data')
config.Data.inputDataset = '$dataset$ '
config.Data.outLFNDirBase = '/store/user/$user$/QualityValidation/'
config.Data.outputDatasetTag = config.General.requestName
config.Data.splitting = 'LumiBased'
config.Data.unitsPerJob = 2
config.Data.runRange = '$run$'

config.section_('Site')
config.Site.storageSite = 'T2_HU_Budapest'

source /cvmfs/cms.cern.ch/crab3/crab.csh
crab submit -c crab_config.py
#Now lets wait until CRAB finishes the same amount of job as the MC (ie dont have to wait for until the whole dataset is digested).
crab status -d SiPixelQuality_DataValidation_v$xy+1$
crab getoutput -d SiPixelQuality_DataValidation_v$xy+1$
mv SiPixelQuality_DataValidation_v$xy+1$/results/*.root .

Plotting the results

cd $release$/src/MC/
cmsenv
wget https://raw.githubusercontent.com/tvami/SiPixelQualtiyValidation/master/ROC_Occupancy.C
root ROC_Occupancy.C
>> .q
root output.root
>> gStyle->SetPalette(1);
>> gStyle->SetOptStat(0);
>> TBrowser f

# save as a png with the name of v$xy"_occupancyMap.png

cd $release$/src/Data/
wget https://raw.githubusercontent.com/tvami/SiPixelQualtiyValidation/master/ROC_Occupancy.C
root ROC_Occupancy.C
root output.root
gStyle->SetPalette(1);
gStyle->SetOptStat(0);
TBrowser f
# save as a png with the name of v$xy"_occupancyMap_data.png

Procedure (w/o description)

Environment

https://cmswbm.web.cern.ch/cmswbm/cmsdb/servlet/RunSummary

grid-proxy-init
das_client --query="dataset run=$run$" --limit=0 | grep "/FEVT"
das_client --query="dataset dataset=$dataset$ run=$run$"
das_client --query="release dataset=$dataset$"
cmsrel $release$
cd $release$/src
cmsenv
git cms-addpkg CondTools/SiPixel
git clone https://github.com/jkarancs/PixelTimingStudy DPGAnalysis/PixelTimingStudy
vim DPGAnalysis/PixelTimingStudy/plugins/TimingStudy.cc 
#define COMPLETE 0
#define SPLIT 2

vim DPGAnalysis/PixelTimingStudy/plugins/TimingStudy.h

#define COMPLETE 0

scram b -j 10

New Quality payload generation

cd CondTools/SiPixel/test
https://github.com/tvami/SiPixelQualtiyValidation

wget https://raw.githubusercontent.com/tvami/SiPixelQualtiyValidation/master/0SiPixelBadModuleByHandBuilder_cfg_v$xy$.py

cp 0SiPixelBadModuleByHandBuilder_cfg_v$xy$.py 0SiPixelBadModuleByHandBuilder_cfg_v$xy+1$.py
vim 0SiPixelBadModuleByHandBuilder_cfg_v$xy+1$.py

    connect = cms.string('sqlite_file:SiPixelQuality_v$xy+1$.db'),
    toPut = cms.VPSet(cms.PSet(
        record = cms.string('SiPixelQualityFromDbRcd'),
        tag = cms.string('SiPixelQuality_v$xy+1$')
# add a new bad module using
 cms.PSet(
    errortype = cms.string('$type$'),
    detid = cms.uint32($detid$)
    ),
https://tvami.web.cern.ch/tvami/projects/PixelBadModules/phase0GeometryTopology.txt

cmsRun 0SiPixelBadModuleByHandBuilder_cfg_v$xy+1$.py
uploadConditions.py SiPixelQuality_v$xy+1$.db

Answer [y]: y
inputTag [0]: 0
destinationDatabase: oracle://cms_orcoff_prep/CMS_CONDITIONS 
since []: 
userText []: New pixel bad module list
destinationTag []: SiPixelQuality_v$xy+1$

# where $xy+1$ is the next version number

Answer [n]: y

https://github.com/tvami/SiPixelQualtiyValidation/upload/master

MC Validation

mkdir MC
cd MC/

vim crab_config.py 

from CRABClient.UserUtilities import config 
config = config()

config.section_('General')
config.General.requestName = 'SiPixelQuality_MCValidation_v$xy+1$'
config.General.transferOutputs = True
config.General.transferLogs = True

config.section_('JobType')
config.JobType.pluginName = 'Analysis'
config.JobType.psetName = 'TimingStudy_MCValidation_cfg.py'
config.JobType.outputFiles = ['Ntuple.root']
config.JobType.allowUndistributedCMSSW = True

config.section_('Data')
config.Data.inputDBS = 'phys03'
config.Data.inputDataset = '/MinBias/tvami-MC_GENSIMDIG2RAW_20k_PerfectDet-b9e9bfc52642b2ceb34895d495556bcd/USER' 
config.Data.splitting = 'LumiBased'
config.Data.unitsPerJob = 2
config.Data.outLFNDirBase = '/store/user/$user/QualityValidation/'
config.Data.outputDatasetTag  = config.General.requestName

config.section_('Site')
config.Site.storageSite = 'T2_HU_Budapest'

wget https://raw.githubusercontent.com/tvami/SiPixelQualtiyValidation/master/TimingStudy_MCValidation_cfg.py

	toGet = cms.VPSet(
        	cms.PSet(
                        record = cms.string('SiPixelQualityFromDbRcd'),
                        tag = cms.string('SiPixelQuality_v$xy+1$') # local file tag name 
        )

source /cvmfs/cms.cern.ch/crab3/crab.csh
crab submit -c crab_config.py

crab status -d SiPixelQuality_MCValidation_v$xy+1$
crab getoutput -d SiPixelQuality_MCValidation_v$xy+1$
mv SiPixelQuality_MCValidation_v$xy+1$/results/*.root .

Data Validation

cd ..
mkdir Data

https://cmsweb.cern.ch/das/

config dataset=$dataset$

import os
import glob

from WMCore.Configuration import Configuration
config = Configuration()

PTSdir = os.environ['CMSSW_BASE']+'/src/DPGAnalysis/PixelTimingStudy/'

config.section_('General')
config.General.transferOutputs = True
config.General.transferLogs = True
config.General.requestName = 'SiPixelQuality_DataValidation_v$xy+1$' #can be anything

config.section_('JobType')
config.JobType.allowUndistributedCMSSW = True
config.JobType.pluginName = 'Analysis'
config.JobType.psetName = PTSdir+'test/TimingStudy_RunIIData_80X_cfg.py'
config.JobType.pyCfgParams = ['globalTag='$GT$]
config.JobType.inputFiles = [ PTSdir+'portcardmap.dat', PTSdir+'run_ls_instlumi_pileup_2015.txt' ]
config.JobType.outputFiles = ['Ntuple.root']
config.JobType.disableAutomaticOutputCollection = True

config.section_('Data')
config.Data.inputDataset = '$dataset$ '
config.Data.outLFNDirBase = '/store/user/$user$/QualityValidation/'
config.Data.outputDatasetTag = config.General.requestName
config.Data.splitting = 'LumiBased'
config.Data.unitsPerJob = 2
config.Data.runRange = '$run$'

config.section_('Site')
config.Site.storageSite = 'T2_HU_Budapest'

source /cvmfs/cms.cern.ch/crab3/crab.csh
crab submit -c crab_config.py

crab status -d SiPixelQuality_DataValidation_v$xy+1$
crab getoutput -d SiPixelQuality_DataValidation_v$xy+1$
mv SiPixelQuality_DataValidation_v$xy+1$/results/*.root .

Plotting the results

cd $release$/src/MC/
cmsenv
wget https://raw.githubusercontent.com/tvami/SiPixelQualtiyValidation/master/ROC_Occupancy.C
root ROC_Occupancy.C
>> .q
root output.root
>> gStyle->SetPalette(1);
>> gStyle->SetOptStat(0);
>> TBrowser f
# save as a png with the name of v$xy"_occupancyMap.png

cd $release$/src/Data/
wget https://raw.githubusercontent.com/tvami/SiPixelQualtiyValidation/master/ROC_Occupancy.C
root ROC_Occupancy.C
root output.root
>> gStyle->SetPalette(1);
>> gStyle->SetOptStat(0);
>> TBrowser f
# save as a png with the name of v$xy"_occupancyMap_data.png

Tracking effect

TimingStudy

/data/vami/projects/pilotBlade/pp2016ReProcessing_v3/CMSSW_8_0_8/src/miniDAQ/All/Ntuples
TimingStudy
TChain chain("trajTree");
chain.Add("Ntuple*.root")

h1(416,-3.0,3.0,160,-.55,.55)
# -------------------------------------------------------------------------------------------------------------------

chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302059012&&traj.validhit==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302059012&&traj.missing==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302059012&&traj_inactive==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302059012&&traj_badhit==1&&traj_onedge==0","COLZ")

chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module_on.rawid==302059012&&traj.validhit==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module_on.rawid==302059012&&traj.missing==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module_on.rawid==302059012&&traj_inactive==1&&traj_onedge==0","COLZ")

TChain chain("clustTree");
chain.Add("Ntuple*.root")
chain.Draw("x:y","module_on.rawid==302059012","COLZ") // all clusters

# -------------------------------------------------------------------------------------------------------------------


chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302126344&&traj.validhit==0&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302126344&&traj.missing==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302126344&&traj_inactive==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302126344&&traj_badhit==1&&traj_onedge==0","COLZ")

chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module_on.rawid==302126344&&traj.validhit==0&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module_on.rawid==302126344&&traj.missing==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module_on.rawid==302126344&&traj_inactive==1&&traj_onedge==0","COLZ")

TChain chain("clustTree");
chain.Add("Ntuple*.root")
chain.Draw("x:y","module_on.rawid==302126344","COLZ") // all clusters


# -------------------------------------------------------------------------------------------------------------------
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302123800&&traj.validhit==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302123800&&traj.missing==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302123800&&traj_inactive==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module_on.rawid==302123800&&traj_badhit==1&&traj_onedge==0","COLZ")

chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module_on.rawid==302123800&&traj.validhit==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module_on.rawid==302123800&&traj.missing==1&&traj_onedge==0","COLZ")
chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module_on.rawid==302123800&&traj_inactive==1&&traj_onedge==0","COLZ")

TChain chain("clustTree");
chain.Add("Ntuple*.root")
chain.Draw("x:y","module_on.rawid==302123800","COLZ") // all clusters
What happens with modules marked bad that come alive from time to time?

Studying the valid/traj_missing/traj_inactive modules in three scenarios

Scenario 1) We have a new bad component but it is not included in the DB yet

--> in SiPixelQuality_v34_data we had a new bad half module (BmO _Sec8_Lyr1_Ldr9F_Mod4 (TBM-B) -- 302059012)
  • Run range 275891 (the moduel is bad from this run) - 275914 (hlt tag was accepted and uploaded, in the meantime there was a half module that was bad but the DB did not contain it)
TChain chain("trajTree");
chain.Add("nTuplePilotBlade_All*.root")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module.rawid==302059012&&traj.type==0&&traj.onEdge==0","COLZ") // validhit
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module.rawid==302059012&&traj.type==1&&traj.onEdge==0","COLZ") // missing
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module.rawid==302059012&&traj.type==2&&traj.onEdge==0","COLZ") // inactive

chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module.rawid==302059012&&traj.type==0&&traj.onEdge==0","COLZ") // valid pixels

Scenario 2) We have a bad component and it is included in the DB already

--> in SiPixelQuality_v34_data an old half module (BPix_BmO_SEC7_LYR2_LDR13F_MOD3 (ROC0-7) -- 302126344 [this was added in v33])
  • Run range 275891-275914 (same range is OK)
TChain chain("trajTree");
chain.Add("nTuplePilotBlade_All*.root")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module.rawid==302126344&&traj.type==0&&traj.onEdge==0","COLZ") // validhit
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module.rawid==302126344&&traj.type==1&&traj.onEdge==0","COLZ") // missing
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module.rawid==302126344&&traj.type==2&&traj.onEdge==0","COLZ") // inactive

chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module.rawid==302126344&&traj.type==0&&traj.onEdge==0","COLZ") // valid pixels
chain.Draw("traj.lx:traj.ly>>h1(416,-3.0,3.0,160,-.55,.55)","module.rawid==302126344&&traj.type==1&&traj.onEdge==0","COLZ") // missing pixels

Scenario 3) A module is marked bad although it is working

--> v35_data (302123800)
  • Run range 276460-276870 (after this the mistake was corrected)

TChain chain("trajTree");
chain.Add("nTuplePilotBlade_All*.root")
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module.rawid==302123800&&traj.type==0&&traj.onEdge==0","COLZ") // validhit
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module.rawid==302123800&&traj.type==1&&traj.onEdge==0","COLZ") // missing
chain.Draw("traj.lx:traj.ly>>h1(8,-3.0,3.0,2,-.55,.55)","module.rawid==302123800&&traj.type==2&&traj.onEdge==0","COLZ") // inactive

Edit | Attach | Watch | Print version | History: r33 | r29 < r28 < r27 < r26 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r27 - 2016-10-08 - TamasVami
 
This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback