ECALELF  d6718b6cc30d69f18fde9018c5ae12f9d80bd7a5
Config files syntax and generation

Di-electron events are selected using a short special syntax defined in this class.

In order to work with ECALELF ntuples you should move to the Calibration/ZFitter directory. Now on the paths are relative to the Calibration/ZFitter directory.

There are three important directories where the proper .dat files should be put:

Syntax:
  • '-' is the cut separator
    es. <cut1>-<cut2>-<cut3>
    es. EB-absEta_0_1-gold:
    three cuts are applied:
    • EB -> no parameters,
    • absEta_0_1 -> two parameters 0 and 1 (parameters are separated by _,
    • gold -> no parameters
  • List of possible cuts without parameter: EB EE EB_EE EBp (EB+) EBm (EB-) EE EEp EEm RefReg
  • List of possible cuts with 1 parameter:
    • Et_X: Et_
    • eleID_X: eleID == X
    • gainEle_X: 12, 6, 1, 6and1
  • List of possible cuts with 2 parameters:
    ATTENTION! Same syntax but different meaning!
    • runNumber_X_Y: X <= runNumber <= Y
    • IEta_X_Y: X <= ieta (or iX) <= Y
    • absIEta_X_Y: X <= abs(ieta) <= Y
    • distIEta_X_Y: X-Y <= ieta <= X+Y
    • absEta_X_Y: X <= |eta| < Y
    • energySC_X_Y: X <= energySCEle < Y
    • nPV_X_Y: X <= nPV < Y
      For standard validations you can use the data/regions/validation.dat that is set in the scripts as the default one.

Validation config files

This config file contains the list of files to run on, the files containing the PU histograms for the PU reweighting and all the other files needed. The main idea in the ECALELF framework is to have a minimum set of variables in very small trees (the tree name is "selected"), while additional branches can be produced and added if needed as tree friends. The advantage is the possibility to produce ntuples for a larger set of studies with small specific trees for each of them.

The file is structured in 3 columns: tag, treeName and filePath as in the follows:

# commented lines
# tag   treeName        file
s1      selected        root://eoscms//eos/..../file.root
s2      selected        root://eoscms//eos/..../file.root
d1      selected        root://eoscms//eos/..../file.root
d       pileupHist      /afs/cern.ch/cms/CAF/CMSALCA/ALCA_ECALCALIB/ECALELF/puFiles/190456-204567-13Julv2_lastPrompt.69400.observed.root
s       pileupHist      /afs/cern.ch/cms/CAF/CMSALCA/ALCA_ECALCALIB/ECALELF/puFiles/nPU-Summer12_DD3.observed.root

The first column (tag) indicates if this file is signal MC (s), background MC (b), or data (d).

The single samples are indicated by a number (s1, s2, etc., d1, d2, etc.)

The second column (treeName) is the name of the tree in the file

The third column (filePath) is the full path of the file files with the same tag and the same treeName are put in the same chain files with the same tag but different treeName are added as friends

For each tag (e.g. s1) one can have multiple chains with different treeName (e.g. selected, pileup, r9Weight, etc.), a chain with treeName=="selected" is mandatory since it is the main tree, all the other chains are considered as friends of the "selected".

How to get the pileup histogram

Please see the dedicated page Generating PU weight files

How to produce ntuples with pileup weights

In the config file the pileupHist must be indicated. When running the ZFitter.exe it will automatically calculate the weights and create the additional ntuples in the

tmp/

directory. To just produce the ntuples:

./bin/ZFitter.exe -f data/validation/22Jan2012-stdMCAll.dat --savePUTreeWeight

It's sufficient to copy them from the tmp/ directory to another directory and to add them to the config file. Usually the pileupHist and pileup tree are put in the following directory:

/afs/cern.ch/cms/CAF/CMSALCA/ALCA_ECALCALIB/ECALELF/puFiles/

The tree name of the pileup weight files is pileup:

s1 pileup /afs/cern.ch/cms/CAF/CMSALCA/ALCA_ECALCALIB/ECALELF/puFiles/s1_pileupTrue....root

The pileupHist root files should be generated as indicated in Generating PU weight files

How to produce runRanges .dat files

The idea is to produce a file with the run ranges with 100k Zee events (to have enough statistics in the EE), but taking into account also that some run ranges should not be between to TSs or two era (RUN A and B).

The run ranges:

The ZFitter.exe options are:

--runDivide execute the run division
--nEvents_runDivide arg (=100000) Minimum number of events in a
run range