Coder Social home page Coder Social logo

cpeanalyzer's Introduction

CPEanalyzer

Cluster Parameter Estimator: algorithm used to determine the position and errors of the CMS Pixel and Strip clusters . Method used from CMSSW - StripCPEfromTrackAngle; Takes the track angle estimate into account when applying the Lorentz angle and back plane correction, and uses a resolution parameterization as a function of the expected cluster width.

This repository is based on Hit resolution repository and large part of the code have been re-used for CPE studies purpose on the top of CPEanalayser!

Recipe for your favorite CMSSW version:[current cmssw working version : 12_4_12]

 cmsrel CMSSW_12_4_12
 cd CMSSW_12_4_12/src
 # specific to ingrid, https://github.com/kjaffel/ZA_FullAnalysis#environment-setup-always- 
 cms_env 
 cmsenv
 mkdir SiStripCPE
 cd SiStripCPE
 git clone https://github.com/Oguz-Guzel/CPEanalyzer.git
 # https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideScram
 scram b 

Creation of Private Skim [Slurm]:

In order to allow parallelisation and fast iterations, a private skim of files is created from the AlCaReco files. The event content is minimised to the needs for the CPEEstimator, a tighter preselection is also applied, and the files are split in size for optimising between number of files and number of events inside. Skimming is done using the configuration in SiStripCPE/CPEanalyzer/test/skimProducer_cfg.py. There, the used track selection is defined in SiStripCPE/CPEanalyzer/python/CPETrackSelector_cff.py, and the trigger selection in SiStripCPE/CPEanalyzer/python/TriggerSelection_cff.py (the trigger selection is disabled by default). The event content is defined in SiStripCPE/CPEanalyzer/python/PrivateSkim_EventContent_cff.py.

Which dataset to process is steered via a configurable parameter using the VarParsing, which also allows a local test run. After having run those two scripts for each dataset that one wants to process, the skim is ready for the automated workflow of the Cluster Parameter Estimation.

Launch a Test :

configs\alcareco_localtest.yml will be used by default as an input:

python3 CPE4slurm.py --isTest --task hitresolution -o mytestDIR
  • -o/ --output: Output directory
  • -y/--yml : YAML file that include your AlcaReco samples should be saved in: configs/
  • --task : hitresolution or skim ( the later is deprecated sorry!).
  • --isTest : will pass one root file on slurm as cross-check.

Hadd root files and launch plotting script macros/Resolutions.cc

python postprocessing.py --workdir mytestDIR --run <run>
  • <run> : choices are ul or pre (ul for ULegacy or pre for pre-ULegacy)

Event, Track and Hit Selections:

The strip hit resolution is computed by using hits in overlapping modules of the same layer ("Pair Method").

Tracks are selected with the following cuts:

  • Good identified and isolated muons
  • Flagged as high purity in order to minimise incorrect cluster assignments
  • min pT 3 GeV
  • The impact parameter is required to be close to the beamspot : |d0| < 20 cm |dz| < 60 cm
  • Goodness of the track fit : The track fit must yield a good X2
  • With the selection of tracks of high transverse momentum, the angles are mainly small and so is the cluster width. An important criterion of a good measurement from a strip cluster is, whether its width Wcl matches to the projected track length.

Hit pairs are selected by requiring:

  • At most 4 strips cluster width;
  • Clusters that are of the same width in both the modules;
  • Clusters that are not at the edge of the modules;
  • Predicted path (distance of propagation from one surface to the next) < 7 cm; i.e. only pairs within the same layer are allowed;
  • Error on predicted distance in the bending coordinate between the two hits < 25 microns

Useful Plotting macros:

macros/PlottingToOls/CPEplotter.py is the main script used for plotting the saved resolution values in workdir/outputs/sample_Name/HitResolutionValues/HitResolutionValues_*.txt after postprocessing.

python CPEplotter.py --path <to__mytestDIR>

My Talks in Strip Calibration and Local Reconstruction meeting:

References:

cpeanalyzer's People

Contributors

jlidrych avatar kjaffel avatar oguz-guzel avatar

Forkers

jlidrych

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.