TopTreeAnalysis
Jump to navigation
Jump to search
TopTreeAnalysis package
Recipes
There are actually 2 branches
CMSSW22X - 10 TeV samples
Recipe:
cvs co -r CMSSW_229_TQAF_v04-08-08_R4-2 UserCode/TopBrussels/TopTreeProducer #(R4-2 and not R4-3 !!) #CMSSW_229_TQAF_v04-08-08_R4-2 is a tag mv UserCode/TopBrussels . cvs co -r CMSSW_22X UserCode/NewPhysicsBrussels/TopTreeAnalysis #CMSSW_22X is a branch mv UserCode/NewPhysicsBrussels/TopTreeAnalysis .
CMSSW35X - 7 TeV samples
Recipe:
cvs co -r CMSSW_35X_v8 UserCode/TopBrussels/TopTreeProducer #CMSSW_35X_v8 is a tag mv UserCode/TopBrussels . cvs co -r CMSSW_35X UserCode/NewPhysicsBrussels/TopTreeAnalysis #CMSSW_35X is a branch mv UserCode/NewPhysicsBrussels/TopTreeAnalysis .
Developments
For development, we should do modification in both package in parallel. This suppose that we have both setups in place and that we do the change in both and test in both with different samples:
- actual TopTrees for 22X
- new TopTrees for 35X (still issues to be solved on TopTrees production)
In order to update your environment according to tag or branch "X", you can do
cvs update -r X
Tags
For CMSSW22X branch
V-02-02
- Externalization of parameters for Cross-section measurement (Eric)
- SelectionTable produce latex output directly (Eric)
New
- Greg ?
- 23/04 (Gerrit): Added deletion of pointer in a constructor of the Observables class to solve a memory leak which is of importance when looping over pseudoexperiments
- 28/04 (Gerrit): Made modifications to the statistical procedure classes, with especially new methods in the WeightProbaCalculator class (for calculating percentiles, conversion between p-values and significances, power of test, ...).
- 29/04 (Gerrit): Backported Eric's modifications of the MCPseudoExp class from 35X to 22X, with method to speed up pseudo-experiments
For CMSSW35X branch
New
- Adapt on TopTreeProducer 35X: jets can be TRootCaloJet, TRootPFJet or TRootJet + change of isolation methods in TRootElectron (Eric)
- Choose the name of object collections in the xml file (jets, muons, electrons, mets, GenEvent, NPGenEvent) (Eric)
- Change in selection: loose selection for veto on 2nd muon, loose selection for veto on an electron, add jet-id variable (Eric)
- 09/04: add "using namespace TopTree" to run on TopTree's > CMSSW_35X_v9 + change TClonesArray with namespace + add TRootVertex (Linkdef). Macros are modified as well (Eric)
- 16/04 (Eric): Selection: add a new constructor to choose among TRootXJet(X= , Calo, PF) solutions depending on anaEnv.JetType (0,1,2), avoid to declare Selection as pointer in the macros (leads to memory leak)
- 16/04 (Eric): Dataset: modify destructor - add delete
- 16/04 (Eric): TTreeLoader: add Delete of the TCLonesArray - change the destructor which was responsible of the crash at the end of CrossSectionMeasurement
- 16/04 (Eric): CrossSectionMeasurement: Up to date with new environment. Avoid re-computation of selected object collections
- 16/04 (Eric): add namespace TopTree everywhere it was needed
- 18/03 (Eric): Modification to include Quality Cuts on Primary Vertex at the selection level. This is configurable via xml file and implemented in the 2 macros.
- 22/04 (Thierry): Crashes at the end of the macros seems to be fixed (in 35X, port to 22X not done yet).
- 23/04 (Gerrit): Added deletion of pointer in a constructor of the Observables class to solve a memory leak which is of importance when looping over pseudoexperiments
- 26/04 (Eric) StatProcedure/MCPseudoExp:Add a new method to speed up the pseudo-experiment taking continuous block of events when it is possible
- 26/04 (Eric) Selection: Load AnalysisEnvironment to configure all the values. Include modifications coming from sync' exercise (lines concerning IPSign should be uncommented)
- 26/04 (Eric) CrossSectionPseudoExp: new class used to store info & compute plots on pseudo-experiments for the cross-section measurement
- 26/04 (Eric) CrossSectionMeasurement: Update to the new selection & sync'exercise, add the new feature of MCPseudoExp to speed up, add the new class to store/compute/write plots on pseudo-exp
- 27/04 (Eric) update Selection and CrossSectionMeasurement for correct selection in ABCD method
- 04/05 (Eric) update FullChainEstimation with a correct computation of the Chi2-sorting
- 04/05 (Eric) externalization of the parameters for VJetEstimation method
- 11/04 (Eric) add a JES parameter, needed for systematic study
Knowns problems
- Crash at the end of CrossSectionMeasurement.cc [SOLVED] FullChainEstimation.cc (Eric)
- Crash in FullChainEstimation with last version of 22X (Eric)
- Crash of FullChainEstimation while running on SUSY sample - Problem in ttjestimation: ComputeSignificance() & Draw() methods (Eric)
- config/Binning.root contains axes which refer to lumi of 100fb-1, but it should be 100pb-1. Next, in FullChainEstimation it is tried to read non-existing axes which refer to 100pb-1.
- (Gerrit): deleting BtagWorkingPoint_vjEst in destructor of AnalysisEnvironment class makes statistical procedure macro crash after couple of pseudoexperiment iterations ('corrupted double-linked list'); commenting this seems to solve it (commenting not committed to cvs).
- (Gerrit): compilation error for 35X branch, due to something in the Selection class [SOLVED]
- (Eric): Problem to access "event" while running on more than one file for a given dataset which lead to HLT problem. I investigate, there is no obvious reason
- (Eric): Crash at the end of macros in 35X due to ~TTreeLoader [SOLVED]
- (Eric): Crash with CrossSectionMeasurement in 35X (to be fixed by Greg)
- (Eric): Chi2-sorting in FullChainEstimation require to have at least 4 jets in the selection otherwise it crash
To-do list
- Use TtSemiMuJetCombination to compute Chi2 and implement in FullChainEstimation (Alexis)
- Propagation of errors (Eric)
- Fit of resolutions, configure a interval (ex: 34%) or #sigma per bin, refine binning in the tails (Thierry)
- Last changes in 22X ported in 35X (Greg)
- Uniformisation of variables type
- Initialization values for VJetEstimation in CrossSectionMeasurement should not be hard-coded (Greg)
- VJetEstimation should be integrated in FullChainEstimation (Greg)
- Chi2-sorting should be done by a class and not by function in FullChainEstimation
- Protection if #NofJets<4 in the selection in FullChainEstimation [DONE]
- Externalize Chi2-sorting parameters in the xml file
Advices
- Use mainly "const type &" instead of "type" as argument to the functions of the classes, it's avoid to copy the object (it's faster)
- Don't copy pointer in your copy constructeur but reallocate memory
Behaviours to be tested
- ??? Possible problem, to be tested to give an answer ??? : When doing the Delete() on a TClonesArray, does it kill the event or not (this problem would only happen at pseudo-experiments runnings). If so, are the events loaded again after or not? ???