restructuring anab particleid
play

Restructuring anab::ParticleID Kirsty Duffy and Adam Lister 1 2 - PowerPoint PPT Presentation

Restructuring anab::ParticleID Kirsty Duffy and Adam Lister 1 2 Introduction The current anab::ParticleID class is currently very restrictive. There are currently methods for the Chi2 algorithm and PIDA but nothing else. If you want to add a


  1. Restructuring anab::ParticleID Kirsty Duffy and Adam Lister 1

  2. 2 Introduction The current anab::ParticleID class is currently very restrictive. There are currently methods for the Chi2 algorithm and PIDA but nothing else. If you want to add a PID algorithm, this requires changing LArSoft each time! We’ve recently been doing some PID work on MicroBooNE. In the process, we have developed a new organisation of the anab::ParticleID class which is easily extendable , and should be able to hold results for any potential algorithm we could think of. Previously presented at LArSoft co-ordination meeting on 17th July 2018: have implemented suggestions and now hoping to implement new structure in LArSoft

  3. 3 Overview of new structure The change comes down to replacing all variables with a new vector of sPArticleIDAlgScores structs. Current Proposed

  4. 4 New Struct The change comes down to replacing all variables with a new vector of sPArticleIDAlgScores structs. Algorithm name, defined by experiment developers. Default: “AlgNameNotSet” enum kVariableType { kGOF, // Goodness of Fit kLikelihood, // Likelihood kLogL, // Log-Likelihood kScore, // Generic Particle ID score kPIDA, // PIDA value struct sParticleIDAlgScores { kdEdxtruncmean, // dE/dx versus truncated mean std :: string fAlgName; kdQdxtruncmean, // dQ/dx versus truncated mean kTrackLength, // Track Length kVariableType fVariableType; kEdeposited // Deposited energy kEbyRange // Energy by range kTrackDir fTrackDir; kNotSet // Not set int fAssumedPdg; }; Int fNdf; Default: kNotSet float fValue; std::bitset<5> fPlaneID; enum kTrackDir { kForward, // Direction track is reconstructed } kBackward, // Opposite to reconstruction kNoDirection }; Default: kNoDirection This is fed by c++ algorithms : This is fed by c++ algorithms : ● ● Chi2 Bragg_Likelihood Assumed PDG (for likelihoods, GOFs, etc.). Default: 0 ● ● PIDA Chi2 ● ● PIDA ... Number of degrees of freedom, if applicable. Default: -9999 ● DepVRangeE ● dEdxVLength ● ... Value produced by algorithm. Default: -9999 Plane ID for the algorithm result: Default “00000”

  5. 5 New Struct: fAlgName fAlgName : this is just a string which can be used to identify an algorithm in the absence of anything else (“Chi2”, “PIDA_mean”, etc.). To be defined within experiments. Algorithm name, defined by experiment developers. Default: “AlgNameNotSet” Algorithm name, defined by experiment developers. Default: “AlgNameNotSet” enum kVariableType { kGOF, // Goodness of Fit kLikelihood, // Likelihood kLogL, // Log-Likelihood kScore, // Generic Particle ID score kPIDA, // PIDA value struct sParticleIDAlgScores { struct sParticleIDAlgScores { kdEdxtruncmean, // dE/dx versus truncated mean std :: string fAlgName; std :: string fAlgName; kdQdxtruncmean, // dQ/dx versus truncated mean kTrackLength, // Track Length kVariableType fVariableType; kVariableType fVariableType; kEdeposited // Deposited energy kEbyRange // Energy by range kTrackDir fTrackDir; kTrackDir fTrackDir; kNotSet // Not set int fAssumedPdg; int fAssumedPdg; }; Int fNdf; Int fNdf; Default: kNotSet float fValue; float fValue; std::bitset<5> fPlaneID; std::bitset<5> fPlaneID; enum kTrackDir { kForward, // Direction track is reconstructed } } kBackward, // Opposite to reconstruction kNoDirection }; Default: kNoDirection This is fed by c++ algorithms : This is fed by c++ algorithms : ● ● Bragg_Likelihood Chi2 Assumed PDG (for likelihoods, GOFs, etc.). Default: 0 Assumed PDG (for likelihoods, GOFs, etc.). Default: 0f ● ● PIDA Chi2 ● ● ... PIDA Number of degrees of freedom, if applicable. Default: -9999 ● DepVRangeE ● dEdxVLength ● ... Value produced by algorithm. Default: -9999 Plane ID for the algorithm result: Default “00000”

  6. 6 New Struct: fVariableType kVariableType : an enum which can be used to easily get at the type of variable you want. Algorithm name, defined by experiment developers. Default: “AlgNameNotSet” enum kVariableType { enum kVariableType { kGOF, kGOF, // Goodness of Fit // Goodness of Fit kLikelihood, kLikelihood, // Likelihood // Likelihood kLogL, kLogL, // Log-Likelihood // Log-Likelihood kScore, kScore, // Generic Particle ID score // Generic Particle ID score kPIDA, kPIDA, // PIDA value // PIDA value struct sParticleIDAlgScores { struct sParticleIDAlgScores { kdEdxtruncmean, kdEdxtruncmean, // dE/dx versus truncated mean // dE/dx versus truncated mean std :: string fAlgName; std :: string fAlgName; kdQdxtruncmean, kdQdxtruncmean, // dQ/dx versus truncated mean // dQ/dx versus truncated mean kTrackLength, kTrackLength, // Track Length // Track Length kVariableType fVariableType; kVariableType fVariableType; kEdeposited kEdeposited // Deposited energy // Deposited energy kEbyRange kEbyRange // Energy by range // Energy by range kTrackDir fTrackDir; kTrackDir fTrackDir; kNotSet kNotSet // Not set // Not set int fAssumedPdg; int fAssumedPdg; }; }; Int fNdf; Int fNdf; Default: kNotSet Default: kNotSet float fValue; float fValue; std::bitset<5> fPlaneID; std::bitset<5> fPlaneID; enum kTrackDir { kForward, // Direction track is reconstructed } } kBackward, // Opposite to reconstruction kNoDirection }; Default: kNoDirection This is fed by c++ algorithms : This is fed by c++ algorithms : ● ● Chi2 Bragg_Likelihood Assumed PDG (for likelihoods, GOFs, etc.). Default: 0f ● ● PIDA Chi2 ● ● ... PIDA Number of degrees of freedom, if applicable. Default: -9999 ● DepVRangeE ● dEdxVLength ● ... Value produced by algorithm. Default: -9999 Plane ID for the algorithm result: Default “00000”

  7. 7 New Struct: fTrackDir kTrackDir: enum to represent whether ParticleID score is calculated assuming track goes forwards or backwards (with respect to reconstructed direction) Algorithm name, defined by experiment developers. Default: “AlgNameNotSet” enum kVariableType { kGOF, // Goodness of Fit kLikelihood, // Likelihood kLogL, // Log-Likelihood kScore, // Generic Particle ID score kPIDA, // PIDA value struct sParticleIDAlgScores { struct sParticleIDAlgScores { kdEdxtruncmean, // dE/dx versus truncated mean std :: string fAlgName; std :: string fAlgName; kdQdxtruncmean, // dQ/dx versus truncated mean kTrackLength, // Track Length kVariableType fVariableType; kVariableType fVariableType; kEdeposited // Deposited energy kEbyRange // Energy by range kTrackDir fTrackDir; kTrackDir fTrackDir; kNotSet // Not set int fAssumedPdg; int fAssumedPdg; }; Int fNdf; Int fNdf; Default: kNotSet float fValue; float fValue; std::bitset<5> fPlaneID; std::bitset<5> fPlaneID; enum kTrackDir { enum kTrackDir { kForward, kForward, // Direction track is reconstructed // Direction track is reconstructed } } kBackward, kBackward, // Opposite to reconstruction // Opposite to reconstruction kNoDirection kNoDirection }; }; Default: kNoDirection Default: kNoDirection This is fed by c++ algorithms : This is fed by c++ algorithms : ● ● Bragg_Likelihood Chi2 Assumed PDG (for likelihoods, GOFs, etc.). Default: 0f ● ● PIDA Chi2 ● ● PIDA ... Number of degrees of freedom, if applicable. Default: -9999 ● DepVRangeE ● dEdxVLength ● ... Value produced by algorithm. Default: -9999 Plane ID for the algorithm result: Default “00000”

  8. 8 New Struct: fAssumedPdg fAssumedPdg : This is used for algorithms where an assumption about the particle species is made (e.g. Chi2 with respect to the Muon hypothesis). Algorithm name, defined by experiment developers. Default: “AlgNameNotSet” enum kVariableType { kGOF, // Goodness of Fit kLikelihood, // Likelihood kLogL, // Log-Likelihood kScore, // Generic Particle ID score kPIDA, // PIDA value struct sParticleIDAlgScores { struct sParticleIDAlgScores { kdEdxtruncmean, // dE/dx versus truncated mean std :: string fAlgName; std :: string fAlgName; kdQdxtruncmean, // dQ/dx versus truncated mean kTrackLength, // Track Length kVariableType fVariableType; kVariableType fVariableType; kEdeposited // Deposited energy kEbyRange // Energy by range kTrackDir fTrackDir; kTrackDir fTrackDir; kNotSet // Not set int fAssumedPdg; int fAssumedPdg; }; Int fNdf; Int fNdf; Default: kNotSet float fValue; float fValue; std::bitset<5> fPlaneID; std::bitset<5> fPlaneID; enum kTrackDir { kForward, // Direction track is reconstructed } } kBackward, // Opposite to reconstruction kNoDirection }; Default: kNoDirection This is fed by c++ algorithms : This is fed by c++ algorithms : ● ● Bragg_Likelihood Chi2 Assumed PDG (for likelihoods, GOFs, etc.). Default: 0f Assumed PDG (for likelihoods, GOFs, etc.). Default: 0 Assumed PDG (for likelihoods, GOFs, etc.). Default: 0f ● ● PIDA Chi2 ● ● ... PIDA Number of degrees of freedom, if applicable. Default: -9999 ● DepVRangeE ● dEdxVLength ● ... Value produced by algorithm. Default: -9999 Plane ID for the algorithm result: Default “00000”

Recommend


More recommend