10 #include <analysis/modules/LowEnergyPi0IdentificationExpert/LowEnergyPi0IdentificationExpertModule.h>
13 #include <analysis/variables/ECLVariables.h>
14 #include <analysis/variables/HelicityVariables.h>
15 #include <mva/interface/Interface.h>
16 #include <boost/algorithm/string/predicate.hpp>
29 "Database identifier or file used to load the weights.",
58 std::stringstream ss((*m_weightfile_representation)->m_data);
78 m_expert = supported_interfaces[general_options.m_method]->getExpert();
80 std::vector<float> dummy;
87 dummy.resize(nInputVariables, 0);
94 for (
int i = 0; i < n; ++i) {
98 const Particle* gammaLowEnergy, *gammaHighEnergy;
100 gammaLowEnergy = gamma2;
101 gammaHighEnergy = gamma1;
103 gammaLowEnergy = gamma1;
104 gammaHighEnergy = gamma2;
106 double gammaLowEnergyPi0Veto, gammaHighEnergyPi0Veto;
107 double gammaLowEnergyE9E21, gammaHighEnergyE9E21;
108 double gammaLowEnergyClusterTheta, gammaHighEnergyClusterTheta;
109 double gammaLowEnergyZernikeMVA, gammaHighEnergyZernikeMVA;
110 double gammaLowEnergyIsolation, gammaHighEnergyIsolation;
111 gammaLowEnergyPi0Veto = pi0->
getExtraInfo(
"lowEnergyPi0VetoGammaLowEnergy");
112 gammaHighEnergyPi0Veto =
114 gammaLowEnergyE9E21 = Variable::eclClusterE9E21(gammaLowEnergy);
115 gammaHighEnergyE9E21 = Variable::eclClusterE9E21(gammaHighEnergy);
116 gammaLowEnergyClusterTheta = Variable::eclClusterTheta(gammaLowEnergy);
117 gammaHighEnergyClusterTheta = Variable::eclClusterTheta(gammaHighEnergy);
119 gammaLowEnergyZernikeMVA = Variable::eclClusterZernikeMVA(gammaLowEnergy);
120 gammaHighEnergyZernikeMVA =
121 Variable::eclClusterZernikeMVA(gammaHighEnergy);
122 gammaLowEnergyIsolation = Variable::eclClusterIsolation(gammaLowEnergy);
123 gammaHighEnergyIsolation = Variable::eclClusterIsolation(gammaHighEnergy);
125 m_dataset->m_input[0] = gammaLowEnergyPi0Veto;
126 m_dataset->m_input[1] = gammaHighEnergyPi0Veto;
127 m_dataset->m_input[2] = gammaLowEnergyE9E21;
128 m_dataset->m_input[3] = gammaHighEnergyE9E21;
129 m_dataset->m_input[4] = gammaLowEnergyClusterTheta;
130 m_dataset->m_input[5] = gammaHighEnergyClusterTheta;
132 m_dataset->m_input[6] = gammaLowEnergyZernikeMVA;
133 m_dataset->m_input[7] = gammaHighEnergyZernikeMVA;
134 m_dataset->m_input[8] = gammaLowEnergyIsolation;
135 m_dataset->m_input[9] = gammaHighEnergyIsolation;
138 pi0->
addExtraInfo(
"lowEnergyPi0Identification", identification);
Class for accessing objects in the database.
std::unique_ptr< MVA::SingleDataset > m_dataset
Pointer to the current dataset.
bool m_Belle1
Belle 1 data analysis.
void initialize() override
Initializer.
void event() override
This method is called for each event.
void endRun() override
This method is called if the current run ends.
void terminate() override
This method is called at the end of the event processing.
std::unique_ptr< MVA::Expert > m_expert
Pointer to the current MVA expert.
std::unique_ptr< DBObjPtr< DatabaseRepresentationOfWeightfile > > m_weightfile_representation
Database pointer to the database representation of the weightfile.
void beginRun() override
Called when entering a new run.
StoreObjPtr< ParticleList > m_ListPi0
pi0 candidates.
LowEnergyPi0IdentificationExpertModule()
Constructor.
void init_mva(MVA::Weightfile &weightfile)
Initialize mva expert, dataset and features Called everytime the weightfile in the database changes i...
~LowEnergyPi0IdentificationExpertModule()
Destructor.
std::string m_Pi0ListName
Pi0 particle list name.
std::string m_identifier
Database identifier or file used to load the weights.
static std::map< std::string, AbstractInterface * > getSupportedInterfaces()
Returns interfaces supported by the MVA Interface.
static void initSupportedInterfaces()
Static function which initliazes all supported interfaces, has to be called once before getSupportedI...
General options which are shared by all MVA trainings.
Wraps the data of a single event into a Dataset.
The Weightfile class serializes all information about a training into an xml tree.
static Weightfile loadFromStream(std::istream &stream)
Static function which deserializes a Weightfile from a stream.
void getOptions(Options &options) const
Fills an Option object from the xml tree.
static Weightfile loadFromFile(const std::string &filename)
Static function which loads a Weightfile from a file.
void addSignalFraction(float signal_fraction)
Saves the signal fraction in the xml tree.
void setDescription(const std::string &description)
Sets the description of the module.
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
Class to store reconstructed particles.
double getEnergy() const
Returns total energy.
void addExtraInfo(const std::string &name, double value)
Sets the user-defined data of given name to the given value.
const Particle * getDaughter(unsigned i) const
Returns a pointer to the i-th daughter particle.
double getExtraInfo(const std::string &name) const
Return given value if set.
REG_MODULE(B2BIIConvertBeamParams)
Register the module.
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
Abstract base class for different kinds of events.