Return the the main analysis page.

Analysis Timeline

Run the (updated) 2016 cuts based analysis on the 2017 data [started]

Summary:

  1. Finish updating the user directory files (specifically CHODAnalysis) so that KaonEventAnalysis.cc runs correctly on 2017 data (check files are the correct versions)
  2. Run on one file to check functionality
  3. Ensure blinding is maintained
  4. Test over at least one full run
  5. Run on as much data as possible
  6. Try to run on any failed data files to complete the selection
  7. Discus unblinding
  8. Unblind starting with control regions
  9. Write up results with the intention to publish eventually
1. Update the version of the user directory files and start testing [in progress]

Copied over a recent version of Giuseppe's codes (after a full backup), we need to check that these all work as intended with 2017 data and check that these are the most recent versions of the codes (and check for any missing, new codes).

  • Starting with a test run on just TrackAnalysis (responsible for track to sub-detector matching, but no cuts) and TwoPhotonAnalysis (responsible for the pi0 variables), with just GigaTrackerEvtReco as a pre-analyzer and with the usual dependency libraries. This was done with a single, reprocessed, 2017, golden run file; specifically run 8252, filtered for Pnn, bursts 13-15.
    • Initial results suggest timing issues in the CHOD as expected
  • Next we will add the OneTrackEventAnalysis code and test that
  • Later we will add KaonEventAnalysis and any new pre-analyzers

Using Kμ2 as a normalisation sample [done]

The overall aim of NA62 if to measure the branching fraction (using BR as the canonical shorthand from here) of the decay K+→π+νν. In order to do so, we must account for errors both statistical and systematic. Therefore, if we measure the BR and normalise the number of events we observe by dividing it by one of the primary kaon decays (μ+ν or π+π0) we can cancel many of the major systematics. If we use both primary decays for a normalisation sample and compare the value, we can check if we are properly accounting for all systematics, as both should provide the same result. First we use the number of observed events of decay i:

Ni = fK ⋅ t ⋅ [BR(K→i)] ⋅ Atotali

where fK is the frequency of kaons in the beam, t is the total time period of data taking and Atotali is the total "acceptance" or fraction of decays in the detector's fiducial region that pass all processing and cuts (this should cover all contributions, even things like the possibility of events being incorrectly tagged as the decay you are measuring, pileup, matter interactions etc...).

We can define the total acceptance as the product of three contributions:

Atotali=Ageoi ⋅ Acutsi ⋅ Acori

where Ageoi is the Geometric acceptance (number of events that can be reconstructed by the detector equipment), Acutsi is the acceptance due to the selection cuts (calculated from MC) and Acori is the correction to the acceptance due to elements not modeled in the MC (such as the trigger efficiency).

From here we define Ai = Acutsi

From this we can construct an equation for:

BR(K+→π+νν) = BR(K+→μ+ν) ⋅ Nπ+νν/Nμ+νAμ+ν/Aπ+νν
where the fK and t terms cancel, along with the geometric acceptance and many of the correction efficiencies included in the total acceptance, and BR(K+→μ+ν) can be taken from the PDG listings, as it has been thoroughly measured by previous experiments.

Step 1: Generate a Kμ2 normalisation sample. [done]

  • Start by generating a sample of Kμ2 data with Pnn like cuts from one burst (current file) and organise some output histograms
    • Write a new analyser and tree to group useful output
    • Apply Pnn like cuts without PID
    • Add a muon missing mass cut and a timing based MUV3 cut to select muon events
  • Confirm compatibility of Pnn cuts, comment cuts as muon or Pnn, generally tidy up the code to finalise the cuts
Step 2: Calculate the acceptance "Aμ+ν" using all the muon MC with HTCondor. [done]
  • Select muon events at MC truth level
  • Take basic acceptance cut of 105 (possibly 115) to 165m
  • Bin events that pass all cuts by momentum as has been done in previous studies (15-20, 20-25, 25-30, 30-35 GeV)
  • Calculate binned acceptance by dividing by all events that pass Kmu2 cuts, recorded using the binning system, by the number that passed the truth geometric acceptance (such that the bins sum to the total acceptance)
Step 3: Run on as much 2016 data as possible with HTCondor to calculate a value for "Nμ+ν". [done]
  • Run selection on run number 6431 (large, good quality run) to start with
  • Run on Giuseppe's list of all good runs of 2016
Step 4: Start looking at the efficiencies that don't cancel in the acceptances fraction "Acori".
  • Pion ID efficiency: where the efficiency of pion ID in Pnn data "επdata+νν)" can be described by: [studied by others, determined negligible with respect to MC approximation for precision of Pnn analysis]
επdata+νν) = επMC+νν)⋅επdata+π0)/επMC+π0)

where "επMC+νν)" is the efficiency of pion ID in Pnn MC (which is used to calculate the Pnn acceptance), "επdata+π0)" is the efficiency of pion ID in π+π0 data and "επMC+π0)" is the efficiency of pion ID in π+π0 MC. Therefore, the Acceptance of Pnn "Aπ+νν" can be corrected to:

Aπ+ννεπdata+π0)/επMC+π0)

  • Matter interaction differences of muon and pion (assumed small).
  • Muon ID efficiency (similarly to pion ID efficiency)
  • Trigger efficiencies
  • Anything we missed?
  • Random veto: the additional loss of events due to both pileup and matter interactions affecting the multiplicity and photon rejection cuts, is not an issue for this normalisation as it cancels in the acceptance ratio (unlike π+π0 as it doesn't include these cuts)
Step 5: Calculate the single event sensitivity (SES) and compare it to the π+π0 normalisation. [done]
  • SES defined as the BR assuming a single event of signal with no background contributions

The seqence of processes involved in NA62 Pnn (and similar) data analysis

This section is written to later discus the efficiencies of the NA62 analysis and which efficiencies do not cancel between the Pnn channel and the muon normalisation.

Summary:

  1. The events occur in the detector
  2. Detector information is processed in the triggers and stored on Castor
  3. Raw data is reconstructed by the framework then the reconstructed data is filtered to purpose and stored on EOS
  4. Filtered data is then processed by the user directory files
  5. KaonEventAnalysis.cc then processes the data in stages
1: The events occur in the detector

Beam particles (mostly pions and protons, with 6% kaons) exit the T10 target and pass through the colimators, magnetic fields and GTK, possibly interacting or decaying (largely muon and photon decays from the pions). Negligible background from matter emissions (E too low) and high energy cosmic particles (low frequency below ground and usually wrong kinematics).

2: Detector information is processed in the triggers and stored on Castor

The L0TP processes the L0 trigger decision from the detector signals, then the PC farm processes L1 and auto-passes L2 (assuming all signals present). The Mergers then buffer the events and write to Castor.

3: Raw data is reconstructed by the framework then the reconstructed data is filtered to purpose and stored on EOS

The data is reconstructed using a version or revision of the framework that is dependent on the time the data was taken, reco efficiency is important at this stage.

The Pnn filtering code or others are used to reduce the file sizes and separate the events based on the analysis group that will use them.

4: Filtered data is then processed by the user directory files

User directory pre-analysing files: GigaTrackerEvtReco, TwoPhotonAnalysis.cc, TrackAnalysis.cc and OneTrackEventAnalysis.cc.

5: KaonEventAnalysis.cc then processes the data in stages

  1. The main function containing the base analysis
  2. Start of Job, Run then Burst; Initialise histograms, trees and output
  3. Process each event and call the relevant analysis functions
  4. Run the specific analysis function on each event that passed the previous stages
  5. Post-processing with: PostProcess; End of Burst, Run, Job; DrawPlot

GTK3 interaction MC work [Cancelled]

  1. Altering the Geant4 setup to change the hadronic interaction probability in GTK3 to 1 or reject non-interacting events (more likely solution)
  2. Generate on the order of 100M events
  3. Compare with data
  4. Make an estimation of this background for the PNN errors
Cancelled as generation of the statistics isn't feasible.

This has been left for the experts to look into further, as considerable work would be required to make this possible.

Initail work completed to set up the framework and user directory codes:

Build flag issue with --old-specialtrigger, causing a dependency on the framaework's UserMethods.cc file.

  • Everything works as expected if you comment out the OLD_SPECIALTRIGGER block as described in the analysisbuild.txt readme file and replace it manually with whichever trigger you want to use (either works or complains that you're using the wrong one at runtime). However, you then have a dependency on a framework file.
  • When using the flag, it seems that the "#define OLD_SPECIALTRIGGER" line in NA62AnalysisBuilder.py causes this definition to become stuck in the pre-processor, such that it continues to be defined if you try to build without the flag at a later stage
    • Solution 1: run a CleanAll command with NA62AnalysisBuilder.py then re-source the env.sh file
    • Solution 2: CleanAll then log out of your ssh session and log back in, source then build

Generating a Pnn sample from the Kaon code given to me by Giuseppe.

  • Build fails due to class conflict in the public directory files
    • Solution: fixed manually by Giuseppe in the codes, largely by replacing the conflicting "Particle" class with "MyParticle"
  • Further run fails due to a special trigger issue not dependent on the build flag
    • Solution: a special trigger element of the code needs changing when swapping between MC and data files
  • Now working on afs and should be able to set up on any other system (copy placed in: userDir2)
A test analyser, to understand how to generate an analyser from scratch and plot variables in the data files, using the framework as a basis.
  • This analyser is now setup such that it builds and begins to run with the current setup, designed to record the number of spectrometer candidates, but it fails at runtime due to an issue with a special trigger which is not specifically used in the code.
    • Solution: frameworks are not yet completely backwards compatible, I need to use the --old-specialtrigger flag after "build" to get this to work
Edit | Attach | Print version | History: r20 < r19 < r18 < r17 < r16 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r17 - 2018-04-03 - ConnorGraham
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback