venerdì 4 dicembre 2009

Kerberos @Cern

Problem: login worked, but logging in from lxplus, with a valid krb tokens, did not, and the server kept asking for a password.

Solution:

install

ncm-afscl
ncm-krb4clt

1. in /etc/sysconfig/network
have the fully qualified name (e.g. pccmsto03.cern.ch)

2. in /etc/hosts
have both qualified and unqualified, qualified first, i.e.

137.138.99.57 pccmsto03.cern.ch pccmsto03

giovedì 26 novembre 2009

work

  1. phi sym plots on first collisions /data/argiro/collisions/CMSSW_3_3_4/src/DQMOffline/CalibCalo/
  2. try to setup iteration script scratch0/w09/calibrate

mercoledì 15 luglio 2009

EcalCondDB.py

latest news: with 3_3_X there is no need to download additional packages.
For example, in

CMSSW_3_3_X_2009-09-28-0100

and above

do

$CMSSW_RELEASE_BASE/src/CondTools/Ecal/python/EcalCondDB.py --listtags

Older things:

with

cmsrel CMSSW_3_1_0_pre7
addpkg CondCore/EcalPlugins sa6
addpkg CondTools/Ecal sa5
addpkg CondCore/IOVService zx29052009
addpkg CondCore/Utilities zx29052009
addpkg CondFormats/Common zx29052009



we have

1. histograms and comparison for the endcap as well
2. no need to specify till, only since

Example

./EcalCondDB.py --compare=comp.png -t EcalIntercalibConstants_mc --since=1 -t EcalIntercalibConstantsMC_EBg50_EEwithB --since=1


Note : the tag
addpkg CondCore/EcalPlugins sa6
fixes the bug by which the same constants were shown on the plus and minus side in EB

martedì 14 luglio 2009

EcalCondDB.py again

with

CondTools/Ecal sa4

iovs are properly handled. I have added the function listiovs, example

./EcalCondDB.py --listiovs -t EcalIntercalibConstantsMC_EBg50_EEnoB

Now all functions not only need tag specification, but also since and till :

./EcalCondDB.py --compare=comp.png -t EcalIntercalibConstants_mc --since=1 --till=inf -t EcalIntercalibConstantsMC_EBg50_EEwithB --since=1 --till=inf

Note that "inf" is short for 4294967295

./EcalCondDB.py --histo=h.png -t EcalIntercalibConstantsMC_EBg50_EEnoB --since=1 --till=4294967295

venerdì 10 luglio 2009

Ecal Cond DB python Tools

I've refined a bit the initial idea, the new recipe is :

cmsrel CMSSW_3_1_0_pre7
cd CMSSW_3_1_0_pre7
cmsenv
addpkg CondCore/IOVService zx29052009

addpkg CondCore/Utilities zx29052009
addpkg CondFormats/Common zx29052009
addpkg CondCore/EcalPlugins sa3
addpkg CondTools/Ecal sa3
scram b -j4
cd CondTools/Ecal/python

The main script is now EcalCondDB.py , in CondTools/Ecal/python.
Invoke it without arguments to show help

Examples:

1. To get help
./EcalCondDB.py --help

2. To list all tags in a given database
./EcalCondDB.py -c oracle://cms_orcoff_prod/CMS_COND_31X_ECAL -l

The connection string above is actually the default

3. To dump a record with given tag to xml
./EcalCondDB.py --dump=file.xml -t EcalIntercalibConstants_EBg50_EEnoB
./EcalCondDB.py --dump=file2.xml -t EcalIntercalibConstantsMC_mc

4. To write a map of the intercalibration constants
./EcalCondDB.py --plot=plot.png -t EcalIntercalibConstants_EBg50_EEnoB

Different graphics formats can be specified by changing extension (.root,.svg,.jpg, etc)

5. To produce histograms of the intercalibration constants
./EcalCondDB.py --histo=plot.png -t EcalIntercalibConstants_EBg50_EEnoB

With the --histo tag one can specify, with -t, a xml file instead of a database tag:
./EcalCondDB.py --histo=plot.png -t file.xml

5. To compare records
./EcalCondDB.py --compare=plot.png -t EcalIntercalibConstants_EBg50_EEnoB -t EcalIntercalibConstantsMC_mc

--compare also supports xml file comparison

./EcalCondDB.py --compare=plot.png -t file.xml -t file2.xml

To develop new histograms, the file EcalCondTools.py should be modified



mercoledì 1 luglio 2009

Ecal Records XMl dump

Use python wrapper to dump records in xml format.

Recipe:

cmsrel CMSSW_3_1_0_pre7
cd CMSSW_3_1_0_pre7
addpkg CondCore/IOVService zx29052009
addpkg CondCore/Utilities zx29052009
addpkg CondFormats/Common zx29052009
addpkg CondCore/EcalPlugins sa
addpkg CondTools/Ecal sa
scram b -j4

cd src/CondTools/Ecal/test

#lista tag
./inspectEcal.py -l

#dump to screen
./inspectEcal.py -t EcalADCToGeVConstant_n_avg1_ideal

#dump to file
./inspectEcal.py -t EcalADCToGeVConstant_n_avg1_ideal -f pippo.xml

mercoledì 18 febbraio 2009

DataMixer

Introduction

We have done some work on the datamixer for Ecal. It was basically along the following two lines:
  1. Modify the code in order to add correct handling of the gain switch
  2. Validate the code by producing the following samples
  • Minbias with noise
  • Minbias no noise mixed with nu gun with noise
  • Nu gun with noise mixed with minbias no noise
The idea is that all three samples should give the same results

Gain switch code

The idea is that in mixing two digis, the gain of the highest energy sample should be retained. The lower energy sample should be scaled to the lower (higher energy) gain taking into account that the pedestals are different for different gains. The formula we use is therefore:
float ratio = gainRatios[gain_new-1]/gainRatios[gain_old-1];
adc_old = (int) round ((adc_old - pedeStals[gain_old-1]) * ratio + pedeStals[gain_new-1] );
adc_sum = adc_new + adc_old;
when the sample to be mixed has lower energy and similar for the opposite situation. If adc_sum is then higher than 4096, the gain is switched again if we are not already in gain 1.
The code is committed at the HEAD as
SimGeneral/DataMixingModule/plugins/DataMixingEMDigiWorker.cc
SimGeneral/DataMixingModule/plugins/DataMixingEMDigiWorker.h


Gain switch validation

We "validated" by looking at the resulting FADC traces after mixing
an electron gun of 1000 GeV without noise with nu gun events. We used a trivial module called PlotEcalDigis (see section Test Code below). Here are examples of FADC traces after mix. One is for a channel that switches to gain 1 (g3), one switches to gain 2 (g2) and one stays in g1 and shows noise (proving that the digis do mix).

Todo: check that without mixing the trace is flat

















Known issue


There are cases in which the datamixer produces empty traces with gainId=0 (which is a non valid gainId). Under investigation
.


Test Code

The code used can be checked out from
UserCode/Torino/Ecal/datamixerstuff
The package UserCode/PlotEcalDigis contains the analyzer to plot FADC traces. The procedure used was the following:

cmsRun sim-singlee1000-nonoise.py
cmsRun reco-egun.py

cmsRun mm_deb_overlay_egunonnugun_cff.py
cmsRun src/User/PlotEcalDigis/python
/runplotdigis_cfg.py

Note that mixOne_data_on_data_secEqNu_cfi.py has to be copied to SimGeneral/DataMixingModule/python and compiled. The last step produces a file called histo.root that with FADC traces

MinBias with Nu mixes

I generated the samples that I report here :
  • Minbias with noise
  • Minbias no noise mixed with nu gun with noise
  • Nu gun with noise mixed with minbias no noise
Using the following commands:

#generation cmsRun sim-minbias-noise.py >& log1.log
cmsRun sim-minbias-nonoise.py >& log2.log
cmsRun sim-nugun-noise.py >& log3.log
#get reco digi cmsRun reco-minbias-noise.py >& log4.log
cmsRun reco-minbias-nonoise.py >& log5.log
cmsRun reco-nugun.py >& log6.log #mix
cmsRun src/SimGeneral/DataMixingModule/test/mm_deb_overlay_minbiasonnu_cff.py >& log7.log
cmsRun src/SimGeneral/DataMixingModule/test/mm_deb_overlay_nuonminbias_cff.py >& log8.log
#get rechits from mixed digis

cmsRun rereco-mix-MinbiasNoNoiseonNu.py >& log9.log
cmsRun rereco-mix-NuonMinBiasNoNoise.py >& log10.log


In this complicated procedure we generate and save raw data, reconstruct and generate digis, mix from reconstructed digis (note that it is possible to mix from simulated digis or rechits). Indeed we could have taken a shorter path. Then we reconstruct again to look at rechits after mixing.

Here we show the distribution of rechit energies in five cases:

Nu gun (pure noise)





Minimu
m bias without noise

Minimum bias with noise



Minimum bias no noise mixed on nu gun :




Nu gun mixed with minimum bias no noise




The last three distribution seem compatible, proving that the mixing works


Electrons of 250 GeV on top of electrons of 1000 GeV

We have generated electrons of different energies in the same eta/phi region to check that samples with different gains are added consistently.
Note : in the following "e100" is reported where it should be "e1000", as the configuration file
sim-singlee100-noise-small.py actually contains settings for e1000. This is why there are switches to gainId=3.

#test gain switch e250 on e100 in a small region
cmsRun sim-singlee100-noise-small.py

cmsRun sim-singlee250-noise-small.py cmsRun reco-egun-100-small.py
cmsRun reco-egun-250-small.py

cmsRun src/SimGeneral/DataMixingModule/test/mm_deb_overlay_egunonegun_cff.py

cmsRun src/User/PlotEcalDigis/python/runplotdigis_cfg.py

Here are a couple examples

Summing

Adding signals -2 191
1 199[1] 201[1] 200[1] 293[1] 3147[2] 4071[2] 3637[2] 2805[2] 2033[2] 1435[2]
2 201[1] 200[1] 199[1] 203[1] 532[1] 638[1] 591[1] 496[1] 409[1] 341[1]







Adding signals -1 12
1 200[1] 200[1] 199[1] 205[1] 499[1] 597[1] 550[1] 465[1] 389[1] 326[1]
2 198[1] 200[1] 201[1] 256[1] 3825[1] 2589[2] 2322[2] 1809[2] 1333[2] 963[2]



Adding signals -1 11
1 202[1] 199[1] 200[1] 352[1] 941[3] 1166[3] 1054[3] 848[3] 656[3] 506[3]
2 200[1] 201[1] 198[1] 390[1] 1128[3] 1410[3] 1270[3] 1011[3] 771[3] 585[3]



Adding signals -1 190
1 200[1] 200[1] 202[1] 209[1] 767[1] 944[1] 860[1] 700[1] 554[1] 438[1]
2 200[1] 200[1] 199[1] 204[1] 476[1] 565[1] 525[1] 446[1] 373[1] 318[1]


Adding signals -1 191
1 197[1] 198[1] 202[1] 213[1] 1122[1] 1416[1] 1278[1] 1021[1] 779[1] 588[1]
2 201[1] 199[1] 202[1] 414[1] 1252[3] 1572[3] 1413[3] 1120[3] 847[3] 636[3]

The opposite overlay (electrons of 250 GeV on electrons of 1000 GeV) has been tested and gave sensible results (question: why are'nt the input traces just swapped ?)

Adding signals -2 191
1 200[1] 199[1] 202[1] 291[1] 3119[2] 4034[2] 3602[2] 2779[2] 2018[2] 1423[2]
2 201[1] 200[1] 201[1] 202[1] 517[1] 617[1] 573[1] 481[1] 399[1] 334[1]


Adding signals -1 191
1 199[1] 203[1] 198[1] 214[1] 1009[1] 1268[1] 1150[1] 922[1] 706[1] 540[1]
2 200[1] 200[1] 199[1] 411[1] 1236[3] 1554[3] 1400[3] 1108[3] 839[3] 630[3]



Adding signals -1 190
1 199[1] 200[1] 199[1] 209[1] 675[1] 821[1] 753[1] 622[1] 497[1] 401[1]
2 200[1] 199[1] 199[1] 205[1] 448[1] 534[1] 495[1] 425[1] 358[1] 306[1]


Adding signals -1 11
1 199[1] 200[1] 201[1] 325[1] 3847[2] 992[3] 900[3] 730[3] 573[3] 452[3]
2 199[1] 202[1] 201[1] 398[1] 1163[3] 1457[3] 1312[3] 1043[3] 793[3] 600[3]



Adding signals -1 12
1 199[1] 200[1] 200[1] 203[1] 440[1] 515[1] 484[1] 414[1] 351[1] 302[1]
2 200[1] 200[1] 198[1] 255[1] 3826[1] 2586[2] 2317[2] 1805[2] 1331[2] 960[2]


martedì 10 febbraio 2009

Work

phi symmetry. I realized that the cut applied in the alcareco stream EE is 750 not 650. This may account for the k<1 problem and high miscalibration.
Running now

phisym-eb160-ee825-up1.5-k0.1.cfg.tmpl

no differences ...

mercoledì 4 febbraio 2009

Playing with L1 trigger bits

Study L1 bias on csa08 data:


include "L1TriggerConfig/L1GtConfigProducers/data/L1GtConfig.cff"
replace l1GtTriggerMenuXml.TriggerMenuLuminosity = "lumi1030"
replace l1GtTriggerMenuXml.DefXmlFile = "L1Menu2008_2E30.xml"

module selectL1 = HLTLevel1GTSeed{

# string L1SeedsLogicalExpression = "(L1_ZeroBias OR L1_SingleJetCountsHFTow OR L1_DoubleJetCountsHFTow OR L1_SingleJetCountsHFRing0Sum3 OR L1_DoubleJetCountsHFRing0Sum3 OR L1_SingleJetCountsHFRing0Sum6 OR L1_DoubleJetCountsHFRing0Sum6) AND NOT L1_SingleEG2 AND NOT L1_DoubleEG1"
string L1SeedsLogicalExpression = "L1_ZeroBias AND NOT L1_SingleEG2 AND NOT L1_DoubleEG1"

InputTag L1GtReadoutRecordTag = "hltGtDigis"
bool L1TechTriggerSeeding = False
InputTag L1GtObjectMapTag = "hltL1GtObjectMap"
InputTag L1CollectionsTag = "hltL1extraParticles"
InputTag L1MuonCollectionTag = "hltL1extraParticles"

}


mistery: if paretheses are added to the logical expression, the filter complains about products not present in the event ...

test: try L1MinBias OR L1_EG versus MinBias alone

phisym-eb160-ee710-up1.5-noL1EG.cfg.tmpl : L1MinBias AND NOT L1_SingleEG2 AND NOT DoubleEG1


Launched high threshold job (500 Mev in barrel) algorithm did not work (nans)

venerdì 23 gennaio 2009

Work

1. finished event size measurements https://twiki.cern.ch/twiki/bin/view/CMS/EcalPhiSymmetry

2. moved phisym-lasercorr stuff and csa07 to /castor/cern.ch/users/a/argiro/archive and (/data/argiro) need space !

Re running s43+s156

mercoledì 21 gennaio 2009

work



Phi symmetry on CRAFT, size/noise evaluation.
HLT phisym has cuts at 150(EB) and 650(EE) , no EE here
sample is /Commissioning08/Cosmics/RECO/EW35_3T_CRUZET4_V4P_v1/0003
Size of AlCa .root (pooloutputmodule): 100000 events: 405 Mb (with edmTriggerResults)
Size of AlCa : 100000 events: 401 Mb (without edmTriggerResults)




configuration used:


process hltPhiSymTest = {


service = MessageLogger
{
untracked vstring destinations = {"cerr", "cout"}
untracked PSet cerr = { untracked string threshold = "ERROR" }
untracked PSet cout = { untracked string threshold = "WARNING" }
}

source = PoolSource {

untracked vstring fileNames = {
# "/store/data/Commissioning08/AlCaPhiSymEcal/RAW/EW35_3T_v1/000/060/302/C06C6F62-0577-DD11-9979-0030487C6062.root"


"/store/data/Commissioning08/Cosmics/RECO/EW35_3T_CRUZET4_V4P_v1/0003/00750F02-D286-DD11-BC74-0018F3D0965C.root",
"/store/data/Commissioning08/Cosmics/RECO/EW35_3T_CRUZET4_V4P_v1/0003/5687C331-FE86-DD11-9CDB-001731AF685F.root",
"/store/data/Commissioning08/Cosmics/RECO/EW35_3T_CRUZET4_V4P_v1/0003/CE5667D1-D786-DD11-87A5-003048678E94.root"


}
}
untracked PSet maxEvents = {untracked int32 input = 100000}


module hltAlCaPhiSymStream= HLTEcalPhiSymFilter {


InputTag barrelHitCollection = ecalRecHit:EcalRecHitsEB
InputTag endcapHitCollection = ecalRecHit:EcalRecHitsEE
string phiSymBarrelHitCollection = "phiSymEcalRecHitsEB"
string phiSymEndcapHitCollection = "phiSymEcalRecHitsEE"
double eCut_barrel = 0.15
double eCut_endcap = 0.650
}


module outm= PoolOutputModule {

untracked vstring outputCommands = {
"drop *",
"keep *_hltAlCaPhiSymStream_phiSymEcalRecHitsEB_*",
"keep *_hltAlCaPhiSymStream_phiSymEcalRecHitsEE_*",
"keep *_hltL1GtUnpack_*_*",
"keep L1GlobalTriggerReadoutRecord_hltGtDigis_*_*"

}

untracked string fileName = "file:/data/argiro/phiSymAlcaRecoStream.root"
}


path p= {hltAlCaPhiSymStream}
endpath out ={outm}

}

lunedì 19 gennaio 2009

Work

1. Phi Sym understanding. Launched new thresholds, parametrized upper threshold. Checked normalization of area in ee
2. DataMixer. Gave a look, emailed Mike
3. Phisym HLT monitor. Implemented in HLTriggerOffline/special and tested, committed. Instructions in "test"