TopTreeAnalysis

From T2B Wiki
Jump to navigation Jump to search

TopTreeAnalysis package

PageOutline

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? ???


Template:TracNotice