Skip to content

ICHiggsInv/ICHiggsTauTau

 
 

Repository files navigation

Introduction

This repository contains documentation for the ICHiggsTauTau CMSSW package. This provides:

  • A C++ namespace, ic, under which all new classes, structs and functions should be defined
  • A set of physics object classes, e.g. ic::Electron and ic::Jet which can be stored in ntuples and manipulated in analysis code. The definition and implementation of these classes can be found in the interface and src directories of this package. These classes and associated ROOT I/O dictionaries are generated by the scram tool
  • CMSSW producer plugins that manufactures these physics objects from CMS datasets, located in the plugins directory of the package. These modules are also compiled by scram.
  • An offline analysis framework which is mostly independent of the CMSSW framework. This is organised into a series of packages located in the Analysis directory. This area is intended to contain all the code for event processing, applying cut-flows and making final plots.

Documentation can be produced by running doxygen from within the ICHiggsTauTau directory. A recent copy of the html output can be found here: http://agilbert.web.cern.ch/agilbert/analysis/index.html

The instructions for setting a CMSSW area with the ICHiggsTauTau package are reproduced below.

Setting up CMSSW

The following steps set up a new area, but note that only certain CMSSW releases are supported. This replaces the CVS recipe of creating a new area and running the setup_X_Y_Z.sh script, and unfortunately this new procedure is more complicated.

Supported releases:

CMSSW_4_2_8_patch7
	CMSSW_5_3_7
	CMSSW_5_3_11

The official CMSSW repository is hosted here: https://github.com/cms-sw/cmssw. If you do not already have a GitHub account, please read through the instructions at http://cms-sw.github.io/cmssw/faq.html, in particular ensure you have configured git with your personal information:

	git config --global user.name [First Name] [Last Name]
	git config --global user.email [Email Address]
	git config --global user.github [GitHub account name]
	#If you are running at IC you also need to do: git config --global http.sslVerify false
	#This extra line is not needed at CERN. Anywhere else if you see a fatal error message relating to SSL certificate problems it may be required

\attention If working from a machine based at IC, the version of git supplied by the operating system may be too old to support some of the commands in these instructions. A more up-to-date version is provided here /home/hep/ajg06/git/, to use this by default add this line to the .bashrc file:

	export PATH=/home/hep/ajg06/git/bin:$PATH

Before working with CMSSW in git, you will need to create a copy (or fork) of the official CMSSW repository in your own account at https://github.com/cms-sw/cmssw/fork. You will be able to store your own CMSSW branches and developments in this forked repository.

Create a new CMSSW area:

	export SCRAM_ARCH=slc5_amd64_gcc462
	# Newer versions of CMSSW need SCRAM_ARCH=slc5_amd64_gcc472
	scramv1 project CMSSW CMSSW_X_Y_Z
	cd CMSSW_X_Y_Z/src/
	cmsenv

Initialise this area for git by adding a single package:

	git cms-addpkg FWCore/Version
	# If you are not running on a machine based at CERN, this script will ask if you want to create a new reference repository.
	# You should answer yes to this, and the script will copy the entire cmssw repository to your home folder,
	# which will make setting up subsequent release areas a lot faster.

This command will have created two remote repositories, official-cmssw and my-cmssw. It will also have created and switched to a new branch, from-CMSSW_X_Y_Z. An additional remote should be added which provides the pre-configured branches:

	git remote add ic-cmssw git@github.com:ajgilbert/cmssw.git
	git pull ic-cmssw from-CMSSW_X_Y_Z # fetch from the ic-cmssw remote repository and merge the from-CMSSW_X_Y_Z into your own local branch.

	# At this point, if you run 'ls' you will not see any new packages in the release area.
	# This is because the repository operates in sparse-checkout mode, hiding folders unless they are
	# explicitly made visible.  This is important, as we don't want to have to compile every single package.
	# To make the packages visible that have been modified from the release tag, run these commands:

	git cms-sparse-checkout CMSSW_X_Y_Z HEAD
	git read-tree -mu HEAD

	# You may optionally make other packages visible that depend on those which have been modified, so that
	# they will be recompiled.
	git-cms-checkdeps -a
	# In principle this should have also been done when using CVS, but is still not essential.

Next, add the IC analysis code package:

	mkdir UserCode
	cd UserCode
	git clone git@github.com:ajgilbert/ICHiggsTauTau.git
	cd ICHiggsTauTau
	./init_X_Y_Z.sh # This script performs a few final tasks in the new cmssw area

About

CMSSW package for Imperial group analysis code

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 60.1%
  • Shell 13.8%
  • C 13.5%
  • Python 11.9%
  • Other 0.7%