« July 2006 | Main

Thursday, June 29, 2006

June 28

Worked on the TChain-ing correctly the root files. Our previous FWLight scripts were producing seg. faults when trying to access the events. I found this page in the CMS TWiki:

https://uimon.cern.ch/twiki/bin/view/CMS/WorkBookJetReco#FWLite_with_TChain

and used the method described in the files analyzeJets_headChain.C and analyzeJetsChain.C. My (final?) version of the root script looked like:

gSystem->Load("libPhysicsToolsFWLite");
AutoLibraryLoader::enable();
TChain chain("Events");
chain->Add(filenames);
// Number of entries in chain
Int_t nevent = chain.GetEntries();
// Open first file and set addresses. This needed in addition to what is done in event loop.
chain.GetEvent(0);
// Declare HepMCProduct
edm::HepMCProduct prod;
chain.SetBranchAddress("edmHepMCProduct_PythiaSource__TEST.obj",&prod);
int treenumber = 0;
double p_mom, p_eta, p_id;
// Loop over events
for ( int ev = 0; ev < nevent; ++ev )
{
// Begin magic from Phillipe Canal to insure that for each file
// we read the first entry twice. Necessary, for the chain to work.
int current = chain.LoadTree(ev);
if (treenumber!=current)
{
chain.GetEvent(ev);
chain.SetBranchAddress("edmHepMCProduct_PythiaSource__TEST.obj",&prod);
treenumber = current;
}
// End magic from Phillipe Canal.
chain.GetEvent(ev);
// Iterate over the particles of the current event
for (HepMC::GenEvent::particle_const_iterator p = prod.getHepMCData().particles_begin(); p != prod.getHepMCData().particles_end(); ++p ) {
(...) // particle iteration loop
} // End current event loop
} // End iteration over events.

Executing this script gives warnings like this:

Error in <TTree::SetBranchStatus>: unknown branch -> edmHepMCProduct_PythiaSource__TEST.obj

The number of the warnings is as much as the number of root files we have TChained (edit: warnings are #files-1). With tests that have been made so far though, it doesn't seem to affect our histograms.

Note: The above is for CMSSW 0_6_0. Moving to 0_7_2 will probably require to use gSystem->Load("libFWCoreFWLite.so"); instead.

Posted by Christos Lazaridis at 11:10 AM
Edited on: Thursday, June 29, 2006 12:24 PM
Categories: Programming, Root

Monday, June 26, 2006

June 26

Not much to say... I've been trying to make my root scripts more elaborate.

I have an updated version of the Powerpoint presentation (some plots have finally Et removed). The PlotCombined root script now plots each background set with a different color (e+e-, neutrinos). Also, the scaling of the graphs changed slightly. Now to do the scaling, the sum of the cross sections of each set is being used times the number of events.

Posted by Christos Lazaridis at 6:15 PM
Edited on: Monday, June 26, 2006 6:15 PM
Categories: CMSSW, Physics, Root

Monday, June 19, 2006

Week 3

June 23

Created 2 highest Pt e+e- plots. Signal, Background Set 1, Set 2, Top, Drell-Yan.
* Script stops searching @50th particle to save time.

Finished(?) script to produce combined signal/background plots. Will be online during the weekend hopefully.

Powerpoint presentation with the progress so far (under development!)

June 22

Started producing background plots. Plotted all background sets separately. (until I get organized better look at my files)

Plotted the highest Pt electrons for the signal.

Work in progress: Script to plot signal+background together.

Scaling of the histograms: Multiplication of the cross section given by Pythia times the number of events.

TODO: 1) Plot 2 highest Pt electrons. 2) Remove Et from graphs - keep only Pt (DONE - new plots will be ok).

June 20

Looking for background processes in Pythia... current selection:

'MSUB(12)=1 ! fi fibar -> fk fkbar',
'MSUB(15)=1 ! fi fibar -> g Z0',
'MSUB(16)=1 ! fi fjbar -> g W+',
'MSUB(22)=1 ! fi fibar -> Z0 Z0',
'MSUB(23)=1 ! fi fjbar -> Z0 W+',
'MSUB(25)=1 ! fi fibar -> W+ W-',
'MSUB(30)=1 ! fi g -> fi Z0',
'MSUB(31)=1 ! fi g -> fk W+',
'MSUB(81)=1 ! fi fibar -> Qk Qkbar',
'MSUB(82)=1 ! gg -> Qk Qkbar',
'MSUB(84)=1 ! g gamma -> Qk Qkbar'

June 19

So, the Drell-Yan process is the collision between two quarks giving a virtual photon and subsequently a lepton and an antilepton pair as a product.

Quoting this paper (Phys. Rev. Lett. 56, 1327), my process, a Z with larger transverse momentum opposite a missing transverse momentum of the same size, has litte background in the SM.

Notes:
K-factor: The fraction (NLO cross section)/(LO cross section) --- NLO: Next Leading Order

Posted by Christos Lazaridis at 4:38 PM
Edited on: Saturday, June 24, 2006 7:28 PM
Categories: CMSSW, Physics, Root

Thursday, June 15, 2006

Week 2

* Final selection of process: Higgs -> ZZ -> eeνν

  • Find and set Pythia parameters to produce the above process.

Parameter selection so that only the Higgs->ZZ process exists. Also, Added constraints so that one of the Zs decays to e+e- and the other to (any) two neutrinos.

Currently at the stage of identifying background processes. t-tbar and the Drell-Yan process (?->look it up!) important backgounds.

Root notes:

Getting the events from the root file:

TTree* events = (TTree*) (f.Get("Events"));
TBranch* MCBranch = events->GetBranch("edmHepMCProduct_PythiaSource__TEST.obj");
edm::HepMCProduct prod;
MCBranch->SetAddress(&prod);

To iterate over all particles in a root file:

for (HepMC::GenEvent::particle_const_iterator p = prod.getHepMCData().particles_begin();
p != prod.getHepMCData().particles_end(); ++p )
{
...
}

Useful properties of particles:

(*p)->ParticleID(); What particle are we dealing with?
(*p)->momentum().perp();Transverse component of momentum
(*p)->momentum().eta();
Pseudorapidity
(*p)->momentum().et();
Transverse energy
(*p)->momentum().Mother();The mother of the particle

Posted by Christos Lazaridis at 3:43 PM
Edited on: Monday, June 19, 2006 2:48 PM
Categories: CMSSW, Physics, Root

Week 1

A small roundup of what happened the first week...

  • Selected a Higgs decay channel (higgs -> ZZ -> llνν).
  • Setting up a CMSSW project to work with...

scramv1 project CMSSW CMSSW_0_6_0;
cd CMSSW_0_6_0/src;

  • Checking out code from the CSSSW repository using cvs:

cmscvsroot CMSSW; cvs login;
cvs co -r CMSSW_0_6_0 IOMC;

cd IOMC/GeneratorInterface/test;
eval `scramv1 runtime -sh`;
Needed after logon to run a project.
cmsRun mcinput.cfg; Generate events.

  • Learned how to setup a process is CMSSW, by changing MSUB (processes), MDME (decays) values.
  • Creating Root scripts to plot transverse energy/momentum and eta of particles.

Very useful: Filip Moortgat's presentation on Generator Interface in CMSSW.

Also, attended the June 7th CMSSW tutorial. And here's the workbook of the tutorial.

Posted by Christos Lazaridis at 2:43 PM
Edited on: Friday, June 16, 2006 3:45 PM
Categories: CMSSW, Linux, Root

Christos Lazaridis - My other website :)