Difference: CASTOROpenData2010 (10 vs. 11)

Revision 112019-08-09 - HansVanHaevermaet

Line: 1 to 1
 
META TOPICPARENT name="CMS.CASTORDataPreservation"

Analysis recipe to use CASTOR objects with 2010 CMS OpenData

Line: 26 to 26
 

Installation and setup

Before you can analyse data taken with the CASTOR calorimeter you'll need install a few extra packages into the CMSSW software.
Changed:
<
<
1) Install the CERN OpenData VM for 2010 data, for instructions see here: http://opendata.cern.ch/docs/cms-virtual-machine-2010. The recipe below is validated in version 'CMS-OpenData-1.1.2'.
>
>
1) Install the CERN OpenData VM for 2010 data, for instructions see here: http://opendata.cern.ch/docs/cms-virtual-machine-2010. The recipe below is validated in version 'CMS-OpenData-1.1.2'.
 2) Start up your VM and open the 'CMS shell'.
3) Install the correct version of CMSSW and activate it:
Line: 40 to 40
 tar -xvf Commissioning10_additional_packages.tar scram b
Changed:
<
<
Note that following directories should appear in the CMSSW_4_2_8_lowpupatch1/src directory: RecoLocalCalo, RecoJets, data. If this is not the case then something went wrong when downloading/extracting the packages.
>
>
Note that following directories should appear in the CMSSW_4_2_8_lowpupatch1/src directory: RecoLocalCalo, RecoJets, data. If this is not the case then something went wrong when downloading/extracting the packages.
 

Usage

Once the above steps are executed you are basically ready to analyse CASTOR objects. Here we will specify what configuration snippets you will need to apply inside your typical 'demoanalyzer_cfg.py' file when you are coding an analyser in CMSSW.
Changed:
<
<
First important step is to include a 'global tag' into your configuration file. To do this, please follow the instructions on this CMS OpenData page: http://opendata.cern.ch/docs/cms-guide-for-condition-database and follow the steps in section 'For 2010 collision data' to include the 'FT_R_42_V10A::All' global tag when you run on data.
>
>
First important step is to include a 'global tag' into your configuration file. To do this, please follow the instructions on this CMS OpenData page: http://opendata.cern.ch/docs/cms-guide-for-condition-database and follow the steps in section 'For 2010 collision data' to include the 'FT_R_42_V10A::All' global tag when you run on data.
 When you want to run on a Monte Carlo simulation sample, please make sure to follow the proper steps to include the 'START42_V17B::All' global tag in the configuration file.

Running on data

Line: 118 to 118
 The demo code applies first some 'online' selections in the python configuration file (physics declared, remove beam background, remove CASTOR invalid data, trigger selection) and in the C++ class a further offline event selection is included that selects nondiffractive minimum bias events by requiring: exactly one good primary vertex, HF AND activity, and CASTOR activity. This event selection is the same as applied in the FWD-11-003 analysis (arXiv:1302.2394).

Validation plots

Changed:
<
<
After running the demo analyser on the 7 TeV data samples you can plot the histograms stored in the output ROOT files. In this attachment you can find validation plots, if you get the same results your framework is working as expected.
>
>
After running the demo analyser on the 7 TeV data samples you can plot the histograms stored in the output ROOT files. In this attachment you can find validation plots, if you get the same results your framework is working as expected.
 

Information valid for all 2010 data

Examples to access all objects and their properties

Line: 204 to 204
  }
Changed:
<
<

Jet calibration factors

Below you can find a piece of code to be used when calibrating jets in CASTOR that are identified as coming from a hadronic shower in the calorimeter.
>
>

Jet calibration factors for Commissioning10 data

Below you can find the formulas to be used when calibrating jets in CASTOR that are identified as coming from a hadronic shower in the calorimeter.
 The important functions are:
// for jets in sector 5 for Commissioning10 data 
Line: 220 to 220
 Ecal = myJETenergy*(1.8 + 0.0037*log(1 + myJETenergy)); // data or MC (SL) Ecal = myJETenergy*(1.5 + 0.0024*log(1 + myJETenergy)); // MC (FS)
Changed:
<
<
The functions marked to be used with Shower Library (SL) need to be applied to data and to MC samples using SL, such as the official public ones. Functions marked with Full Simulation (FS) can be used with special MC samples simulated at displaced sensor locations. These latter samples are not public (for the moment).
>
>
The functions marked to be used with Shower Library (SL) need to be applied to data and to MC samples using SL, such as the official public ones. Functions marked with Full Simulation (FS) can only be used with special MC samples simulated at displaced sensor locations. These latter samples are not public (for the moment).
 

Full code as in the demo analyser that first identifies electromagnetic or hadronic showers using the JetID variables, and then properly calibrates the hadronic-like jets:
Line: 279 to 279
  double Ecal = 0.0; if (basicjet.phi() > 4*(myPI/8) && basicjet.phi() < 5*(myPI/8)) { // include different sectors 5 for Commissioning10 data were first channels are removed
Changed:
<
<
/*if ( iEvent.eventAuxiliary().isRealData())*/ Ecal = myJETenergy*(1.3 + 0.23*log(-149 + myJETenergy)); // data (SL) //if (iEvent.eventAuxiliary().isRealData()) Ecal = myJETenergy*(0.9 + 0.25*log(-149 + myJETenergy)); // MC (FS)
>
>
Ecal = myJETenergy*(1.3 + 0.23*log(-149 + myJETenergy)); // data (SL)
  } else if (basicjet.phi() > 5*(myPI/8) && basicjet.phi() < 6*(myPI/8)) { // include different sectors 6 for Commissioning10 data were first channels are removed
Changed:
<
<
/*if ( iEvent.eventAuxiliary().isRealData())*/ Ecal = myJETenergy*(1.4 + 0.21*log(-149 + myJETenergy)); // data (SL) //if (iEvent.eventAuxiliary().isRealData()) Ecal = myJETenergy*(-5.8 + 1.3*log(144 + myJETenergy)); // MC (FS)
>
>
Ecal = myJETenergy*(1.4 + 0.21*log(-149 + myJETenergy)); // data (SL)
  } else {
Changed:
<
<
/*if ( iEvent.eventAuxiliary().isRealData())*/ Ecal = myJETenergy*(1.8 + 0.0037*log(1 + myJETenergy)); // data (SL) good sectors //if (iEvent.eventAuxiliary().isRealData()) Ecal = myJETenergy*(1.5 + 0.0024*log(1 + myJETenergy)); // MC (FS) good sectors

>
>
Ecal = myJETenergy*(1.8 + 0.0037*log(1 + myJETenergy)); // data (SL) good sectors
  } hJet_calenergy->Fill(Ecal); // fill with calibrated HAD jet } else {
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback