forked from ECALELFS/ECALELF
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
132 lines (100 loc) · 4.19 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/**
* \mainpage
* \author Shervin Nourbakhsh
*
*
*
* \ref preReq
*
* \ref page1
*
* <A HREF="https://github.com/ECALELFS/ECALELF/blob/master/README.md"> Download instructions </A>
*
* \ref page2
*
* Working with ntuples: \ref page4
*
* Instructions for ECAL validator:
- \ref page5
- \ref page6
- \ref page7
*
* Small eveloper guide: \ref Devel
*/
/**
* \page page1 Introduction
* \verbatim
############################################################
## ECALELF (Ecal CALibration with ELectrons Framework)
## study and calibration with Zee and E/p
############################################################
\endverbatim
All the code needed to the ECAL studies and calibration with Zee is
available in this package.
The documentation of this packaged is provided in these pages extracted with doxygen from the source code and several txt files contained in the package itself.
The code in this package takes the name of ECALELF
(Ecal CALibration with ELectrons Framework)
Informations for the implementation or re-implementation can be
obtained looking the the various header files that will be completed
with exaustive documentation (in the future)
If you have doxygen, you can run the command
\code doxygen fulldoc \endcode
from the Calibration/ directory and you can navigate instructions and code locally with
\code firefox doc/doxygen/fulldoc/html/index.html \endcode
The general calibration workflow is:
\image html doc/ecalelf_schema.png
\image latex doc/ecalelf_schema.eps
1) start from AOD/RECO or AOD/RECO+RAW
1.1a) apply a ZSkim or a ZSCSkim or a WSkim selection to reduce the size of the dataset
2a) produce the ALCARAW from AOD/RECO+RAW:
in this format most of the collections are
dropped and only the electrons, the uncalibrated rec hits
and few other collections like the beamspot, the conversions, the
rhoFastJet are kept
3a) Apply whatever ECAL tags (ADCtoGeV, IC, LC, Alpha) needed for test
or calibration and produce a new file in ALCARECO format.
The new file has a reduced collection of calibrated rechit of the
reco electrons, new SC collections produced with the new calibrated
recHits, the old reco electrons with a new SC associated
CAVEAT: all the electron variables are still the old RECO one,
only the reference to the new SC has been updated. This will not be
fixed, since it's a wanted feature that ensures that the selected
events are not changed and permit to check effectively the impact
of the calibration on the same events.
4) calculate new electron energies with the EleNewEnergiesProducer
that creates ValueMaps that associate a float (the new energy) to
the electrons
5) define if the electron pass some selections running the
EleSelectionProducer that creates valueMaps of floats with the
following meaning:
for cut-based selections 1=pass, 0=fail
for MVA selections the float is the output of the MVA
6.0) for MC, produce an association map between reco electron and gen
electron (data-MC match)
6.1) produce a patElectron collection where the electronID floats and
the new energies are imported by the patElectron and accessible by
electron.electronID("selectionName")
electron.userFloat("energyName")
the gen electron identified by the data-MC matching step are
embended in the patElectron and accessible by:
electron.genLepton().eta()
electron.genLepton().energy()
7) Filter the events requiring that the electron has passed at least
one selection
8) dump the event content to a flat tree with one entry for Zee
candidate (the variables are array of two elements with one electron
per element)
9) Run the analysis tools (Z fitter, smearing, etc.)
In case the purpose is just to run on a particular dataset without any
recalibration step, the 1-3a) steps can be replaced by
1b) Start from RECO or AOD
2b) Produce directly the ALCARECO, dropping all the unuseful
collections and reducing the recHit maps to the one related to
the electrons
3b) nothing
## For further implementations
#Step 5) could be done after step 1) since electronID and isolations
#are not updated by the sandbox recalibration and then could be
#performed just once.
Good luck!
*/