Belle II Software development
EffPlotsModule Class Reference

This module takes the MCParticles, the RecoTracks and Tracks/V0 in input and produce a root file containing various histograms showing the efficiencies (as a function of different variables) of the V0 finding module. More...

#include <EffPlotsModule.h>

Inheritance diagram for EffPlotsModule:
Module PerformanceEvaluationBaseClass PathElement

Public Types

enum  EModulePropFlags {
  c_Input = 1 ,
  c_Output = 2 ,
  c_ParallelProcessingCertified = 4 ,
  c_HistogramManager = 8 ,
  c_InternalSerializer = 16 ,
  c_TerminateInAllProcesses = 32 ,
  c_DontCollectStatistics = 64
}
 Each module can be tagged with property flags, which indicate certain features of the module. More...
 
typedef ModuleCondition::EAfterConditionPath EAfterConditionPath
 Forward the EAfterConditionPath definition from the ModuleCondition.
 

Public Member Functions

 EffPlotsModule ()
 Constructor.
 
 ~EffPlotsModule () override
 Destructor.
 
void initialize () override
 Initializer.
 
void beginRun () override
 Called when entering a new run.
 
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.
 
virtual std::vector< std::string > getFileNames (bool outputFiles)
 Return a list of output filenames for this modules.
 
const std::string & getName () const
 Returns the name of the module.
 
const std::string & getType () const
 Returns the type of the module (i.e.
 
const std::string & getPackage () const
 Returns the package this module is in.
 
const std::string & getDescription () const
 Returns the description of the module.
 
void setName (const std::string &name)
 Set the name of the module.
 
void setPropertyFlags (unsigned int propertyFlags)
 Sets the flags for the module properties.
 
LogConfiggetLogConfig ()
 Returns the log system configuration.
 
void setLogConfig (const LogConfig &logConfig)
 Set the log system configuration.
 
void setLogLevel (int logLevel)
 Configure the log level.
 
void setDebugLevel (int debugLevel)
 Configure the debug messaging level.
 
void setAbortLevel (int abortLevel)
 Configure the abort log level.
 
void setLogInfo (int logLevel, unsigned int logInfo)
 Configure the printed log information for the given level.
 
void if_value (const std::string &expression, const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 Add a condition to the module.
 
void if_false (const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 A simplified version to add a condition to the module.
 
void if_true (const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 A simplified version to set the condition of the module.
 
bool hasCondition () const
 Returns true if at least one condition was set for the module.
 
const ModuleConditiongetCondition () const
 Return a pointer to the first condition (or nullptr, if none was set)
 
const std::vector< ModuleCondition > & getAllConditions () const
 Return all set conditions for this module.
 
bool evalCondition () const
 If at least one condition was set, it is evaluated and true returned if at least one condition returns true.
 
std::shared_ptr< PathgetConditionPath () const
 Returns the path of the last true condition (if there is at least one, else reaturn a null pointer).
 
Module::EAfterConditionPath getAfterConditionPath () const
 What to do after the conditional path is finished.
 
std::vector< std::shared_ptr< Path > > getAllConditionPaths () const
 Return all condition paths currently set (no matter if the condition is true or not).
 
bool hasProperties (unsigned int propertyFlags) const
 Returns true if all specified property flags are available in this module.
 
bool hasUnsetForcedParams () const
 Returns true and prints error message if the module has unset parameters which the user has to set in the steering file.
 
const ModuleParamListgetParamList () const
 Return module param list.
 
template<typename T>
ModuleParam< T > & getParam (const std::string &name) const
 Returns a reference to a parameter.
 
bool hasReturnValue () const
 Return true if this module has a valid return value set.
 
int getReturnValue () const
 Return the return value set by this module.
 
std::shared_ptr< PathElementclone () const override
 Create an independent copy of this module.
 
std::shared_ptr< boost::python::list > getParamInfoListPython () const
 Returns a python list of all parameters.
 

Static Public Member Functions

static void exposePythonAPI ()
 Exposes methods of the Module class to Python.
 

Protected Member Functions

virtual void def_initialize ()
 Wrappers to make the methods without "def_" prefix callable from Python.
 
virtual void def_beginRun ()
 Wrapper method for the virtual function beginRun() that has the implementation to be used in a call from Python.
 
virtual void def_event ()
 Wrapper method for the virtual function event() that has the implementation to be used in a call from Python.
 
virtual void def_endRun ()
 This method can receive that the current run ends as a call from the Python side.
 
virtual void def_terminate ()
 Wrapper method for the virtual function terminate() that has the implementation to be used in a call from Python.
 
void setDescription (const std::string &description)
 Sets the description of the module.
 
void setType (const std::string &type)
 Set the module type.
 
template<typename T>
void addParam (const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
 Adds a new parameter to the module.
 
template<typename T>
void addParam (const std::string &name, T &paramVariable, const std::string &description)
 Adds a new enforced parameter to the module.
 
void setReturnValue (int value)
 Sets the return value for this module as integer.
 
void setReturnValue (bool value)
 Sets the return value for this module as bool.
 
void setParamList (const ModuleParamList &params)
 Replace existing parameter list.
 

Private Member Functions

std::list< ModulePtrgetModules () const override
 no submodules, return empty list
 
std::string getPathString () const override
 return the module name.
 
void setParamPython (const std::string &name, const boost::python::object &pyObj)
 Implements a method for setting boost::python objects.
 
void setParamPythonDict (const boost::python::dict &dictionary)
 Implements a method for reading the parameter values from a boost::python dictionary.
 
TH1F * createHistogram1D (const char *name, const char *title, Int_t nbins, Double_t min, Double_t max, const char *xtitle, TList *histoList=nullptr)
 Create a 1D histogram and add it to the TList of 1D-histograms.
 
TH1F * createHistogram1D (const char *name, const char *title, Int_t nbins, Double_t *bins, const char *xtitle, TList *histoList=nullptr)
 Create a 1D histogram and add it to the TList of 1D-histograms.
 
TH2F * createHistogram2D (const char *name, const char *title, Int_t nbinsX, Double_t minX, Double_t maxX, const char *titleX, Int_t nbinsY, Double_t minY, Double_t maxY, const char *titleY, TList *histoList=nullptr)
 Create a 2D histogram and add it to the TList of 2D-histograms.
 
TH2F * createHistogram2D (const char *name, const char *title, Int_t nbinsX, Double_t *binsX, const char *titleX, Int_t nbinsY, Double_t *binsY, const char *titleY, TList *histoList=nullptr)
 Create a 2D histogram and add it to the TList of 2D-histograms.
 
TH3F * createHistogram3D (const char *name, const char *title, Int_t nbinsX, Double_t minX, Double_t maxX, const char *titleX, Int_t nbinsY, Double_t minY, Double_t maxY, const char *titleY, Int_t nbinsZ, Double_t minZ, Double_t maxZ, const char *titleZ, TList *histoList=nullptr)
 Create a 3D histogram and add it to the TList of 3D-histograms.
 
TH3F * createHistogram3D (const char *name, const char *title, Int_t nbinsX, Double_t *binsX, const char *titleX, Int_t nbinsY, Double_t *binsY, const char *titleY, Int_t nbinsZ, Double_t *binsZ, const char *titleZ, TList *histoList=nullptr)
 Create a 3D histogram and add it to the TList of 3D-histograms.
 
TH1 * duplicateHistogram (const char *newname, const char *newtitle, TH1 *h, TList *histoList=nullptr)
 Make a copy of a 1D histogram and add it to the TList of 1D-histograms.
 
TH1F * createHistogramsRatio (const char *name, const char *title, TH1 *hNum, TH1 *hDen, bool isEffPlot, int axisRef)
 Make a new 1D histogram from the ratio of two others and add it to the TList of 1D-histograms.
 
void addEfficiencyPlots (TList *graphList=nullptr, TH3F *h3_xPerMCParticle=nullptr, TH3F *h3_MCParticle=nullptr)
 Create pt-, theta- and phi-efficiency 1D histograms and add them to the TList of 1D-histograms.
 
void addInefficiencyPlots (TList *graphList=nullptr, TH3F *h3_xPerMCParticle=nullptr, TH3F *h3_MCParticle=nullptr)
 Create pt-, theta- and phi-inefficiency 1D histograms and add them to the TList of 1D-histograms.
 
void addPurityPlots (TList *graphList=nullptr, TH3F *h3_xPerMCParticle=nullptr, TH3F *h3_MCParticle=nullptr)
 Create pt-, theta- and phi-purity 1D histograms and add them to the TList of 1D-histograms.
 
TH1F * effPlot1D (TH1F *h1_den, TH1F *h1_num, const char *name, const char *title, bool geo_accettance, TList *histoList=nullptr)
 Create a 1D efficiency histogram and add it to the TList of 1D-histograms.
 
TH1F * effPlot1D (TH1F *h1_MC, TH1F *h1_RecoTrack, TH1F *h1_Track, const char *name, const char *title, TList *histoList=nullptr)
 Create a 1D efficiency histogram and add it to the TList of 1D-histograms.
 
TH2F * effPlot2D (TH2F *h2_den, TH2F *h2_num, const char *name, const char *title, bool geo_accettance, TList *histoList=nullptr)
 Create a 2D efficiency histogram and add it to the TList of 2D-histograms.
 
TH2F * effPlot2D (TH2F *h2_MC, TH2F *h2_RecoTrack, TH2F *h2_Track, const char *name, const char *title, TList *histoList)
 Create a 2D efficiency histogram and add it to the TList of 2D-histograms.
 
TH1F * geoAcc1D (TH1F *h1_den, TH1F *h1_num, const char *name, const char *title, TList *histoList=nullptr)
 Create a 1D efficiency histogram for geometric acceptance and add it to the TList of 1D-histograms.
 
TH2F * geoAcc2D (TH2F *h2_den, TH2F *h2_num, const char *name, const char *title, TList *histoList=nullptr)
 Create a 2D efficiency histogram for geometric acceptance and add it to the TList of 2D-histograms.
 
TH1F * V0FinderEff (TH1F *h1_dau0, TH1F *h1_dau1, TH1F *h1_Mother, const char *name, const char *title, TList *histoList=nullptr)
 Create a 1D efficiency histogram for V0 finding and add it to the TList of 1D-histograms.
 

Static Private Member Functions

static bool isK_Short (const MCParticle &the_mcParticle)
 determine if the MCParticle is a K-short
 
static bool isLambda0 (const MCParticle &the_mcParticle)
 determine if the MCParticle is a Lambda0
 
static int nMatchedDaughters (const MCParticle &the_mcParticle)
 get the number of matched daughters of the MCParticle
 

Private Attributes

std::string m_MCParticlesName
 user-defined parameters
 
std::string m_V0sName
 name of the V0s dataobjects collection
 
std::string m_RecoTracksName
 name of the RecoTracks dataobjects collection
 
std::string m_MCRecoTracksName
 name of the MCRecoTracks dataobjects collection
 
std::string m_TFRColName
 name of the TFR dataobjects collection
 
std::string m_TrackColName
 name of the Tracks dataobjects collection
 
std::string m_V0sType
 type (as a string) of the selected V0
 
StoreArray< MCParticlem_MCParticles
 MCParticle StoreArray.
 
bool m_allHistograms
 true to create all histograms
 
bool m_geometricalAccettance
 true to create output for the geometrical acceptance
 
MCParticlem_MCDaughter0 = nullptr
 daughter 0 of a decayed MCParticle
 
MCParticlem_MCDaughter1 = nullptr
 daughter 1 of a decayed MCParticle
 
TList * m_histoList_MCParticles = nullptr
 list of histograms for MCParticles
 
TList * m_histoList_RecoTracks = nullptr
 list of histograms for RecoTracks
 
TList * m_histoList_Tracks = nullptr
 list of histograms for Tracks
 
TList * m_histoList_Efficiencies = nullptr
 list of histograms of efficiencies
 
TList * m_histoList_GA = nullptr
 list of histograms of geometric acceptance
 
TList * m_histoList_check = nullptr
 list of histograms of MCParticle mother and daughters
 
TH1F * m_h1_MC_dau0_d0 = nullptr
 list of histograms filled per MCParticle found in the event
 
TH1F * m_h1_MC_dau0_z0 = nullptr
 histogram of MCParticle daughter 0's z0
 
TH1F * m_h1_MC_dau0_RMother = nullptr
 histogram of MCParticle daughter 0's RMother
 
TH3F * m_h3_MC_dau0 = nullptr
 histogram of MCParticle daughter 0's pt vs theta vs phi
 
TH1F * m_h1_MC_dau0_pt = nullptr
 histogram of MCParticle daughter 0's pt
 
TH1F * m_h1_MC_dau0_pz = nullptr
 histogram of MCParticle daughter 0's pz
 
TH1F * m_h1_MC_dau0_p = nullptr
 histogram of MCParticle daughter 0's p
 
TH1F * m_h1_MC_dau0_phi = nullptr
 histogram of MCParticle daughter 0's phi
 
TH1F * m_h1_MC_dau0_phi_BW = nullptr
 histogram of MCParticle daughter 0's phi (backward region)
 
TH1F * m_h1_MC_dau0_phi_barrel = nullptr
 histogram of MCParticle daughter 0's phi (barrel region)
 
TH1F * m_h1_MC_dau0_phi_FW = nullptr
 histogram of MCParticle daughter 0's phi (forward region)
 
TH1F * m_h1_MC_dau0_theta = nullptr
 histogram of MCParticle daughter 0's theta
 
TH1F * m_h1_MC_dau0_costheta = nullptr
 histogram of MCParticle daughter 0's cos(theta)
 
TH1F * m_h1_MC_dau0_Mother_cosAngle = nullptr
 histogram of MCParticle daughter 0's and mother's cos(opening-angle)
 
TH1F * m_h1_MC_dau0_phiMother_total = nullptr
 histogram of MCParticle daughter 0's mother's phi
 
TH1F * m_h1_MC_dau0_phiMother_BW = nullptr
 histogram of MCParticle daughter 0's mother's phi (backward region)
 
TH1F * m_h1_MC_dau0_phiMother_barrel = nullptr
 histogram of MCParticle daughter 0's mother's phi (barrel region)
 
TH1F * m_h1_MC_dau0_phiMother_FW = nullptr
 histogram of MCParticle daughter 0's mother's phi (forward region)
 
TH1F * m_h1_MC_dau0_thetaMother = nullptr
 histogram of MCParticle daughter 0's mother's theta
 
TH1F * m_h1_MC_dau0_ptMother = nullptr
 histogram of MCParticle daughter 0's mother's pt
 
TH2F * m_h2_MC_dau0_2D = nullptr
 histogram of MCParticle daughter 0's pt vs theta
 
TH2F * m_h2_MC_dau0_2D_BP = nullptr
 histogram of MCParticle daughter 0's pt vs theta (beam pipe)
 
TH2F * m_h2_MC_dau0_2DMother = nullptr
 histogram of MCParticle daughter 0's mother's pt vs theta
 
TH2F * m_h2_MC_dau0_pVScostheta = nullptr
 histogram of MCParticle daughter 0's p vs cos(theta)
 
TH1F * m_h1_MC_dau0_PDG = nullptr
 histogram of MCParticle daughter 0's PDG code
 
TH1F * m_h1_MC_dau1_d0 = nullptr
 histogram of MCParticle daughter 1's d0
 
TH1F * m_h1_MC_dau1_z0 = nullptr
 histogram of MCParticle daughter 1's z0
 
TH1F * m_h1_MC_dau1_RMother = nullptr
 histogram of MCParticle daughter 1's RMother
 
TH3F * m_h3_MC_dau1 = nullptr
 histogram of MCParticle daughter 1's pt vs theta vs phi
 
TH1F * m_h1_MC_dau1_pt = nullptr
 histogram of MCParticle daughter 1's pt
 
TH1F * m_h1_MC_dau1_pz = nullptr
 histogram of MCParticle daughter 1's pz
 
TH1F * m_h1_MC_dau1_p = nullptr
 histogram of MCParticle daughter 1's p
 
TH1F * m_h1_MC_dau1_phi = nullptr
 histogram of MCParticle daughter 1's phi
 
TH1F * m_h1_MC_dau1_phi_BW = nullptr
 histogram of MCParticle daughter 1's phi (backward region)
 
TH1F * m_h1_MC_dau1_phi_barrel = nullptr
 histogram of MCParticle daughter 1's phi (barrel region)
 
TH1F * m_h1_MC_dau1_phi_FW = nullptr
 histogram of MCParticle daughter 1's phi (forward region)
 
TH1F * m_h1_MC_dau1_theta = nullptr
 histogram of MCParticle daughter 1's theta
 
TH1F * m_h1_MC_dau1_costheta = nullptr
 histogram of MCParticle daughter 1's cos(theta)
 
TH1F * m_h1_MC_dau1_Mother_cosAngle = nullptr
 histogram of MCParticle daughter 1's and mother's cos(opening-angle)
 
TH1F * m_h1_MC_dau1_phiMother_total = nullptr
 histogram of MCParticle daughter 1's mother's phi
 
TH1F * m_h1_MC_dau1_phiMother_BW = nullptr
 histogram of MCParticle daughter 1's mother's phi (backward region)
 
TH1F * m_h1_MC_dau1_phiMother_barrel = nullptr
 histogram of MCParticle daughter 1's mother's phi (barrel region)
 
TH1F * m_h1_MC_dau1_phiMother_FW = nullptr
 histogram of MCParticle daughter 1's mother's phi (forward region)
 
TH1F * m_h1_MC_dau1_thetaMother = nullptr
 histogram of MCParticle daughter 1's mother's theta
 
TH1F * m_h1_MC_dau1_ptMother = nullptr
 histogram of MCParticle daughter 1's mother's pt
 
TH2F * m_h2_MC_dau1_2D = nullptr
 histogram of MCParticle daughter 1's pt vs theta
 
TH2F * m_h2_MC_dau1_2D_BP = nullptr
 histogram of MCParticle daughter 1's pt vs theta (beam pipe)
 
TH2F * m_h2_MC_dau1_2DMother = nullptr
 histogram of MCParticle daughter 1's mother's pt vs theta
 
TH2F * m_h2_MC_dau1_pVScostheta = nullptr
 histogram of MCParticle daughter 1's p vs cos(theta)
 
TH1F * m_h1_MC_dau1_PDG = nullptr
 histogram of MCParticle daughter 1's PDG code
 
TH1F * m_h1_MC_Mother_RMother = nullptr
 histogram of MCParticle mother's RMother
 
TH3F * m_h3_MC_Mother = nullptr
 histogram of MCParticle mother's pt vs theta vs phi
 
TH1F * m_h1_MC_Mother_pt = nullptr
 histogram of MCParticle mother's pt
 
TH1F * m_h1_MC_Mother_pz = nullptr
 histogram of MCParticle mother's pz
 
TH1F * m_h1_MC_Mother_p = nullptr
 histogram of MCParticle mother's p
 
TH1F * m_h1_MC_Mother_phi = nullptr
 histogram of MCParticle mother's phi
 
TH1F * m_h1_MC_Mother_phi_BW = nullptr
 histogram of MCParticle mother's phi (backward region)
 
TH1F * m_h1_MC_Mother_phi_barrel = nullptr
 histogram of MCParticle mother's phi (barrel region)
 
TH1F * m_h1_MC_Mother_phi_FW = nullptr
 histogram of MCParticle mother's phi (forward region)
 
TH1F * m_h1_MC_Mother_theta = nullptr
 histogram of MCParticle mother's theta
 
TH1F * m_h1_MC_Mother_costheta = nullptr
 histogram of MCParticle mother's cos(theta)
 
TH2F * m_h2_MC_Mother_2D = nullptr
 histogram of MCParticle mother's pt vs theta
 
TH2F * m_h2_MC_Mother_2D_BP = nullptr
 histogram of MCParticle mother's pt vs theta (beam pipe)
 
TH2F * m_h2_MC_Mother_pVScostheta = nullptr
 histogram of MCParticle mother's p vs cos(theta)
 
TH1F * m_h1_MC_Mother_PDG = nullptr
 histogram of MCParticle mother's PDG code
 
TH1F * m_h1_track_dau0_d0 = nullptr
 list of histograms filled per Tracks/V0 found in the event
 
TH1F * m_h1_track_dau0_z0 = nullptr
 histogram of Track daughter 0's z0
 
TH1F * m_h1_track_dau0_RMother = nullptr
 histogram of Track daughter 0's RMother
 
TH3F * m_h3_track_dau0 = nullptr
 histogram of Track daughter 0's pt vs theta vs phi
 
TH1F * m_h1_track_dau0_pt = nullptr
 histogram of Track daughter 0's pt
 
TH1F * m_h1_track_dau0_pz = nullptr
 histogram of Track daughter 0's pz
 
TH1F * m_h1_track_dau0_p = nullptr
 histogram of Track daughter 0's p
 
TH1F * m_h1_track_dau0_phi = nullptr
 histogram of Track daughter 0's phi
 
TH1F * m_h1_track_dau0_phi_BW = nullptr
 histogram of Track daughter 0's phi (backward region)
 
TH1F * m_h1_track_dau0_phi_barrel = nullptr
 histogram of Track daughter 0's phi (barrel region)
 
TH1F * m_h1_track_dau0_phi_FW = nullptr
 histogram of Track daughter 0's phi (forward region)
 
TH1F * m_h1_track_dau0_theta = nullptr
 histogram of Track daughter 0's theta
 
TH1F * m_h1_track_dau0_costheta = nullptr
 histogram of Track daughter 0's cos(theta)
 
TH1F * m_h1_track_dau0_Mother_cosAngle = nullptr
 histogram of Track daughter 0's and mother's cos(opening-angle)
 
TH1F * m_h1_track_dau0_phiMother_total = nullptr
 histogram of Track daughter 0's mother's phi
 
TH1F * m_h1_track_dau0_phiMother_BW = nullptr
 histogram of Track daughter 0's mother's phi (backward region)
 
TH1F * m_h1_track_dau0_phiMother_barrel = nullptr
 histogram of Track daughter 0's mother's phi (barrel region)
 
TH1F * m_h1_track_dau0_phiMother_FW = nullptr
 histogram of Track daughter 0's mother's phi (forward region)
 
TH1F * m_h1_track_dau0_thetaMother = nullptr
 histogram of Track daughter 0's mother's theta
 
TH1F * m_h1_track_dau0_ptMother = nullptr
 histogram of Track daughter 0's mother's pt
 
TH2F * m_h2_track_dau0_2D = nullptr
 histogram of Track daughter 0's pt vs theta
 
TH2F * m_h2_track_dau0_2D_BP = nullptr
 histogram of Track daughter 0's pt vs theta (beam pipe)
 
TH2F * m_h2_track_dau0_2DMother = nullptr
 histogram of Track daughter 0's mother's pt vs theta
 
TH2F * m_h2_track_dau0_pVScostheta = nullptr
 histogram of Track daughter 0's p vs cos(theta)
 
TH1F * m_h1_track_dau1_d0 = nullptr
 histogram of Track daughter 1's d0
 
TH1F * m_h1_track_dau1_z0 = nullptr
 histogram of Track daughter 1's z0
 
TH1F * m_h1_track_dau1_RMother = nullptr
 histogram of Track daughter 1's RMother
 
TH3F * m_h3_track_dau1 = nullptr
 histogram of Track daughter 1's pt vs theta vs phi
 
TH1F * m_h1_track_dau1_pt = nullptr
 histogram of Track daughter 1's pt
 
TH1F * m_h1_track_dau1_pz = nullptr
 histogram of Track daughter 1's pz
 
TH1F * m_h1_track_dau1_p = nullptr
 histogram of Track daughter 1's p
 
TH1F * m_h1_track_dau1_phi = nullptr
 histogram of Track daughter 1's phi
 
TH1F * m_h1_track_dau1_phi_BW = nullptr
 histogram of Track daughter 1's phi (backward region)
 
TH1F * m_h1_track_dau1_phi_barrel = nullptr
 histogram of Track daughter 1's phi (barrel region)
 
TH1F * m_h1_track_dau1_phi_FW = nullptr
 histogram of Track daughter 1's phi (forward region)
 
TH1F * m_h1_track_dau1_theta = nullptr
 histogram of Track daughter 1's theta
 
TH1F * m_h1_track_dau1_costheta = nullptr
 histogram of Track daughter 1's cos(theta)
 
TH1F * m_h1_track_dau1_Mother_cosAngle = nullptr
 histogram of Track daughter 1's and mother's cos(opening-angle)
 
TH1F * m_h1_track_dau1_phiMother_total = nullptr
 histogram of Track daughter 1's mother's phi
 
TH1F * m_h1_track_dau1_phiMother_BW = nullptr
 histogram of Track daughter 1's mother's phi (backward region)
 
TH1F * m_h1_track_dau1_phiMother_barrel = nullptr
 histogram of Track daughter 1's mother's phi (barrel region)
 
TH1F * m_h1_track_dau1_phiMother_FW = nullptr
 histogram of Track daughter 1's mother's phi (forward region)
 
TH1F * m_h1_track_dau1_thetaMother = nullptr
 histogram of Track daughter 1's mother's theta
 
TH1F * m_h1_track_dau1_ptMother = nullptr
 histogram of Track daughter 1's mother's pt
 
TH2F * m_h2_track_dau1_2D = nullptr
 histogram of Track daughter 1's pt vs theta
 
TH2F * m_h2_track_dau1_2D_BP = nullptr
 histogram of Track daughter 1's pt vs theta (beam pipe)
 
TH2F * m_h2_track_dau1_2DMother = nullptr
 histogram of Track daughter 1's mother's pt vs theta
 
TH2F * m_h2_track_dau1_pVScostheta = nullptr
 histogram of Track daughter 1's p vs cos(theta)
 
TH1F * m_h1_V0_RMother = nullptr
 histogram of V0 mother's RMother
 
TH3F * m_h3_V0 = nullptr
 histogram of V0 mother's pt vs theta vs phi
 
TH1F * m_h1_V0_pt = nullptr
 histogram of V0 mother's pt
 
TH1F * m_h1_V0_pz = nullptr
 histogram of V0 mother's pz
 
TH1F * m_h1_V0_p = nullptr
 histogram of V0 mother's p
 
TH1F * m_h1_V0_phi = nullptr
 histogram of V0 mother's phi
 
TH1F * m_h1_V0_phi_BW = nullptr
 histogram of V0 mother's phi (backward region)
 
TH1F * m_h1_V0_phi_barrel = nullptr
 histogram of V0 mother's phi (barrel region)
 
TH1F * m_h1_V0_phi_FW = nullptr
 histogram of V0 mother's phi (forward region)
 
TH1F * m_h1_V0_theta = nullptr
 histogram of V0 mother's theta
 
TH1F * m_h1_V0_costheta = nullptr
 histogram of V0 mother's cos(theta)
 
TH2F * m_h2_V0_Mother_2D = nullptr
 histogram of V0 mother's pt vs theta
 
TH2F * m_h2_V0_Mother_2D_BP = nullptr
 histogram of V0 mother's pt vs theta (beam pipe)
 
TH2F * m_h2_V0_Mother_pVScostheta = nullptr
 histogram of V0 mother's p vs cos(theta)
 
TH1F * m_h1_RecoTrack_dau0_d0 = nullptr
 list of histograms filled per RecoTracks found in the event
 
TH1F * m_h1_RecoTrack_dau0_z0 = nullptr
 histogram of RecoTrack daughter 0's z0
 
TH1F * m_h1_RecoTrack_dau0_RMother = nullptr
 histogram of RecoTrack daughter 0's RMother
 
TH3F * m_h3_RecoTrack_dau0 = nullptr
 histogram of RecoTrack daughter 0's pt vs theta vs phi
 
TH1F * m_h1_RecoTrack_dau0_pt = nullptr
 histogram of RecoTrack daughter 0's pt
 
TH1F * m_h1_RecoTrack_dau0_pz = nullptr
 histogram of RecoTrack daughter 0's pz
 
TH1F * m_h1_RecoTrack_dau0_p = nullptr
 histogram of RecoTrack daughter 0's p
 
TH1F * m_h1_RecoTrack_dau0_phi = nullptr
 histogram of RecoTrack daughter 0's phi
 
TH1F * m_h1_RecoTrack_dau0_phi_BW = nullptr
 histogram of RecoTrack daughter 0's phi (backward region)
 
TH1F * m_h1_RecoTrack_dau0_phi_barrel = nullptr
 histogram of RecoTrack daughter 0's phi (barrel region)
 
TH1F * m_h1_RecoTrack_dau0_phi_FW = nullptr
 histogram of RecoTrack daughter 0's phi (forward region)
 
TH1F * m_h1_RecoTrack_dau0_theta = nullptr
 histogram of RecoTrack daughter 0's theta
 
TH1F * m_h1_RecoTrack_dau0_costheta = nullptr
 histogram of RecoTrack daughter 0's cos(theta)
 
TH1F * m_h1_RecoTrack_dau0_Mother_cosAngle = nullptr
 histogram of RecoTrack daughter 0's and mother's cos(opening-angle)
 
TH1F * m_h1_RecoTrack_dau0_phiMother_total = nullptr
 histogram of RecoTrack daughter 0's mother's phi
 
TH1F * m_h1_RecoTrack_dau0_phiMother_BW = nullptr
 histogram of RecoTrack daughter 0's mother's phi (backward region)
 
TH1F * m_h1_RecoTrack_dau0_phiMother_barrel = nullptr
 histogram of RecoTrack daughter 0's mother's phi (barrel region)
 
TH1F * m_h1_RecoTrack_dau0_phiMother_FW = nullptr
 histogram of RecoTrack daughter 0's mother's phi (forward region)
 
TH1F * m_h1_RecoTrack_dau0_thetaMother = nullptr
 histogram of RecoTrack daughter 0's mother's theta
 
TH1F * m_h1_RecoTrack_dau0_ptMother = nullptr
 histogram of RecoTrack daughter 0's mother's pt
 
TH2F * m_h2_RecoTrack_dau0_2D = nullptr
 histogram of RecoTrack daughter 0's pt vs theta
 
TH2F * m_h2_RecoTrack_dau0_2D_BP = nullptr
 histogram of RecoTrack daughter 0's pt vs theta (beam pipe)
 
TH2F * m_h2_RecoTrack_dau0_2DMother = nullptr
 histogram of RecoTrack daughter 0's mother's pt vs theta
 
TH2F * m_h2_RecoTrack_dau0_pVScostheta = nullptr
 histogram of RecoTrack daughter 0's p vs cos(theta)
 
TH1F * m_h1_RecoTrack_dau1_d0 = nullptr
 histogram of RecoTrack daughter 1's d0
 
TH1F * m_h1_RecoTrack_dau1_z0 = nullptr
 histogram of RecoTrack daughter 1's z0
 
TH1F * m_h1_RecoTrack_dau1_RMother = nullptr
 histogram of RecoTrack daughter 1's RMother
 
TH3F * m_h3_RecoTrack_dau1 = nullptr
 histogram of RecoTrack daughter 1's pt vs theta vs phi
 
TH1F * m_h1_RecoTrack_dau1_pt = nullptr
 histogram of RecoTrack daughter 1's pt
 
TH1F * m_h1_RecoTrack_dau1_pz = nullptr
 histogram of RecoTrack daughter 1's pz
 
TH1F * m_h1_RecoTrack_dau1_p = nullptr
 histogram of RecoTrack daughter 1's p
 
TH1F * m_h1_RecoTrack_dau1_phi = nullptr
 histogram of RecoTrack daughter 1's phi
 
TH1F * m_h1_RecoTrack_dau1_phi_BW = nullptr
 histogram of RecoTrack daughter 1's phi (backward region)
 
TH1F * m_h1_RecoTrack_dau1_phi_barrel = nullptr
 histogram of RecoTrack daughter 1's phi (barrel region)
 
TH1F * m_h1_RecoTrack_dau1_phi_FW = nullptr
 histogram of RecoTrack daughter 1's phi (forward region)
 
TH1F * m_h1_RecoTrack_dau1_theta = nullptr
 histogram of RecoTrack daughter 1's theta
 
TH1F * m_h1_RecoTrack_dau1_costheta = nullptr
 histogram of RecoTrack daughter 1's cos(theta)
 
TH1F * m_h1_RecoTrack_dau1_Mother_cosAngle = nullptr
 histogram of RecoTrack daughter 1's and mother's cos(opening-angle)
 
TH1F * m_h1_RecoTrack_dau1_phiMother_total = nullptr
 histogram of RecoTrack daughter 1's mother's phi
 
TH1F * m_h1_RecoTrack_dau1_phiMother_BW = nullptr
 histogram of RecoTrack daughter 1's mother's phi (backward region)
 
TH1F * m_h1_RecoTrack_dau1_phiMother_barrel = nullptr
 histogram of RecoTrack daughter 1's mother's phi (barrel region)
 
TH1F * m_h1_RecoTrack_dau1_phiMother_FW = nullptr
 histogram of RecoTrack daughter 1's mother's phi (forward region)
 
TH1F * m_h1_RecoTrack_dau1_thetaMother = nullptr
 histogram of RecoTrack daughter 1's mother's theta
 
TH1F * m_h1_RecoTrack_dau1_ptMother = nullptr
 histogram of RecoTrack daughter 1's mother's pt
 
TH2F * m_h2_RecoTrack_dau1_2D = nullptr
 histogram of RecoTrack daughter 1's pt vs theta
 
TH2F * m_h2_RecoTrack_dau1_2D_BP = nullptr
 histogram of RecoTrack daughter 1's pt vs theta (beam pipe)
 
TH2F * m_h2_RecoTrack_dau1_2DMother = nullptr
 histogram of RecoTrack daughter 1's mother's pt vs theta
 
TH2F * m_h2_RecoTrack_dau1_pVScostheta = nullptr
 histogram of RecoTrack daughter 1's p vs cos(theta)
 
TH1F * m_h1_RecoTrack_Mother_RMother = nullptr
 histogram of RecoTrack mother's RMother
 
TH3F * m_h3_RecoTrack_Mother = nullptr
 histogram of RecoTrack mother's pt vs theta vs phi
 
TH1F * m_h1_RecoTrack_Mother_pt = nullptr
 histogram of RecoTrack mother's pt
 
TH1F * m_h1_RecoTrack_Mother_pz = nullptr
 histogram of RecoTrack mother's pz
 
TH1F * m_h1_RecoTrack_Mother_p = nullptr
 histogram of RecoTrack mother's p
 
TH1F * m_h1_RecoTrack_Mother_phi = nullptr
 histogram of RecoTrack mother's phi
 
TH1F * m_h1_RecoTrack_Mother_phi_BW = nullptr
 histogram of RecoTrack mother's phi (backward region)
 
TH1F * m_h1_RecoTrack_Mother_phi_barrel = nullptr
 histogram of RecoTrack mother's phi (barrel region)
 
TH1F * m_h1_RecoTrack_Mother_phi_FW = nullptr
 histogram of RecoTrack mother's phi (forward region)
 
TH1F * m_h1_RecoTrack_Mother_theta = nullptr
 histogram of RecoTrack mother's theta
 
TH1F * m_h1_RecoTrack_Mother_costheta = nullptr
 histogram of RecoTrack mother's cos(theta)
 
TH2F * m_h2_RecoTrack_Mother_2D = nullptr
 histogram of RecoTrack mother's pt vs theta
 
TH2F * m_h2_RecoTrack_Mother_2D_BP = nullptr
 histogram of RecoTrack mother's pt vs theta (beam pipe)
 
TH2F * m_h2_RecoTrack_Mother_pVScostheta = nullptr
 histogram of RecoTrack mother's p vs cos(theta)
 
std::string m_name
 The name of the module, saved as a string (user-modifiable)
 
std::string m_type
 The type of the module, saved as a string.
 
std::string m_package
 Package this module is found in (may be empty).
 
std::string m_description
 The description of the module.
 
unsigned int m_propertyFlags
 The properties of the module as bitwise or (with |) of EModulePropFlags.
 
LogConfig m_logConfig
 The log system configuration of the module.
 
ModuleParamList m_moduleParamList
 List storing and managing all parameter of the module.
 
bool m_hasReturnValue
 True, if the return value is set.
 
int m_returnValue
 The return value.
 
std::vector< ModuleConditionm_conditions
 Module condition, only non-null if set.
 
TList * m_histoList = nullptr
 List of performance-evaluation histograms.
 
TList * m_histoList_multiplicity = nullptr
 List of multiplicity histograms.
 
TList * m_histoList_evtCharacterization = nullptr
 List of event-characterization histograms.
 
TList * m_histoList_trkQuality = nullptr
 List of track-quality histograms.
 
TList * m_histoList_firstHit = nullptr
 List of first-hit-position histograms.
 
TList * m_histoList_pr = nullptr
 List of pattern-recognition histograms.
 
TList * m_histoList_fit = nullptr
 List of track-fit histograms.
 
TList * m_histoList_efficiency = nullptr
 List of efficiency histograms.
 
TList * m_histoList_purity = nullptr
 List of purity histograms.
 
TList * m_histoList_others = nullptr
 List of other performance-evaluation histograms.
 
std::string m_rootFileName
 root file name
 
TFile * m_rootFilePtr = nullptr
 pointer at root file used for storing histograms
 

Detailed Description

This module takes the MCParticles, the RecoTracks and Tracks/V0 in input and produce a root file containing various histograms showing the efficiencies (as a function of different variables) of the V0 finding module.

Efficiencies normalized to MCParticles and RecoTracks are both produced. It requires V0ValidationVertexs.

Definition at line 34 of file EffPlotsModule.h.

Member Typedef Documentation

◆ EAfterConditionPath

Forward the EAfterConditionPath definition from the ModuleCondition.

Definition at line 88 of file Module.h.

Member Enumeration Documentation

◆ EModulePropFlags

enum EModulePropFlags
inherited

Each module can be tagged with property flags, which indicate certain features of the module.

Enumerator
c_Input 

This module is an input module (reads data).

c_Output 

This module is an output module (writes data).

c_ParallelProcessingCertified 

This module can be run in parallel processing mode safely (All I/O must be done through the data store, in particular, the module must not write any files.)

c_HistogramManager 

This module is used to manage histograms accumulated by other modules.

c_InternalSerializer 

This module is an internal serializer/deserializer for parallel processing.

c_TerminateInAllProcesses 

When using parallel processing, call this module's terminate() function in all processes().

This will also ensure that there is exactly one process (single-core if no parallel modules found) or at least one input, one main and one output process.

c_DontCollectStatistics 

No statistics is collected for this module.

Definition at line 77 of file Module.h.

77 {
78 c_Input = 1,
79 c_Output = 2,
80 c_ParallelProcessingCertified = 4,
81 c_HistogramManager = 8,
82 c_InternalSerializer = 16,
83 c_TerminateInAllProcesses = 32,
84 c_DontCollectStatistics = 64,
85 };
@ c_Output
Output Process.
Definition ProcHelper.h:19
@ c_Input
Input Process.
Definition ProcHelper.h:17

Constructor & Destructor Documentation

◆ EffPlotsModule()

Constructor.

Definition at line 33 of file EffPlotsModule.cc.

33 :
34 Module()
35{
36
37 setDescription("This module makes some plots related to V0 and saves them into a root file. For the efficiency plots: _noGeoAcc -> normalized to MCParticles; _withGeoAcc -> normalized to RecoTracks.");
38
39 addParam("outputFileName", m_rootFileName, "Name of output root file.",
40 std::string("EffPlots_output.root"));
41 addParam("V0sName", m_V0sName, "Name of V0 collection.", std::string("V0ValidationVertexs"));
42 addParam("MCParticlesName", m_MCParticlesName, "Name of MC Particle collection.", std::string(""));
43 addParam("TrackColName", m_TrackColName,
44 "Belle2::Track collection name (input). Note that the V0s use "
45 "pointers indices into these arrays, so all hell may break loose "
46 "if you change this.", std::string(""));
47 addParam("RecoTracksName", m_RecoTracksName, "Name of RecoTrack collection.", std::string("RecoTracks"));
48 addParam("MCRecoTracksName", m_MCRecoTracksName, "Name of MCRecoTrack collection.", std::string("MCRecoTracks"));
49
50 addParam("V0sType", m_V0sType, "Type of V0 to perform plots. Default is Lambda0, alternatively Ks", std::string("Lambda0"));
51 addParam("AllHistograms", m_allHistograms, "Create output for all histograms, not only efficiencies.", bool(false));
52 addParam("GeometricalAccettance", m_geometricalAccettance, "Create output for geometrical accettance.", bool(false));
53}
bool m_geometricalAccettance
true to create output for the geometrical acceptance
bool m_allHistograms
true to create all histograms
std::string m_TrackColName
name of the Tracks dataobjects collection
std::string m_V0sType
type (as a string) of the selected V0
std::string m_V0sName
name of the V0s dataobjects collection
std::string m_RecoTracksName
name of the RecoTracks dataobjects collection
std::string m_MCParticlesName
user-defined parameters
std::string m_MCRecoTracksName
name of the MCRecoTracks dataobjects collection
void setDescription(const std::string &description)
Sets the description of the module.
Definition Module.cc:214
Module()
Constructor.
Definition Module.cc:30
void addParam(const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
Definition Module.h:559

◆ ~EffPlotsModule()

~EffPlotsModule ( )
override

Destructor.

Definition at line 55 of file EffPlotsModule.cc.

56{
57
58}

Member Function Documentation

◆ addEfficiencyPlots()

void addEfficiencyPlots ( TList * graphList = nullptr,
TH3F * h3_xPerMCParticle = nullptr,
TH3F * h3_MCParticle = nullptr )
inherited

Create pt-, theta- and phi-efficiency 1D histograms and add them to the TList of 1D-histograms.

Definition at line 293 of file PerformanceEvaluationBaseClass.cc.

294{
295 if ((h3_xPerMCParticle == nullptr) || (h3_MCParticle == nullptr))
296 return;
297
298 //normalized to MCParticles
299 TH1F* h_eff_pt = createHistogramsRatio("heffpt", "efficiency VS pt, normalized to MCParticles", h3_xPerMCParticle,
300 h3_MCParticle, true, 0);
301 histoList->Add(h_eff_pt);
302
303 TH1F* h_eff_theta = createHistogramsRatio("hefftheta", "efficiency VS #theta, normalized to MCParticles", h3_xPerMCParticle,
304 h3_MCParticle, true, 1);
305 histoList->Add(h_eff_theta);
306
307 TH1F* h_eff_phi = createHistogramsRatio("heffphi", "efficiency VS #phi, normalized to MCParticles", h3_xPerMCParticle,
308 h3_MCParticle, true, 2);
309 histoList->Add(h_eff_phi);
310
311}
TH1F * createHistogramsRatio(const char *name, const char *title, TH1 *hNum, TH1 *hDen, bool isEffPlot, int axisRef)
Make a new 1D histogram from the ratio of two others and add it to the TList of 1D-histograms.

◆ addInefficiencyPlots()

void addInefficiencyPlots ( TList * graphList = nullptr,
TH3F * h3_xPerMCParticle = nullptr,
TH3F * h3_MCParticle = nullptr )
inherited

Create pt-, theta- and phi-inefficiency 1D histograms and add them to the TList of 1D-histograms.

Definition at line 272 of file PerformanceEvaluationBaseClass.cc.

273{
274
275 if ((h3_xPerMCParticle == nullptr) || (h3_MCParticle == nullptr))
276 return;
277
278 //normalized to MCParticles
279 TH1F* h_ineff_pt = createHistogramsRatio("hineffpt", "inefficiency VS pt, normalized to MCParticles", h3_xPerMCParticle,
280 h3_MCParticle, false, 0);
281 histoList->Add(h_ineff_pt);
282
283 TH1F* h_ineff_theta = createHistogramsRatio("hinefftheta", "inefficiency VS #theta, normalized to MCParticles",
284 h3_xPerMCParticle, h3_MCParticle, false, 1);
285 histoList->Add(h_ineff_theta);
286
287 TH1F* h_ineff_phi = createHistogramsRatio("hineffphi", "inefficiency VS #phi, normalized to MCParticles", h3_xPerMCParticle,
288 h3_MCParticle, false, 2);
289 histoList->Add(h_ineff_phi);
290
291}

◆ addPurityPlots()

void addPurityPlots ( TList * graphList = nullptr,
TH3F * h3_xPerMCParticle = nullptr,
TH3F * h3_MCParticle = nullptr )
inherited

Create pt-, theta- and phi-purity 1D histograms and add them to the TList of 1D-histograms.

Definition at line 315 of file PerformanceEvaluationBaseClass.cc.

316{
317 if ((h3_X == nullptr) || (h3_MCParticlesPerX == nullptr))
318 return;
319
320 //purity histograms
321 TH1F* h_pur_pt = createHistogramsRatio("hpurpt", "purity VS pt", h3_MCParticlesPerX, h3_X, true, 0);
322 histoList->Add(h_pur_pt);
323
324 TH1F* h_pur_theta = createHistogramsRatio("hpurtheta", "purity VS #theta", h3_MCParticlesPerX, h3_X, true, 1);
325 histoList->Add(h_pur_theta);
326
327 TH1F* h_pur_phi = createHistogramsRatio("hpurphi", "purity VS #phi", h3_MCParticlesPerX, h3_X, true, 2);
328 histoList->Add(h_pur_phi);
329
330}

◆ beginRun()

void beginRun ( void )
overridevirtual

Called when entering a new run.

Reimplemented from Module.

Definition at line 567 of file EffPlotsModule.cc.

568{
569
570}

◆ clone()

std::shared_ptr< PathElement > clone ( ) const
overridevirtualinherited

Create an independent copy of this module.

Note that parameters are shared, so changing them on a cloned module will also affect the original module.

Implements PathElement.

Definition at line 179 of file Module.cc.

180{
183 newModule->setName(getName());
184 newModule->m_package = m_package;
185 newModule->m_propertyFlags = m_propertyFlags;
186 newModule->m_logConfig = m_logConfig;
187 newModule->m_conditions = m_conditions;
188
189 return newModule;
190}
std::shared_ptr< Module > registerModule(const std::string &moduleName, std::string sharedLibPath="") noexcept(false)
Creates an instance of a module and registers it to the ModuleManager.
static ModuleManager & Instance()
Exception is thrown if the requested module could not be created by the ModuleManager.
void setParameters(const ModuleParamList &params)
Set values for parameters from other parameter list.
const ModuleParamList & getParamList() const
Return module param list.
Definition Module.h:362
const std::string & getName() const
Returns the name of the module.
Definition Module.h:186
const std::string & getType() const
Returns the type of the module (i.e.
Definition Module.cc:41
unsigned int m_propertyFlags
The properties of the module as bitwise or (with |) of EModulePropFlags.
Definition Module.h:511
ModuleParamList m_moduleParamList
List storing and managing all parameter of the module.
Definition Module.h:515
void setName(const std::string &name)
Set the name of the module.
Definition Module.h:213
LogConfig m_logConfig
The log system configuration of the module.
Definition Module.h:513
std::vector< ModuleCondition > m_conditions
Module condition, only non-null if set.
Definition Module.h:520
std::string m_package
Package this module is found in (may be empty).
Definition Module.h:509
std::shared_ptr< Module > ModulePtr
Defines a pointer to a module object as a boost shared pointer.
Definition Module.h:43

◆ createHistogram1D() [1/2]

TH1F * createHistogram1D ( const char * name,
const char * title,
Int_t nbins,
Double_t * bins,
const char * xtitle,
TList * histoList = nullptr )
inherited

Create a 1D histogram and add it to the TList of 1D-histograms.

Definition at line 41 of file PerformanceEvaluationBaseClass.cc.

44{
45
46 TH1F* h = new TH1F(name, title, nbins, bins);
47
48 h->GetXaxis()->SetTitle(xtitle);
49
50 if (histoList)
51 histoList->Add(h);
52
53 return h;
54}

◆ createHistogram1D() [2/2]

TH1F * createHistogram1D ( const char * name,
const char * title,
Int_t nbins,
Double_t min,
Double_t max,
const char * xtitle,
TList * histoList = nullptr )
inherited

Create a 1D histogram and add it to the TList of 1D-histograms.

Definition at line 26 of file PerformanceEvaluationBaseClass.cc.

29{
30
31 TH1F* h = new TH1F(name, title, nbins, min, max);
32
33 h->GetXaxis()->SetTitle(xtitle);
34
35 if (histoList)
36 histoList->Add(h);
37
38 return h;
39}

◆ createHistogram2D() [1/2]

TH2F * createHistogram2D ( const char * name,
const char * title,
Int_t nbinsX,
Double_t * binsX,
const char * titleX,
Int_t nbinsY,
Double_t * binsY,
const char * titleY,
TList * histoList = nullptr )
inherited

Create a 2D histogram and add it to the TList of 2D-histograms.

Definition at line 74 of file PerformanceEvaluationBaseClass.cc.

80{
81
82 TH2F* h = new TH2F(name, title, nbinsX, binsX, nbinsY, binsY);
83
84 h->GetXaxis()->SetTitle(titleX);
85 h->GetYaxis()->SetTitle(titleY);
86
87 if (histoList)
88 histoList->Add(h);
89
90 return h;
91}

◆ createHistogram2D() [2/2]

TH2F * createHistogram2D ( const char * name,
const char * title,
Int_t nbinsX,
Double_t minX,
Double_t maxX,
const char * titleX,
Int_t nbinsY,
Double_t minY,
Double_t maxY,
const char * titleY,
TList * histoList = nullptr )
inherited

Create a 2D histogram and add it to the TList of 2D-histograms.

Create 2D histogram

Definition at line 56 of file PerformanceEvaluationBaseClass.cc.

61{
62
63 TH2F* h = new TH2F(name, title, nbinsX, minX, maxX, nbinsY, minY, maxY);
64
65 h->GetXaxis()->SetTitle(titleX);
66 h->GetYaxis()->SetTitle(titleY);
67
68 if (histoList)
69 histoList->Add(h);
70
71 return h;
72}

◆ createHistogram3D() [1/2]

TH3F * createHistogram3D ( const char * name,
const char * title,
Int_t nbinsX,
Double_t * binsX,
const char * titleX,
Int_t nbinsY,
Double_t * binsY,
const char * titleY,
Int_t nbinsZ,
Double_t * binsZ,
const char * titleZ,
TList * histoList = nullptr )
inherited

Create a 3D histogram and add it to the TList of 3D-histograms.

Definition at line 115 of file PerformanceEvaluationBaseClass.cc.

123{
124
125 TH3F* h = new TH3F(name, title, nbinsX, binsX, nbinsY, binsY, nbinsZ, binsZ);
126
127 h->GetXaxis()->SetTitle(titleX);
128 h->GetYaxis()->SetTitle(titleY);
129 h->GetZaxis()->SetTitle(titleZ);
130
131 if (histoList)
132 histoList->Add(h);
133
134 return h;
135}

◆ createHistogram3D() [2/2]

TH3F * createHistogram3D ( const char * name,
const char * title,
Int_t nbinsX,
Double_t minX,
Double_t maxX,
const char * titleX,
Int_t nbinsY,
Double_t minY,
Double_t maxY,
const char * titleY,
Int_t nbinsZ,
Double_t minZ,
Double_t maxZ,
const char * titleZ,
TList * histoList = nullptr )
inherited

Create a 3D histogram and add it to the TList of 3D-histograms.

Definition at line 93 of file PerformanceEvaluationBaseClass.cc.

101{
102
103 TH3F* h = new TH3F(name, title, nbinsX, minX, maxX, nbinsY, minY, maxY, nbinsZ, minZ, maxZ);
104
105 h->GetXaxis()->SetTitle(titleX);
106 h->GetYaxis()->SetTitle(titleY);
107 h->GetZaxis()->SetTitle(titleZ);
108
109 if (histoList)
110 histoList->Add(h);
111
112 return h;
113}

◆ createHistogramsRatio()

TH1F * createHistogramsRatio ( const char * name,
const char * title,
TH1 * hNum,
TH1 * hDen,
bool isEffPlot,
int axisRef )
inherited

Make a new 1D histogram from the ratio of two others and add it to the TList of 1D-histograms.

Definition at line 170 of file PerformanceEvaluationBaseClass.cc.

173{
174
175 TH1F* h1den = dynamic_cast<TH1F*>(hDen);
176 TH1F* h1num = dynamic_cast<TH1F*>(hNum);
177 TH2F* h2den = dynamic_cast<TH2F*>(hDen);
178 TH2F* h2num = dynamic_cast<TH2F*>(hNum);
179 TH3F* h3den = dynamic_cast<TH3F*>(hDen);
180 TH3F* h3num = dynamic_cast<TH3F*>(hNum);
181
182 TH1* hden = 0;
183 TH1* hnum = 0;
184
185 if (h1den) {
186 hden = new TH1F(*h1den);
187 hnum = new TH1F(*h1num);
188 }
189 if (h2den) {
190 hden = new TH2F(*h2den);
191 hnum = new TH2F(*h2num);
192 }
193 if (h3den) {
194 hden = new TH3F(*h3den);
195 hnum = new TH3F(*h3num);
196 }
197
198 TAxis* the_axis;
199 TAxis* the_other1;
200 TAxis* the_other2;
201
202 if (axisRef == 0) {
203 the_axis = hden->GetXaxis();
204 the_other1 = hden->GetYaxis();
205 the_other2 = hden->GetZaxis();
206 } else if (axisRef == 1) {
207 the_axis = hden->GetYaxis();
208 the_other1 = hden->GetXaxis();
209 the_other2 = hden->GetZaxis();
210 } else if (axisRef == 2) {
211 the_axis = hden->GetZaxis();
212 the_other1 = hden->GetXaxis();
213 the_other2 = hden->GetYaxis();
214 } else
215 return nullptr;
216
217
218 TH1F* h;
219 if (the_axis->GetXbins()->GetSize())
220 h = new TH1F(name, title, the_axis->GetNbins(), (the_axis->GetXbins())->GetArray());
221 else
222 h = new TH1F(name, title, the_axis->GetNbins(), the_axis->GetXmin(), the_axis->GetXmax());
223 h->GetXaxis()->SetTitle(the_axis->GetTitle());
224
225 h->GetYaxis()->SetRangeUser(0.00001, 1);
226
227 Int_t bin = 0;
228
229 for (int the_bin = 1; the_bin < the_axis->GetNbins() + 1; the_bin++) {
230
231 double num = 0;
232 double den = 0;
233
234 for (int other1_bin = 1; other1_bin < the_other1->GetNbins() + 1; other1_bin++)
235 for (int other2_bin = 1; other2_bin < the_other2->GetNbins() + 1; other2_bin++) {
236
237 if (axisRef == 0) bin = hden->GetBin(the_bin, other1_bin, other2_bin);
238 else if (axisRef == 1) bin = hden->GetBin(other1_bin, the_bin, other2_bin);
239 else if (axisRef == 2) bin = hden->GetBin(other1_bin, other2_bin, the_bin);
240
241 if (hden->IsBinUnderflow(bin))
242 B2INFO(" bin = " << bin << "(" << the_bin << "," << other1_bin << "," << other2_bin << "), UNDERFLOW");
243 if (hden->IsBinOverflow(bin))
244 B2INFO(" bin = " << bin << "(" << the_bin << "," << other1_bin << "," << other2_bin << "), OVERFLOW");
245
246 num += hnum->GetBinContent(bin);
247 den += hden->GetBinContent(bin);
248 }
249
250 double eff = 0;
251 double err = 0;
252
253 if (den > 0) {
254 eff = (double)num / den;
255 err = sqrt(eff * (1 - eff)) / sqrt(den);
256 }
257
258 if (isEffPlot) {
259 h->SetBinContent(the_bin, eff);
260 h->SetBinError(the_bin, err);
261 } else {
262 h->SetBinContent(the_bin, 1 - eff);
263 h->SetBinError(the_bin, err);
264 }
265 }
266
267 return h;
268
269}
double sqrt(double a)
sqrt for double
Definition beamHelpers.h:28

◆ def_beginRun()

virtual void def_beginRun ( )
inlineprotectedvirtualinherited

Wrapper method for the virtual function beginRun() that has the implementation to be used in a call from Python.

Reimplemented in PyModule.

Definition at line 425 of file Module.h.

425{ beginRun(); }

◆ def_endRun()

virtual void def_endRun ( )
inlineprotectedvirtualinherited

This method can receive that the current run ends as a call from the Python side.

For regular C++-Modules that forwards the call to the regular endRun() method.

Reimplemented in PyModule.

Definition at line 438 of file Module.h.

438{ endRun(); }

◆ def_event()

virtual void def_event ( )
inlineprotectedvirtualinherited

Wrapper method for the virtual function event() that has the implementation to be used in a call from Python.

Reimplemented in PyModule.

Definition at line 431 of file Module.h.

431{ event(); }

◆ def_initialize()

virtual void def_initialize ( )
inlineprotectedvirtualinherited

Wrappers to make the methods without "def_" prefix callable from Python.

Overridden in PyModule. Wrapper method for the virtual function initialize() that has the implementation to be used in a call from Python.

Reimplemented in PyModule.

Definition at line 419 of file Module.h.

419{ initialize(); }

◆ def_terminate()

virtual void def_terminate ( )
inlineprotectedvirtualinherited

Wrapper method for the virtual function terminate() that has the implementation to be used in a call from Python.

Reimplemented in PyModule.

Definition at line 444 of file Module.h.

444{ terminate(); }

◆ duplicateHistogram()

TH1 * duplicateHistogram ( const char * newname,
const char * newtitle,
TH1 * h,
TList * histoList = nullptr )
inherited

Make a copy of a 1D histogram and add it to the TList of 1D-histograms.

Definition at line 137 of file PerformanceEvaluationBaseClass.cc.

139{
140
141 TH1F* h1 = dynamic_cast<TH1F*>(h);
142 TH2F* h2 = dynamic_cast<TH2F*>(h);
143 TH3F* h3 = dynamic_cast<TH3F*>(h);
144
145 TH1* newh = nullptr;
146
147 if (h1)
148 newh = new TH1F(*h1);
149 if (h2)
150 newh = new TH2F(*h2);
151 if (h3)
152 newh = new TH3F(*h3);
153
154 if (newh == nullptr) {
155 B2ERROR("In function duplicateHistogram: newh is a nullptr. This shouldn't happen."\
156 "Don't continue creation of duplicate histogram in this case and return nullptr.");
157 return nullptr;
158 }
159
160 newh->SetName(newname);
161 newh->SetTitle(newtitle);
162
163 if (histoList)
164 histoList->Add(newh);
165
166
167 return newh;
168}

◆ effPlot1D() [1/2]

TH1F * effPlot1D ( TH1F * h1_den,
TH1F * h1_num,
const char * name,
const char * title,
bool geo_accettance,
TList * histoList = nullptr )
inherited

Create a 1D efficiency histogram and add it to the TList of 1D-histograms.

Definition at line 332 of file PerformanceEvaluationBaseClass.cc.

334{
335 if (h1_den == nullptr or h1_num == nullptr) {
336 B2ERROR("One of the input histograms for function effPlot1D is a nullptr, "\
337 "can't create new histograms from this. Returning a nullptr.");
338 return nullptr;
339 }
340
341 std::string total;
342 std::string trueTitle;
343
344 if (geo_accettance == false) {
345 std::string name1 = "_noGeoAcc";
346 total = std::string(name) + name1;
347 trueTitle = std::string(title) + name1;
348 } else {
349 std::string name2 = "_withGeoAcc";
350 total = std::string(name) + name2;
351 trueTitle = std::string(title) + name2;
352 }
353
354 TH1F* h = dynamic_cast<TH1F*>(duplicateHistogram(total.c_str(), trueTitle.c_str(), h1_den, histoList));
355 h->GetYaxis()->SetRangeUser(0., 1);
356
357 for (int bin = 0; bin < h->GetXaxis()->GetNbins(); bin++) {
358 float num = h1_num->GetBinContent(bin + 1);
359 float den = h1_den->GetBinContent(bin + 1);
360 double eff = 0.;
361 double err = 0.;
362
363 if (den > 0) {
364 eff = (double)num / den;
365 err = sqrt(eff * (1 - eff)) / sqrt(den);
366 }
367 h->SetBinContent(bin + 1, eff);
368 h->SetBinError(bin + 1, err);
369 }
370
371
372 if (histoList)
373 histoList->Add(h);
374
375 return h;
376}
TH1 * duplicateHistogram(const char *newname, const char *newtitle, TH1 *h, TList *histoList=nullptr)
Make a copy of a 1D histogram and add it to the TList of 1D-histograms.

◆ effPlot1D() [2/2]

TH1F * effPlot1D ( TH1F * h1_MC,
TH1F * h1_RecoTrack,
TH1F * h1_Track,
const char * name,
const char * title,
TList * histoList = nullptr )
inherited

Create a 1D efficiency histogram and add it to the TList of 1D-histograms.

Definition at line 378 of file PerformanceEvaluationBaseClass.cc.

380{
381 if (h1_MC == nullptr or h1_RecoTrack == nullptr or h1_Track == nullptr) {
382 B2ERROR("One of the input histograms for function effPlot1D is a nullptr, "\
383 "can't create new histograms from this. Returning a nullptr.");
384 return nullptr;
385 }
386
387 std::string name1 = "_noGeoAcc";
388 std::string name2 = "_withGeoAcc";
389
390 std::string total1 = std::string(name) + name1;
391 std::string total2 = std::string(name) + name2;
392
393 std::string title1 = std::string(title) + name1;
394 std::string title2 = std::string(title) + name2;
395
396 TH1F* h[2];
397
398 h[0] = dynamic_cast<TH1F*>(duplicateHistogram(total2.c_str(), title2.c_str(), h1_RecoTrack, histoList));
399 h[0]->GetYaxis()->SetRangeUser(0., 1);
400
401 for (int bin = 0; bin < h[0]->GetXaxis()->GetNbins(); bin++) {
402 float num = h1_Track->GetBinContent(bin + 1);
403 float den = h1_RecoTrack->GetBinContent(bin + 1);
404 double eff = 0.;
405 double err = 0.;
406
407 if (den > 0) {
408 eff = (double)num / den;
409 err = sqrt(eff * (1 - eff)) / sqrt(den);
410 }
411 h[0]->SetBinContent(bin + 1, eff);
412 h[0]->SetBinError(bin + 1, err);
413 }
414
415 h[1] = dynamic_cast<TH1F*>(duplicateHistogram(total1.c_str(), title1.c_str(), h1_MC, histoList));
416 h[1]->GetYaxis()->SetRangeUser(0., 1);
417
418 for (int bin = 0; bin < h[1]->GetXaxis()->GetNbins(); bin++) {
419 float num = h1_Track->GetBinContent(bin + 1);
420 float den = h1_MC->GetBinContent(bin + 1);
421 double eff = 0.;
422 double err = 0.;
423
424 if (den > 0) {
425 eff = (double)num / den;
426 err = sqrt(eff * (1 - eff)) / sqrt(den);
427 }
428 h[1]->SetBinContent(bin + 1, eff);
429 h[1]->SetBinError(bin + 1, err);
430 }
431
432 if (histoList) {
433 histoList->Add(h[0]);
434 histoList->Add(h[1]);
435 }
436
437 return *h;
438}

◆ effPlot2D() [1/2]

TH2F * effPlot2D ( TH2F * h2_den,
TH2F * h2_num,
const char * name,
const char * title,
bool geo_accettance,
TList * histoList = nullptr )
inherited

Create a 2D efficiency histogram and add it to the TList of 2D-histograms.

Definition at line 440 of file PerformanceEvaluationBaseClass.cc.

442{
443 if (h2_den == nullptr or h2_num == nullptr) {
444 B2ERROR("One of the input histograms for function effPlot1D is a nullptr, "\
445 "can't create new histograms from this. Returning a nullptr.");
446 return nullptr;
447 }
448
449 std::string err_char = "_error_";
450 std::string addTitle = "Errors, ";
451
452 std::string total;
453 std::string error;
454 std::string trueTitle;
455
456 std::string titleErr = addTitle + std::string(title);
457
458 if (geo_accettance == false) {
459 std::string name1 = "_noGeoAcc";
460 total = std::string(name) + name1;
461 trueTitle = std::string(title) + name1;
462 error = std::string(name) + err_char + std::string(name1);
463 } else {
464 std::string name2 = "_withGeoAcc";
465 total = std::string(name) + name2;
466 trueTitle = std::string(title) + name2;
467 error = std::string(name) + err_char + std::string(name2);
468 }
469
470 TH2F* h2[2];
471 h2[0] = dynamic_cast<TH2F*>(duplicateHistogram(total.c_str(), trueTitle.c_str(), h2_den, histoList));
472 h2[1] = dynamic_cast<TH2F*>(duplicateHistogram(error.c_str(), titleErr.c_str(), h2_den, histoList));
473
474 for (int binX = 0; binX < h2[0]->GetXaxis()->GetNbins(); binX++) {
475 for (int binY = 0; binY < h2[0]->GetYaxis()->GetNbins(); binY++) {
476 float num = h2_num->GetBinContent(binX + 1, binY + 1);
477 float den = h2_den->GetBinContent(binX + 1, binY + 1);
478 double eff = 0.;
479 double err = 0.;
480
481 if (den > 0) {
482 eff = (double)num / den;
483 err = sqrt(eff * (1 - eff)) / sqrt(den);
484 }
485
486 h2[0]->SetBinContent(binX + 1, binY + 1, eff);
487 h2[0]->SetBinError(binX + 1, binY + 1, err);
488 h2[1]->SetBinContent(binX + 1, binY + 1, err);
489 }
490 }
491
492
493 if (histoList) {
494 histoList->Add(h2[0]);
495 histoList->Add(h2[1]);
496 }
497
498 return *h2;
499
500}

◆ effPlot2D() [2/2]

TH2F * effPlot2D ( TH2F * h2_MC,
TH2F * h2_RecoTrack,
TH2F * h2_Track,
const char * name,
const char * title,
TList * histoList )
inherited

Create a 2D efficiency histogram and add it to the TList of 2D-histograms.

Definition at line 502 of file PerformanceEvaluationBaseClass.cc.

504{
505 if (h2_MC == nullptr or h2_RecoTrack == nullptr or h2_Track == nullptr) {
506 B2ERROR("One of the input histograms for function effPlot1D is a nullptr, "\
507 "can't create new histograms from this. Returning a nullptr.");
508 return nullptr;
509 }
510
511 std::string name1 = "_noGeoAcc";
512 std::string name2 = "_withGeoAcc";
513 std::string err_char = "_error_";
514 std::string addTitle = "Errors, ";
515
516 std::string total1 = std::string(name) + name1;
517 std::string total2 = std::string(name) + name2;
518
519 std::string title1 = std::string(title) + name1;
520 std::string title2 = std::string(title) + name2;
521
522 std::string error1 = std::string(name) + err_char + name1;
523 std::string error2 = std::string(name) + err_char + name2;
524 std::string titleErr = addTitle + std::string(title);
525
526 TH2F* h2[4];
527
528 h2[0] = dynamic_cast<TH2F*>(duplicateHistogram(total2.c_str(), title2.c_str(), h2_RecoTrack, histoList));
529 h2[1] = dynamic_cast<TH2F*>(duplicateHistogram(error2.c_str(), titleErr.c_str(), h2_RecoTrack, histoList));
530
531 for (int binX = 0; binX < h2[0]->GetXaxis()->GetNbins(); binX++) {
532 for (int binY = 0; binY < h2[0]->GetYaxis()->GetNbins(); binY++) {
533 float num = h2_Track->GetBinContent(binX + 1, binY + 1);
534 float den = h2_RecoTrack->GetBinContent(binX + 1, binY + 1);
535 double eff = 0.;
536 double err = 0.;
537
538 if (den > 0) {
539 eff = num / den;
540 err = sqrt(eff * (1 - eff)) / sqrt(den);
541 }
542
543 h2[0]->SetBinContent(binX + 1, binY + 1, eff);
544 h2[0]->SetBinError(binX + 1, binY + 1, err);
545 h2[1]->SetBinContent(binX + 1, binY + 1, err);
546 }
547 }
548
549 h2[2] = dynamic_cast<TH2F*>(duplicateHistogram(total1.c_str(), title1.c_str(), h2_MC, histoList));
550 h2[3] = dynamic_cast<TH2F*>(duplicateHistogram(error1.c_str(), titleErr.c_str(), h2_MC, histoList));
551
552 for (int binX = 0; binX < h2[2]->GetXaxis()->GetNbins(); binX++) {
553 for (int binY = 0; binY < h2[2]->GetYaxis()->GetNbins(); binY++) {
554 float num = h2_Track->GetBinContent(binX + 1, binY + 1);
555 float den = h2_MC->GetBinContent(binX + 1, binY + 1);
556 double eff = 0.;
557 double err = 0.;
558
559 if (den > 0) {
560 eff = num / den;
561 err = sqrt(eff * (1 - eff)) / sqrt(den);
562 }
563
564 h2[2]->SetBinContent(binX + 1, binY + 1, eff);
565 h2[2]->SetBinError(binX + 1, binY + 1, err);
566 h2[3]->SetBinContent(binX + 1, binY + 1, err);
567 }
568 }
569
570 if (histoList) {
571 histoList->Add(h2[0]);
572 histoList->Add(h2[1]);
573 histoList->Add(h2[2]);
574 histoList->Add(h2[3]);
575 }
576
577 return *h2;
578}

◆ endRun()

void endRun ( void )
overridevirtual

This method is called if the current run ends.

Reimplemented from Module.

Definition at line 948 of file EffPlotsModule.cc.

949{
950 double track_dau0 = m_h1_track_dau0_RMother->GetEntries();
951 double RecoTrack_dau0 = m_h1_RecoTrack_dau0_RMother->GetEntries();
952 double MC_dau0 = m_h1_MC_dau0_RMother->GetEntries();
953 double eff_dau0_noGA = track_dau0 / MC_dau0;
954 double effErr_dau0_noGA = sqrt(eff_dau0_noGA * (1 - eff_dau0_noGA)) / sqrt(MC_dau0);
955 double eff_dau0_withGA = track_dau0 / RecoTrack_dau0;
956 double effErr_dau0_withGA = sqrt(eff_dau0_withGA * (1 - eff_dau0_withGA)) / sqrt(RecoTrack_dau0);
957
958 double track_dau1 = m_h1_track_dau1_RMother->GetEntries();
959 double RecoTrack_dau1 = m_h1_RecoTrack_dau1_RMother->GetEntries();
960 double MC_dau1 = m_h1_MC_dau1_RMother->GetEntries();
961 double eff_dau1_noGA = track_dau1 / MC_dau1;
962 double effErr_dau1_noGA = sqrt(eff_dau1_noGA * (1 - eff_dau1_noGA)) / sqrt(MC_dau1);
963 double eff_dau1_withGA = track_dau1 / RecoTrack_dau1;
964 double effErr_dau1_withGA = sqrt(eff_dau1_withGA * (1 - eff_dau1_withGA)) / sqrt(RecoTrack_dau1);
965
966 double track_Mother = m_h1_V0_RMother->GetEntries();
967 double RecoTrack_Mother = m_h1_RecoTrack_Mother_RMother->GetEntries();
968 double MC_Mother = m_h1_MC_Mother_RMother->GetEntries();
969 double eff_Mother_noGA = track_Mother / MC_Mother;
970 double effErr_Mother_noGA = sqrt(eff_Mother_noGA * (1 - eff_Mother_noGA)) / sqrt(MC_Mother);
971 double eff_Mother_withGA = track_Mother / RecoTrack_Mother;
972 double effErr_Mother_withGA = sqrt(eff_Mother_withGA * (1 - eff_Mother_withGA)) / sqrt(RecoTrack_Mother);
973
974
975
976
977 B2INFO("");
978 B2INFO("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
979 B2INFO("~ V0 Finding Performance Evaluation ~ SHORT SUMMARY ~");
980 B2INFO("");
981 B2INFO(" + overall, normalized to MC particles (_noGeoAcc):");
982 B2INFO("");
983 B2INFO(" efficiency dau0 = (" << eff_dau0_noGA * 100 << " +/- " << effErr_dau0_noGA * 100 << ")% ");
984 B2INFO(" efficiency dau1 = (" << eff_dau1_noGA * 100 << " +/- " << effErr_dau1_noGA * 100 << ")% ");
985 B2INFO(" efficiency Mother = (" << eff_Mother_noGA * 100 << " +/- " << effErr_Mother_noGA * 100 << ")% ");
986 B2INFO("");
987 B2INFO(" + overall, normalized to RecoTracks(_withGeoAcc):");
988 B2INFO("");
989 B2INFO(" efficiency dau0 = (" << eff_dau0_withGA * 100 << " +/- " << effErr_dau0_withGA * 100 << ")% ");
990 B2INFO(" efficiency dau1 = (" << eff_dau1_withGA * 100 << " +/- " << effErr_dau1_withGA * 100 << ")% ");
991 B2INFO(" efficiency Mother = (" << eff_Mother_withGA * 100 << " +/- " << effErr_Mother_withGA * 100 << ")% ");
992 B2INFO("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
993
994}
TH1F * m_h1_track_dau0_RMother
histogram of Track daughter 0's RMother
TH1F * m_h1_V0_RMother
histogram of V0 mother's RMother
TH1F * m_h1_MC_dau1_RMother
histogram of MCParticle daughter 1's RMother
TH1F * m_h1_MC_dau0_RMother
histogram of MCParticle daughter 0's RMother
TH1F * m_h1_RecoTrack_dau0_RMother
histogram of RecoTrack daughter 0's RMother
TH1F * m_h1_RecoTrack_Mother_RMother
histogram of RecoTrack mother's RMother
TH1F * m_h1_MC_Mother_RMother
histogram of MCParticle mother's RMother
TH1F * m_h1_RecoTrack_dau1_RMother
histogram of RecoTrack daughter 1's RMother
TH1F * m_h1_track_dau1_RMother
histogram of Track daughter 1's RMother

◆ evalCondition()

bool evalCondition ( ) const
inherited

If at least one condition was set, it is evaluated and true returned if at least one condition returns true.

If no condition or result value was defined, the method returns false. Otherwise, the condition is evaluated and true returned, if at least one condition returns true. To speed up the evaluation, the condition strings were already parsed in the method if_value().

Returns
True if at least one condition and return value exists and at least one condition expression was evaluated to true.

Definition at line 96 of file Module.cc.

97{
98 if (m_conditions.empty()) return false;
99
100 //okay, a condition was set for this Module...
101 if (!m_hasReturnValue) {
102 B2FATAL("A condition was set for '" << getName() << "', but the module did not set a return value!");
103 }
104
105 for (const auto& condition : m_conditions) {
106 if (condition.evaluate(m_returnValue)) {
107 return true;
108 }
109 }
110 return false;
111}
int m_returnValue
The return value.
Definition Module.h:518
bool m_hasReturnValue
True, if the return value is set.
Definition Module.h:517

◆ event()

void event ( void )
overridevirtual

This method is called for each event.

Reimplemented from Module.

Definition at line 572 of file EffPlotsModule.cc.

573{
574
575 ROOT::Math::XYZVector magField = BFieldManager::getField(0, 0, 0) / Unit::T;
576
577 B2DEBUG(29, "+++++ 1. loop on MCParticles");
578 for (const MCParticle& mcParticle : m_MCParticles) {
579
580 //------------------------------------------------------------------//
581 // MC PARTICLES //
582 //------------------------------------------------------------------//
583
584 if (m_V0sType == "Lambda0") {
585 if (! isLambda0(mcParticle))
586 continue;
587
588 std::vector< MCParticle* > MCPart_dau = mcParticle.getDaughters();
589
590 if (abs(MCPart_dau[0]->getPDG()) == Const::pion.getPDGCode() && abs(MCPart_dau[1]->getPDG()) == Const::proton.getPDGCode()) {
591 m_MCDaughter0 = MCPart_dau[0];
592 m_MCDaughter1 = MCPart_dau[1];
593 } else if (abs(MCPart_dau[0]->getPDG()) == Const::proton.getPDGCode() && abs(MCPart_dau[1]->getPDG()) == Const::pion.getPDGCode()) {
594 m_MCDaughter0 = MCPart_dau[1];
595 m_MCDaughter1 = MCPart_dau[0];
596 } else B2INFO("Lambda daughters != pi & p");
597 }
598
599 else if (m_V0sType == "Ks") {
600 if (! isK_Short(mcParticle))
601 continue;
602
603 std::vector< MCParticle* > MCPart_dau = mcParticle.getDaughters();
604
605 if (MCPart_dau[0]->getPDG() == Const::pion.getPDGCode() && MCPart_dau[1]->getPDG() == -Const::pion.getPDGCode()) {
606 m_MCDaughter0 = MCPart_dau[0];
607 m_MCDaughter1 = MCPart_dau[1];
608 } else if (MCPart_dau[0]->getPDG() == -Const::pion.getPDGCode() && MCPart_dau[1]->getPDG() == Const::pion.getPDGCode()) {
609 m_MCDaughter0 = MCPart_dau[1];
610 m_MCDaughter1 = MCPart_dau[0];
611 } else B2INFO("Ks daughters != pi+ & pi-");
612 }
613
614 MCParticleInfo mcParticleInfo(mcParticle, magField);
615 MCParticleInfo mcParticleInfo_dau0(*m_MCDaughter0, magField);
616 MCParticleInfo mcParticleInfo_dau1(*m_MCDaughter1, magField);
617
618 const ROOT::Math::XYZVector& MC_vtx = mcParticle.getDecayVertex();
619
620 float MC_transDist = sqrt(MC_vtx.X() * MC_vtx.X() + MC_vtx.Y() * MC_vtx.Y());
621 float MC_pt = mcParticle.getMomentum().Rho();
622 float MC_p = mcParticle.getMomentum().R();
623 float MC_phi = mcParticle.getMomentum().Phi();
624 float MC_theta = mcParticle.getMomentum().Theta();
625 float MC_costheta = cos(mcParticle.getMomentum().Theta());
626
627 m_h1_MC_dau0_d0->Fill(mcParticleInfo_dau0.getD0());
628 m_h1_MC_dau0_z0->Fill(mcParticleInfo_dau0.getZ0());
629 m_h1_MC_dau0_RMother->Fill(MC_transDist);
630 m_h3_MC_dau0->Fill(m_MCDaughter0->getMomentum().Rho(), m_MCDaughter0->getMomentum().Theta(), m_MCDaughter0->getMomentum().Phi());
631 m_h1_MC_dau0_pt->Fill(m_MCDaughter0->getMomentum().Rho());
632 m_h1_MC_dau0_pz->Fill(m_MCDaughter0->getMomentum().z());
633 m_h1_MC_dau0_p->Fill(m_MCDaughter0->getMomentum().R());
634 m_h1_MC_dau0_phi->Fill(m_MCDaughter0->getMomentum().Phi());
635 m_h1_MC_dau0_theta->Fill(m_MCDaughter0->getMomentum().Theta());
636 m_h1_MC_dau0_costheta->Fill(cos(m_MCDaughter0->getMomentum().Theta()));
637 m_h1_MC_dau0_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter0->getMomentum()) / mcParticle.getMomentum().R() /
638 m_MCDaughter0->getMomentum().R());
639
640 m_h1_MC_dau0_thetaMother->Fill(MC_theta);
641 m_h1_MC_dau0_ptMother->Fill(MC_pt);
642
643 m_h1_MC_dau0_phiMother_total->Fill(MC_phi);
644 m_h2_MC_dau0_2D->Fill(m_MCDaughter0->getMomentum().Theta(), m_MCDaughter0->getMomentum().Rho());
645 m_h2_MC_dau0_2DMother->Fill(MC_theta, MC_pt);
646 m_h2_MC_dau0_pVScostheta->Fill(cos(m_MCDaughter0->getMomentum().Theta()), m_MCDaughter0->getMomentum().R());
647 m_h1_MC_dau0_PDG->Fill(m_MCDaughter0->getPDG());
648
649 m_h1_MC_dau1_d0->Fill(mcParticleInfo_dau1.getD0());
650 m_h1_MC_dau1_z0->Fill(mcParticleInfo_dau1.getZ0());
651 m_h1_MC_dau1_RMother->Fill(MC_transDist);
652 m_h3_MC_dau1->Fill(m_MCDaughter1->getMomentum().Rho(), m_MCDaughter1->getMomentum().Theta(), m_MCDaughter1->getMomentum().Phi());
653 m_h1_MC_dau1_pt->Fill(m_MCDaughter1->getMomentum().Rho());
654 m_h1_MC_dau1_pz->Fill(m_MCDaughter1->getMomentum().z());
655 m_h1_MC_dau1_p->Fill(m_MCDaughter1->getMomentum().R());
656 m_h1_MC_dau1_phi->Fill(m_MCDaughter1->getMomentum().Phi());
657 m_h1_MC_dau1_theta->Fill(m_MCDaughter1->getMomentum().Theta());
658 m_h1_MC_dau1_costheta->Fill(cos(m_MCDaughter1->getMomentum().Theta()));
659 m_h1_MC_dau1_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter1->getMomentum()) / mcParticle.getMomentum().R() /
660 m_MCDaughter1->getMomentum().R());
661
662 m_h1_MC_dau1_thetaMother->Fill(MC_theta);
663 m_h1_MC_dau1_ptMother->Fill(MC_pt);
664
665 m_h1_MC_dau1_phiMother_total->Fill(MC_phi);
666 m_h2_MC_dau1_2D->Fill(m_MCDaughter1->getMomentum().Theta(), m_MCDaughter1->getMomentum().Rho());
667 m_h2_MC_dau1_2DMother->Fill(MC_theta, MC_pt);
668 m_h2_MC_dau1_pVScostheta->Fill(cos(m_MCDaughter1->getMomentum().Theta()), m_MCDaughter1->getMomentum().R());
669 m_h1_MC_dau1_PDG->Fill(m_MCDaughter1->getPDG());
670
671 m_h1_MC_Mother_RMother->Fill(MC_transDist);
672 m_h3_MC_Mother->Fill(MC_pt, MC_theta, MC_phi);
673 m_h1_MC_Mother_pt->Fill(MC_pt);
674 m_h1_MC_Mother_pz->Fill(mcParticle.getMomentum().z());
675 m_h1_MC_Mother_p->Fill(mcParticle.getMomentum().R());
676 m_h1_MC_Mother_phi->Fill(MC_phi);
677 m_h1_MC_Mother_theta->Fill(MC_theta);
678 m_h1_MC_Mother_costheta->Fill(cos(mcParticle.getMomentum().Theta()));
679 m_h2_MC_Mother_2D->Fill(MC_theta, MC_pt);
680 m_h2_MC_Mother_pVScostheta->Fill(MC_costheta, MC_p);
681 m_h1_MC_Mother_PDG->Fill(mcParticle.getPDG());
682
683 //beam pipe
684 if (MC_transDist < 1.) {
685 m_h2_MC_dau0_2D_BP->Fill(m_MCDaughter0->getMomentum().Theta(), m_MCDaughter0->getMomentum().Rho());
686 m_h2_MC_dau1_2D_BP->Fill(m_MCDaughter1->getMomentum().Theta(), m_MCDaughter1->getMomentum().Rho());
687 m_h2_MC_Mother_2D_BP->Fill(MC_theta, MC_pt);
688 }
689
690
691 if (MC_theta > (120 * TMath::Pi() / 180.)) { //BW
692 m_h1_MC_dau0_phiMother_BW->Fill(MC_phi);
693 m_h1_MC_dau1_phiMother_BW->Fill(MC_phi);
694 m_h1_MC_dau0_phi_BW->Fill(m_MCDaughter0->getMomentum().Phi());
695 m_h1_MC_dau1_phi_BW->Fill(m_MCDaughter1->getMomentum().Phi());
696 m_h1_MC_Mother_phi_BW->Fill(MC_phi);
697 } else if (MC_theta < (30. * TMath::Pi() / 180.)) { //FW, theta < 30)
698 m_h1_MC_dau0_phiMother_FW->Fill(MC_phi);
699 m_h1_MC_dau1_phiMother_FW->Fill(MC_phi);
700 m_h1_MC_dau0_phi_FW->Fill(m_MCDaughter0->getMomentum().Phi());
701 m_h1_MC_dau1_phi_FW->Fill(m_MCDaughter1->getMomentum().Phi());
702 m_h1_MC_Mother_phi_FW->Fill(MC_phi);
703 } else { //barrel
704 m_h1_MC_dau0_phiMother_barrel->Fill(MC_phi);
705 m_h1_MC_dau1_phiMother_barrel->Fill(MC_phi);
706 m_h1_MC_dau0_phi_barrel->Fill(m_MCDaughter0->getMomentum().Phi());
707 m_h1_MC_dau1_phi_barrel->Fill(m_MCDaughter1->getMomentum().Phi());
708 m_h1_MC_Mother_phi_barrel->Fill(MC_phi);
709 }
710
711 //------------------------------------------------------------------//
712 // MC RECO TRACKS //
713 //------------------------------------------------------------------//
714
715 RelationVector<RecoTrack> MCRecoTracks_MCdau0 =
717
718 RelationVector<RecoTrack> MCRecoTracks_MCdau1 =
720
721 if (MCRecoTracks_MCdau0.size() > 0) {
722 m_h1_RecoTrack_dau0_d0->Fill(mcParticleInfo_dau0.getD0());
723 m_h1_RecoTrack_dau0_z0->Fill(mcParticleInfo_dau0.getZ0());
724 m_h1_RecoTrack_dau0_RMother->Fill(MC_transDist);
725 m_h3_RecoTrack_dau0->Fill(m_MCDaughter0->getMomentum().Rho(), m_MCDaughter0->getMomentum().Theta(),
726 m_MCDaughter0->getMomentum().Phi());
727 m_h1_RecoTrack_dau0_pt->Fill(m_MCDaughter0->getMomentum().Rho());
728 m_h1_RecoTrack_dau0_pz->Fill(m_MCDaughter0->getMomentum().z());
729 m_h1_RecoTrack_dau0_p->Fill(m_MCDaughter0->getMomentum().R());
730 m_h1_RecoTrack_dau0_phi->Fill(m_MCDaughter0->getMomentum().Phi());
731 m_h1_RecoTrack_dau0_theta->Fill(m_MCDaughter0->getMomentum().Theta());
732 m_h1_RecoTrack_dau0_costheta->Fill(cos(m_MCDaughter0->getMomentum().Theta()));
733 m_h1_RecoTrack_dau0_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter0->getMomentum()) /
734 mcParticle.getMomentum().R() /
735 m_MCDaughter0->getMomentum().R());
736
737 m_h1_RecoTrack_dau0_thetaMother->Fill(MC_theta);
738 m_h1_RecoTrack_dau0_ptMother->Fill(MC_pt);
739
741 m_h2_RecoTrack_dau0_2D->Fill(m_MCDaughter0->getMomentum().Theta(), m_MCDaughter0->getMomentum().Rho());
742 m_h2_RecoTrack_dau0_2DMother->Fill(MC_theta, MC_pt);
743 m_h2_RecoTrack_dau0_pVScostheta->Fill(cos(m_MCDaughter0->getMomentum().Theta()), m_MCDaughter0->getMomentum().R());
744
745 if (MC_transDist < 1.) {
746 m_h2_RecoTrack_dau0_2D_BP->Fill(m_MCDaughter0->getMomentum().Theta(), m_MCDaughter0->getMomentum().Rho());
747 }
748
749 if (m_MCDaughter0->getMomentum().Theta() > (120 * TMath::Pi() / 180.)) m_h1_RecoTrack_dau0_phi_BW->Fill(
750 m_MCDaughter0->getMomentum().Phi());
751 else if (m_MCDaughter0->getMomentum().Theta() < (30. * TMath::Pi() / 180.)) m_h1_RecoTrack_dau0_phi_FW->Fill(
752 m_MCDaughter0->getMomentum().Phi());
753 else m_h1_RecoTrack_dau0_phi_barrel->Fill(m_MCDaughter0->getMomentum().Phi());
754
755 if (MC_theta > (120 * TMath::Pi() / 180.)) m_h1_RecoTrack_dau0_phiMother_BW->Fill(MC_phi);
756 else if (MC_theta < (30. * TMath::Pi() / 180.)) m_h1_RecoTrack_dau0_phiMother_FW->Fill(MC_phi);
757 else m_h1_RecoTrack_dau0_phiMother_barrel->Fill(MC_phi);
758
759 //V0 candidates
760 if (MCRecoTracks_MCdau1.size() > 0) {
761 m_h1_RecoTrack_Mother_RMother->Fill(MC_transDist);
762 m_h3_RecoTrack_Mother->Fill(MC_pt, MC_theta, MC_phi);
763 m_h1_RecoTrack_Mother_pt->Fill(MC_pt);
764 m_h1_RecoTrack_Mother_pz->Fill(mcParticle.getMomentum().z());
765 m_h1_RecoTrack_Mother_p->Fill(mcParticle.getMomentum().R());
766 m_h1_RecoTrack_Mother_phi->Fill(MC_phi);
767 m_h1_RecoTrack_Mother_theta->Fill(MC_theta);
768 m_h1_RecoTrack_Mother_costheta->Fill(cos(mcParticle.getMomentum().Theta()));
769
770 m_h1_RecoTrack_Mother_pt->Fill(MC_pt);
771 m_h2_RecoTrack_Mother_2D->Fill(MC_theta, MC_pt);
772
773 m_h2_RecoTrack_Mother_pVScostheta->Fill(MC_costheta, MC_p);
774
775 if (MC_transDist < 1.) m_h2_RecoTrack_Mother_2D_BP->Fill(MC_theta, MC_pt);
776
777 if (MC_theta > (120 * TMath::Pi() / 180.)) //BW
778 m_h1_RecoTrack_Mother_phi_BW->Fill(MC_phi);
779 else if (MC_theta < (30. * TMath::Pi() / 180.))//FW
780 m_h1_RecoTrack_Mother_phi_FW->Fill(MC_phi);
781 else
783 }
784 }
785
786 if (MCRecoTracks_MCdau1.size() > 0) {
787 m_h1_RecoTrack_dau1_d0->Fill(mcParticleInfo_dau1.getD0());
788 m_h1_RecoTrack_dau1_z0->Fill(mcParticleInfo_dau1.getZ0());
789 m_h1_RecoTrack_dau1_RMother->Fill(MC_transDist);
790 m_h3_RecoTrack_dau1->Fill(m_MCDaughter1->getMomentum().Rho(), m_MCDaughter1->getMomentum().Theta(),
791 m_MCDaughter1->getMomentum().Phi());
792 m_h1_RecoTrack_dau1_pt->Fill(m_MCDaughter1->getMomentum().Rho());
793 m_h1_RecoTrack_dau1_pz->Fill(m_MCDaughter1->getMomentum().z());
794 m_h1_RecoTrack_dau1_p->Fill(m_MCDaughter1->getMomentum().R());
795 m_h1_RecoTrack_dau1_phi->Fill(m_MCDaughter1->getMomentum().Phi());
796 m_h1_RecoTrack_dau1_theta->Fill(m_MCDaughter1->getMomentum().Theta());
797 m_h1_RecoTrack_dau1_costheta->Fill(cos(m_MCDaughter1->getMomentum().Theta()));
798 m_h1_RecoTrack_dau1_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter1->getMomentum()) /
799 mcParticle.getMomentum().R() /
800 m_MCDaughter1->getMomentum().R());
801
802 m_h1_RecoTrack_dau1_thetaMother->Fill(MC_theta);
803 m_h1_RecoTrack_dau1_ptMother->Fill(MC_pt);
804
806 m_h2_RecoTrack_dau1_2D->Fill(m_MCDaughter1->getMomentum().Theta(), m_MCDaughter1->getMomentum().Rho());
807 m_h2_RecoTrack_dau1_2DMother->Fill(MC_theta, MC_pt);
808 m_h2_RecoTrack_dau1_pVScostheta->Fill(cos(m_MCDaughter1->getMomentum().Theta()), m_MCDaughter1->getMomentum().R());
809
810 if (MC_transDist < 1.) {
811 m_h2_RecoTrack_dau1_2D_BP->Fill(m_MCDaughter1->getMomentum().Theta(), m_MCDaughter1->getMomentum().Rho());
812
813 if (m_MCDaughter1->getMomentum().Theta() > (120 * TMath::Pi() / 180.)) m_h1_RecoTrack_dau1_phi_BW->Fill(
814 m_MCDaughter1->getMomentum().Phi());
815 else if (m_MCDaughter1->getMomentum().Theta() < (30. * TMath::Pi() / 180.)) m_h1_RecoTrack_dau1_phi_FW->Fill(
816 m_MCDaughter1->getMomentum().Phi());
817 else m_h1_RecoTrack_dau1_phi_barrel->Fill(m_MCDaughter1->getMomentum().Phi());
818
819 if (MC_theta > (120 * TMath::Pi() / 180.)) m_h1_RecoTrack_dau1_phiMother_BW->Fill(MC_phi);
820 else if (MC_theta < (30. * TMath::Pi() / 180.)) m_h1_RecoTrack_dau1_phiMother_FW->Fill(MC_phi);
821 else m_h1_RecoTrack_dau1_phiMother_barrel->Fill(MC_phi);
822 }
823 }
824
825 //------------------------------------------------------------------//
826 // TRACKS //
827 //------------------------------------------------------------------//
828
829 const Track* Track_dau0ToMCParticle = m_MCDaughter0->getRelated<Track>();
830 const Track* Track_dau1ToMCParticle = m_MCDaughter1->getRelated<Track>();
831
832 if (Track_dau0ToMCParticle) {
833 m_h1_track_dau0_d0->Fill(mcParticleInfo_dau0.getD0());
834 m_h1_track_dau0_z0->Fill(mcParticleInfo_dau0.getZ0());
835 m_h1_track_dau0_RMother->Fill(MC_transDist);
836 m_h3_track_dau0->Fill(m_MCDaughter0->getMomentum().Rho(), m_MCDaughter0->getMomentum().Theta(), m_MCDaughter0->getMomentum().Phi());
837 m_h1_track_dau0_pt->Fill(m_MCDaughter0->getMomentum().Rho());
838 m_h1_track_dau0_pz->Fill(m_MCDaughter0->getMomentum().z());
839 m_h1_track_dau0_p->Fill(m_MCDaughter0->getMomentum().R());
840 m_h1_track_dau0_phi->Fill(m_MCDaughter0->getMomentum().Phi());
841 m_h1_track_dau0_theta->Fill(m_MCDaughter0->getMomentum().Theta());
842 m_h1_track_dau0_costheta->Fill(cos(m_MCDaughter0->getMomentum().Theta()));
843 m_h1_track_dau0_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter0->getMomentum()) / mcParticle.getMomentum().R() /
844 m_MCDaughter0->getMomentum().R());
845
846 m_h1_track_dau0_thetaMother->Fill(MC_theta);
847 m_h1_track_dau0_ptMother->Fill(MC_pt);
848
850
851 m_h2_track_dau0_2D->Fill(m_MCDaughter0->getMomentum().Theta(), m_MCDaughter0->getMomentum().Rho());
852 m_h2_track_dau0_2DMother->Fill(MC_theta, MC_pt);
853 m_h2_track_dau0_pVScostheta->Fill(cos(m_MCDaughter0->getMomentum().Theta()), m_MCDaughter0->getMomentum().R());
854
855 if (MC_transDist < 1.)
856 m_h2_track_dau0_2D_BP->Fill(m_MCDaughter0->getMomentum().Theta(), m_MCDaughter0->getMomentum().Rho());
857
858 if (MC_theta > (120 * TMath::Pi() / 180.)) { //BW
859 m_h1_track_dau0_phiMother_BW->Fill(MC_phi);
860 m_h1_track_dau0_phi_BW->Fill(m_MCDaughter0->getMomentum().Phi());
861 } else if (MC_theta < (30 * TMath::Pi() / 180.)) { //FW
862 m_h1_track_dau0_phiMother_FW->Fill(MC_phi);
863 m_h1_track_dau0_phi_FW->Fill(m_MCDaughter0->getMomentum().Phi());
864 } else { //barrel
866 m_h1_track_dau0_phi_barrel->Fill(m_MCDaughter0->getMomentum().Phi());
867 }
868 }
869
870 if (Track_dau1ToMCParticle) {
871 m_h1_track_dau1_d0->Fill(mcParticleInfo_dau1.getD0());
872 m_h1_track_dau1_z0->Fill(mcParticleInfo_dau1.getZ0());
873 m_h1_track_dau1_RMother->Fill(MC_transDist);
874 m_h3_track_dau1->Fill(m_MCDaughter1->getMomentum().Rho(), m_MCDaughter1->getMomentum().Theta(), m_MCDaughter1->getMomentum().Phi());
875 m_h1_track_dau1_pt->Fill(m_MCDaughter1->getMomentum().Rho());
876 m_h1_track_dau1_pz->Fill(m_MCDaughter1->getMomentum().z());
877 m_h1_track_dau1_p->Fill(m_MCDaughter1->getMomentum().R());
878 m_h1_track_dau1_phi->Fill(m_MCDaughter1->getMomentum().Phi());
879 m_h1_track_dau1_theta->Fill(m_MCDaughter1->getMomentum().Theta());
880 m_h1_track_dau1_costheta->Fill(cos(m_MCDaughter1->getMomentum().Theta()));
881 m_h1_track_dau1_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter1->getMomentum()) / mcParticle.getMomentum().R() /
882 m_MCDaughter1->getMomentum().R());
883
884 m_h1_track_dau1_thetaMother->Fill(MC_theta);
885 m_h1_track_dau1_ptMother->Fill(MC_pt);
886
888
889 m_h2_track_dau1_2D->Fill(m_MCDaughter1->getMomentum().Theta(), m_MCDaughter1->getMomentum().Rho());
890 m_h2_track_dau1_2DMother->Fill(MC_theta, MC_pt);
891 m_h2_track_dau1_pVScostheta->Fill(cos(m_MCDaughter1->getMomentum().Theta()), m_MCDaughter1->getMomentum().R());
892
893 if (MC_transDist < 1.)
894 m_h2_track_dau1_2D_BP->Fill(m_MCDaughter1->getMomentum().Theta(), m_MCDaughter1->getMomentum().Rho());
895
896 if (MC_theta > (120 * TMath::Pi() / 180.)) { //BW
897 m_h1_track_dau1_phiMother_BW->Fill(MC_phi);
898 m_h1_track_dau1_phi_BW->Fill(m_MCDaughter1->getMomentum().Phi());
899 } else if (MC_theta < (30 * TMath::Pi() / 180.)) { //FW
900 m_h1_track_dau1_phiMother_FW->Fill(MC_phi);
901 m_h1_track_dau1_phi_FW->Fill(m_MCDaughter1->getMomentum().Phi());
902 } else { //barrel
904 m_h1_track_dau1_phi_barrel->Fill(m_MCDaughter1->getMomentum().Phi());
905 }
906 }
907
908 int nMatchedDau = nMatchedDaughters(mcParticle);
909
910 //V0: proceed only in case the MCParticle daughters have one associated reconstructed track:
911 if (nMatchedDau != 2)
912 continue;
913
914 // cppcheck-suppress variableScope ; declaration kept at this scope for readability
915 int pdgCode = mcParticle.getPDG();
916 B2DEBUG(29, "MCParticle has PDG code " << pdgCode);
917
918 RelationVector<V0ValidationVertex> V0s_toMCParticle =
920
921 if (V0s_toMCParticle.size() > 0) {
922
923 m_h1_V0_RMother->Fill(MC_transDist);
924 m_h3_V0->Fill(mcParticleInfo.getPt(), mcParticleInfo.getPtheta(), mcParticleInfo.getPphi());
925 m_h1_V0_pt->Fill(mcParticleInfo.getPt());
926 m_h1_V0_pz->Fill(mcParticleInfo.getPz());
927 m_h1_V0_p->Fill(mcParticleInfo.getP());
928 m_h1_V0_phi->Fill(mcParticleInfo.getPphi());
929 m_h1_V0_theta->Fill(mcParticleInfo.getPtheta());
930 m_h1_V0_costheta->Fill(cos(mcParticle.getMomentum().Theta()));
931 m_h2_V0_Mother_2D->Fill(MC_theta, MC_p);
932 m_h2_V0_Mother_pVScostheta->Fill(MC_costheta, MC_p);
933
934 if (MC_transDist < 1.) m_h2_V0_Mother_2D_BP->Fill(MC_theta, MC_pt);
935
936 if (MC_theta > (120 * TMath::Pi() / 180.)) //BW
937 m_h1_V0_phi_BW->Fill(mcParticleInfo.getPphi());
938
939 else if (MC_theta < (30 * TMath::Pi() / 180.))//FW
940 m_h1_V0_phi_FW->Fill(mcParticleInfo.getPphi());
941
942 else //barrel
943 m_h1_V0_phi_barrel->Fill(mcParticleInfo.getPphi());
944 }
945 }
946}
static const ChargedStable pion
charged pion particle
Definition Const.h:662
static const ChargedStable proton
proton particle
Definition Const.h:664
static RelationVector< T > getRelationsWithObj(const TObject *object, const std::string &name="", const std::string &namedRelation="")
Get the relations between an object and other objects in a store array.
Definition DataStore.h:412
TH1F * m_h1_RecoTrack_dau0_phiMother_FW
histogram of RecoTrack daughter 0's mother's phi (forward region)
TH1F * m_h1_MC_dau1_Mother_cosAngle
histogram of MCParticle daughter 1's and mother's cos(opening-angle)
TH1F * m_h1_RecoTrack_dau1_costheta
histogram of RecoTrack daughter 1's cos(theta)
TH1F * m_h1_V0_pz
histogram of V0 mother's pz
TH1F * m_h1_V0_phi
histogram of V0 mother's phi
TH3F * m_h3_track_dau1
histogram of Track daughter 1's pt vs theta vs phi
TH1F * m_h1_RecoTrack_dau0_pz
histogram of RecoTrack daughter 0's pz
TH1F * m_h1_RecoTrack_dau0_phi_BW
histogram of RecoTrack daughter 0's phi (backward region)
TH1F * m_h1_RecoTrack_Mother_theta
histogram of RecoTrack mother's theta
TH1F * m_h1_track_dau0_phi_barrel
histogram of Track daughter 0's phi (barrel region)
TH1F * m_h1_RecoTrack_dau1_p
histogram of RecoTrack daughter 1's p
TH1F * m_h1_track_dau1_phi_barrel
histogram of Track daughter 1's phi (barrel region)
TH2F * m_h2_RecoTrack_Mother_pVScostheta
histogram of RecoTrack mother's p vs cos(theta)
TH1F * m_h1_track_dau0_ptMother
histogram of Track daughter 0's mother's pt
static bool isK_Short(const MCParticle &the_mcParticle)
determine if the MCParticle is a K-short
TH1F * m_h1_MC_dau0_PDG
histogram of MCParticle daughter 0's PDG code
TH1F * m_h1_track_dau1_z0
histogram of Track daughter 1's z0
TH1F * m_h1_track_dau1_pt
histogram of Track daughter 1's pt
TH1F * m_h1_track_dau1_ptMother
histogram of Track daughter 1's mother's pt
TH1F * m_h1_MC_dau1_PDG
histogram of MCParticle daughter 1's PDG code
TH1F * m_h1_RecoTrack_dau0_phiMother_BW
histogram of RecoTrack daughter 0's mother's phi (backward region)
TH1F * m_h1_V0_pt
histogram of V0 mother's pt
TH2F * m_h2_V0_Mother_2D
histogram of V0 mother's pt vs theta
TH1F * m_h1_track_dau1_pz
histogram of Track daughter 1's pz
TH1F * m_h1_track_dau0_phiMother_barrel
histogram of Track daughter 0's mother's phi (barrel region)
TH1F * m_h1_track_dau0_costheta
histogram of Track daughter 0's cos(theta)
TH2F * m_h2_track_dau1_2DMother
histogram of Track daughter 1's mother's pt vs theta
TH1F * m_h1_MC_dau0_z0
histogram of MCParticle daughter 0's z0
TH1F * m_h1_RecoTrack_dau1_z0
histogram of RecoTrack daughter 1's z0
TH1F * m_h1_MC_dau1_ptMother
histogram of MCParticle daughter 1's mother's pt
TH1F * m_h1_RecoTrack_dau1_phiMother_total
histogram of RecoTrack daughter 1's mother's phi
TH2F * m_h2_MC_dau1_2D_BP
histogram of MCParticle daughter 1's pt vs theta (beam pipe)
TH2F * m_h2_RecoTrack_Mother_2D_BP
histogram of RecoTrack mother's pt vs theta (beam pipe)
TH2F * m_h2_MC_dau1_pVScostheta
histogram of MCParticle daughter 1's p vs cos(theta)
TH1F * m_h1_V0_phi_barrel
histogram of V0 mother's phi (barrel region)
TH3F * m_h3_RecoTrack_Mother
histogram of RecoTrack mother's pt vs theta vs phi
TH1F * m_h1_track_dau0_pz
histogram of Track daughter 0's pz
TH1F * m_h1_MC_dau1_phi_BW
histogram of MCParticle daughter 1's phi (backward region)
TH1F * m_h1_RecoTrack_dau1_Mother_cosAngle
histogram of RecoTrack daughter 1's and mother's cos(opening-angle)
TH2F * m_h2_track_dau0_2D
histogram of Track daughter 0's pt vs theta
TH2F * m_h2_MC_Mother_pVScostheta
histogram of MCParticle mother's p vs cos(theta)
TH1F * m_h1_V0_phi_FW
histogram of V0 mother's phi (forward region)
TH1F * m_h1_track_dau0_phiMother_total
histogram of Track daughter 0's mother's phi
TH1F * m_h1_track_dau1_phi
histogram of Track daughter 1's phi
TH1F * m_h1_track_dau0_theta
histogram of Track daughter 0's theta
TH1F * m_h1_MC_dau0_thetaMother
histogram of MCParticle daughter 0's mother's theta
TH1F * m_h1_MC_Mother_pt
histogram of MCParticle mother's pt
TH1F * m_h1_RecoTrack_dau1_phi
histogram of RecoTrack daughter 1's phi
TH2F * m_h2_V0_Mother_2D_BP
histogram of V0 mother's pt vs theta (beam pipe)
TH3F * m_h3_RecoTrack_dau1
histogram of RecoTrack daughter 1's pt vs theta vs phi
TH1F * m_h1_RecoTrack_dau1_phi_FW
histogram of RecoTrack daughter 1's phi (forward region)
TH1F * m_h1_RecoTrack_dau0_d0
list of histograms filled per RecoTracks found in the event
TH1F * m_h1_MC_Mother_phi
histogram of MCParticle mother's phi
TH1F * m_h1_V0_costheta
histogram of V0 mother's cos(theta)
TH1F * m_h1_track_dau1_Mother_cosAngle
histogram of Track daughter 1's and mother's cos(opening-angle)
TH1F * m_h1_MC_Mother_phi_FW
histogram of MCParticle mother's phi (forward region)
TH2F * m_h2_RecoTrack_dau1_pVScostheta
histogram of RecoTrack daughter 1's p vs cos(theta)
TH1F * m_h1_MC_dau0_phi
histogram of MCParticle daughter 0's phi
TH2F * m_h2_track_dau0_pVScostheta
histogram of Track daughter 0's p vs cos(theta)
TH2F * m_h2_RecoTrack_dau0_2D_BP
histogram of RecoTrack daughter 0's pt vs theta (beam pipe)
TH1F * m_h1_RecoTrack_dau1_phi_BW
histogram of RecoTrack daughter 1's phi (backward region)
TH1F * m_h1_MC_dau1_thetaMother
histogram of MCParticle daughter 1's mother's theta
TH1F * m_h1_RecoTrack_dau0_phiMother_total
histogram of RecoTrack daughter 0's mother's phi
TH1F * m_h1_RecoTrack_Mother_phi_barrel
histogram of RecoTrack mother's phi (barrel region)
TH1F * m_h1_MC_dau0_pt
histogram of MCParticle daughter 0's pt
TH1F * m_h1_RecoTrack_dau0_ptMother
histogram of RecoTrack daughter 0's mother's pt
TH1F * m_h1_RecoTrack_dau0_phi_FW
histogram of RecoTrack daughter 0's phi (forward region)
TH1F * m_h1_MC_dau0_costheta
histogram of MCParticle daughter 0's cos(theta)
TH1F * m_h1_MC_dau1_theta
histogram of MCParticle daughter 1's theta
TH1F * m_h1_track_dau1_p
histogram of Track daughter 1's p
TH1F * m_h1_MC_Mother_PDG
histogram of MCParticle mother's PDG code
TH1F * m_h1_MC_dau0_Mother_cosAngle
histogram of MCParticle daughter 0's and mother's cos(opening-angle)
TH1F * m_h1_RecoTrack_dau0_theta
histogram of RecoTrack daughter 0's theta
TH3F * m_h3_MC_dau0
histogram of MCParticle daughter 0's pt vs theta vs phi
TH1F * m_h1_track_dau0_pt
histogram of Track daughter 0's pt
TH2F * m_h2_MC_Mother_2D_BP
histogram of MCParticle mother's pt vs theta (beam pipe)
TH1F * m_h1_MC_dau1_p
histogram of MCParticle daughter 1's p
TH1F * m_h1_track_dau0_Mother_cosAngle
histogram of Track daughter 0's and mother's cos(opening-angle)
TH1F * m_h1_track_dau0_z0
histogram of Track daughter 0's z0
TH1F * m_h1_V0_phi_BW
histogram of V0 mother's phi (backward region)
TH1F * m_h1_RecoTrack_dau1_pz
histogram of RecoTrack daughter 1's pz
TH3F * m_h3_V0
histogram of V0 mother's pt vs theta vs phi
TH1F * m_h1_RecoTrack_dau1_ptMother
histogram of RecoTrack daughter 1's mother's pt
TH1F * m_h1_MC_dau1_pt
histogram of MCParticle daughter 1's pt
TH1F * m_h1_track_dau0_p
histogram of Track daughter 0's p
TH2F * m_h2_RecoTrack_Mother_2D
histogram of RecoTrack mother's pt vs theta
static int nMatchedDaughters(const MCParticle &the_mcParticle)
get the number of matched daughters of the MCParticle
TH1F * m_h1_MC_Mother_p
histogram of MCParticle mother's p
TH2F * m_h2_MC_dau1_2D
histogram of MCParticle daughter 1's pt vs theta
TH3F * m_h3_MC_dau1
histogram of MCParticle daughter 1's pt vs theta vs phi
TH2F * m_h2_track_dau1_pVScostheta
histogram of Track daughter 1's p vs cos(theta)
TH1F * m_h1_RecoTrack_Mother_pz
histogram of RecoTrack mother's pz
TH1F * m_h1_MC_Mother_phi_BW
histogram of MCParticle mother's phi (backward region)
TH1F * m_h1_V0_p
histogram of V0 mother's p
TH1F * m_h1_RecoTrack_dau0_thetaMother
histogram of RecoTrack daughter 0's mother's theta
TH1F * m_h1_MC_dau0_phi_BW
histogram of MCParticle daughter 0's phi (backward region)
TH2F * m_h2_track_dau1_2D
histogram of Track daughter 1's pt vs theta
TH1F * m_h1_RecoTrack_Mother_phi_FW
histogram of RecoTrack mother's phi (forward region)
TH1F * m_h1_RecoTrack_Mother_costheta
histogram of RecoTrack mother's cos(theta)
TH1F * m_h1_RecoTrack_dau0_z0
histogram of RecoTrack daughter 0's z0
TH2F * m_h2_track_dau0_2D_BP
histogram of Track daughter 0's pt vs theta (beam pipe)
TH1F * m_h1_MC_dau0_theta
histogram of MCParticle daughter 0's theta
TH1F * m_h1_MC_dau1_phiMother_FW
histogram of MCParticle daughter 1's mother's phi (forward region)
TH2F * m_h2_RecoTrack_dau0_2DMother
histogram of RecoTrack daughter 0's mother's pt vs theta
TH1F * m_h1_RecoTrack_dau1_phi_barrel
histogram of RecoTrack daughter 1's phi (barrel region)
TH1F * m_h1_RecoTrack_dau1_theta
histogram of RecoTrack daughter 1's theta
TH2F * m_h2_RecoTrack_dau1_2D
histogram of RecoTrack daughter 1's pt vs theta
TH3F * m_h3_RecoTrack_dau0
histogram of RecoTrack daughter 0's pt vs theta vs phi
TH2F * m_h2_RecoTrack_dau0_2D
histogram of RecoTrack daughter 0's pt vs theta
MCParticle * m_MCDaughter0
daughter 0 of a decayed MCParticle
TH1F * m_h1_MC_dau0_phiMother_barrel
histogram of MCParticle daughter 0's mother's phi (barrel region)
TH1F * m_h1_MC_dau0_ptMother
histogram of MCParticle daughter 0's mother's pt
TH1F * m_h1_track_dau0_d0
list of histograms filled per Tracks/V0 found in the event
TH1F * m_h1_RecoTrack_dau0_phiMother_barrel
histogram of RecoTrack daughter 0's mother's phi (barrel region)
TH1F * m_h1_track_dau1_costheta
histogram of Track daughter 1's cos(theta)
TH2F * m_h2_RecoTrack_dau1_2D_BP
histogram of RecoTrack daughter 1's pt vs theta (beam pipe)
TH1F * m_h1_MC_dau1_phiMother_BW
histogram of MCParticle daughter 1's mother's phi (backward region)
TH1F * m_h1_MC_dau1_d0
histogram of MCParticle daughter 1's d0
TH1F * m_h1_MC_dau1_phi_FW
histogram of MCParticle daughter 1's phi (forward region)
TH1F * m_h1_MC_dau1_phiMother_total
histogram of MCParticle daughter 1's mother's phi
TH2F * m_h2_MC_dau0_2DMother
histogram of MCParticle daughter 0's mother's pt vs theta
TH1F * m_h1_MC_dau0_phi_FW
histogram of MCParticle daughter 0's phi (forward region)
TH1F * m_h1_track_dau0_phi_BW
histogram of Track daughter 0's phi (backward region)
TH1F * m_h1_MC_dau0_phiMother_BW
histogram of MCParticle daughter 0's mother's phi (backward region)
TH2F * m_h2_track_dau0_2DMother
histogram of Track daughter 0's mother's pt vs theta
TH1F * m_h1_MC_dau0_pz
histogram of MCParticle daughter 0's pz
TH1F * m_h1_track_dau0_phiMother_FW
histogram of Track daughter 0's mother's phi (forward region)
TH1F * m_h1_MC_Mother_phi_barrel
histogram of MCParticle mother's phi (barrel region)
static bool isLambda0(const MCParticle &the_mcParticle)
determine if the MCParticle is a Lambda0
TH1F * m_h1_MC_dau1_costheta
histogram of MCParticle daughter 1's cos(theta)
TH2F * m_h2_RecoTrack_dau1_2DMother
histogram of RecoTrack daughter 1's mother's pt vs theta
TH1F * m_h1_track_dau1_theta
histogram of Track daughter 1's theta
TH3F * m_h3_MC_Mother
histogram of MCParticle mother's pt vs theta vs phi
TH1F * m_h1_MC_dau1_phi_barrel
histogram of MCParticle daughter 1's phi (barrel region)
TH1F * m_h1_RecoTrack_Mother_pt
histogram of RecoTrack mother's pt
TH1F * m_h1_RecoTrack_dau1_phiMother_FW
histogram of RecoTrack daughter 1's mother's phi (forward region)
TH3F * m_h3_track_dau0
histogram of Track daughter 0's pt vs theta vs phi
TH1F * m_h1_track_dau1_phi_FW
histogram of Track daughter 1's phi (forward region)
TH1F * m_h1_RecoTrack_dau1_phiMother_BW
histogram of RecoTrack daughter 1's mother's phi (backward region)
TH2F * m_h2_MC_dau0_pVScostheta
histogram of MCParticle daughter 0's p vs cos(theta)
TH1F * m_h1_RecoTrack_dau0_phi
histogram of RecoTrack daughter 0's phi
TH1F * m_h1_RecoTrack_dau0_costheta
histogram of RecoTrack daughter 0's cos(theta)
TH2F * m_h2_MC_dau0_2D
histogram of MCParticle daughter 0's pt vs theta
TH1F * m_h1_MC_dau0_p
histogram of MCParticle daughter 0's p
TH1F * m_h1_RecoTrack_dau1_d0
histogram of RecoTrack daughter 1's d0
TH2F * m_h2_MC_dau1_2DMother
histogram of MCParticle daughter 1's mother's pt vs theta
TH1F * m_h1_RecoTrack_dau1_thetaMother
histogram of RecoTrack daughter 1's mother's theta
TH1F * m_h1_MC_dau0_phiMother_FW
histogram of MCParticle daughter 0's mother's phi (forward region)
TH2F * m_h2_V0_Mother_pVScostheta
histogram of V0 mother's p vs cos(theta)
TH1F * m_h1_track_dau1_phiMother_FW
histogram of Track daughter 1's mother's phi (forward region)
TH1F * m_h1_RecoTrack_Mother_phi_BW
histogram of RecoTrack mother's phi (backward region)
TH1F * m_h1_MC_Mother_pz
histogram of MCParticle mother's pz
TH1F * m_h1_track_dau0_thetaMother
histogram of Track daughter 0's mother's theta
TH1F * m_h1_MC_dau1_phiMother_barrel
histogram of MCParticle daughter 1's mother's phi (barrel region)
TH1F * m_h1_MC_dau1_z0
histogram of MCParticle daughter 1's z0
TH1F * m_h1_V0_theta
histogram of V0 mother's theta
TH1F * m_h1_MC_dau0_phiMother_total
histogram of MCParticle daughter 0's mother's phi
TH1F * m_h1_MC_Mother_costheta
histogram of MCParticle mother's cos(theta)
TH1F * m_h1_RecoTrack_Mother_phi
histogram of RecoTrack mother's phi
TH1F * m_h1_track_dau0_phi
histogram of Track daughter 0's phi
TH1F * m_h1_RecoTrack_dau1_pt
histogram of RecoTrack daughter 1's pt
TH1F * m_h1_track_dau1_phiMother_total
histogram of Track daughter 1's mother's phi
TH1F * m_h1_RecoTrack_dau0_p
histogram of RecoTrack daughter 0's p
TH1F * m_h1_RecoTrack_dau0_Mother_cosAngle
histogram of RecoTrack daughter 0's and mother's cos(opening-angle)
TH1F * m_h1_track_dau0_phiMother_BW
histogram of Track daughter 0's mother's phi (backward region)
TH1F * m_h1_MC_dau0_d0
list of histograms filled per MCParticle found in the event
StoreArray< MCParticle > m_MCParticles
MCParticle StoreArray.
TH1F * m_h1_RecoTrack_dau0_pt
histogram of RecoTrack daughter 0's pt
TH2F * m_h2_MC_dau0_2D_BP
histogram of MCParticle daughter 0's pt vs theta (beam pipe)
TH1F * m_h1_track_dau1_phiMother_barrel
histogram of Track daughter 1's mother's phi (barrel region)
TH1F * m_h1_RecoTrack_dau0_phi_barrel
histogram of RecoTrack daughter 0's phi (barrel region)
TH1F * m_h1_MC_Mother_theta
histogram of MCParticle mother's theta
TH1F * m_h1_track_dau1_phiMother_BW
histogram of Track daughter 1's mother's phi (backward region)
TH2F * m_h2_RecoTrack_dau0_pVScostheta
histogram of RecoTrack daughter 0's p vs cos(theta)
MCParticle * m_MCDaughter1
daughter 1 of a decayed MCParticle
TH1F * m_h1_RecoTrack_dau1_phiMother_barrel
histogram of RecoTrack daughter 1's mother's phi (barrel region)
TH2F * m_h2_track_dau1_2D_BP
histogram of Track daughter 1's pt vs theta (beam pipe)
TH1F * m_h1_MC_dau1_phi
histogram of MCParticle daughter 1's phi
TH2F * m_h2_MC_Mother_2D
histogram of MCParticle mother's pt vs theta
TH1F * m_h1_track_dau1_d0
histogram of Track daughter 1's d0
TH1F * m_h1_track_dau0_phi_FW
histogram of Track daughter 0's phi (forward region)
TH1F * m_h1_MC_dau0_phi_barrel
histogram of MCParticle daughter 0's phi (barrel region)
TH1F * m_h1_MC_dau1_pz
histogram of MCParticle daughter 1's pz
TH1F * m_h1_track_dau1_phi_BW
histogram of Track daughter 1's phi (backward region)
TH1F * m_h1_RecoTrack_Mother_p
histogram of RecoTrack mother's p
TH1F * m_h1_track_dau1_thetaMother
histogram of Track daughter 1's mother's theta
size_t size() const
Get number of relations.
static const double T
[tesla]
Definition Unit.h:120
static void getField(const double *pos, double *field)
return the magnetic field at a given position.

◆ exposePythonAPI()

void exposePythonAPI ( )
staticinherited

Exposes methods of the Module class to Python.

Definition at line 325 of file Module.cc.

326{
327 // to avoid confusion between std::arg and boost::python::arg we want a shorthand namespace as well
328 namespace bp = boost::python;
329
330 docstring_options options(true, true, false); //userdef, py sigs, c++ sigs
331
332 void (Module::*setReturnValueInt)(int) = &Module::setReturnValue;
333
334 enum_<Module::EAfterConditionPath>("AfterConditionPath",
335 R"(Determines execution behaviour after a conditional path has been executed:
336
337.. attribute:: END
338
339 End processing of this path after the conditional path. (this is the default for if_value() etc.)
340
341.. attribute:: CONTINUE
342
343 After the conditional path, resume execution after this module.)")
344 .value("END", Module::EAfterConditionPath::c_End)
345 .value("CONTINUE", Module::EAfterConditionPath::c_Continue)
346 ;
347
348 /* Do not change the names of >, <, ... we use them to serialize conditional paths */
349 enum_<Belle2::ModuleCondition::EConditionOperators>("ConditionOperator")
356 ;
357
358 enum_<Module::EModulePropFlags>("ModulePropFlags",
359 R"(Flags to indicate certain low-level features of modules, see :func:`Module.set_property_flags()`, :func:`Module.has_properties()`. Most useful flags are:
360
361.. attribute:: PARALLELPROCESSINGCERTIFIED
362
363 This module can be run in parallel processing mode safely (All I/O must be done through the data store, in particular, the module must not write any files.)
364
365.. attribute:: HISTOGRAMMANAGER
366
367 This module is used to manage histograms accumulated by other modules
368
369.. attribute:: TERMINATEINALLPROCESSES
370
371 When using parallel processing, call this module's terminate() function in all processes. This will also ensure that there is exactly one process (single-core if no parallel modules found) or at least one input, one main and one output process.
372)")
373 .value("INPUT", Module::EModulePropFlags::c_Input)
374 .value("OUTPUT", Module::EModulePropFlags::c_Output)
375 .value("PARALLELPROCESSINGCERTIFIED", Module::EModulePropFlags::c_ParallelProcessingCertified)
376 .value("HISTOGRAMMANAGER", Module::EModulePropFlags::c_HistogramManager)
377 .value("INTERNALSERIALIZER", Module::EModulePropFlags::c_InternalSerializer)
378 .value("TERMINATEINALLPROCESSES", Module::EModulePropFlags::c_TerminateInAllProcesses)
379 ;
380
381 //Python class definition
382 class_<Module, PyModule> module("Module", R"(
383Base class for Modules.
384
385A module is the smallest building block of the framework.
386A typical event processing chain consists of a Path containing
387modules. By inheriting from this base class, various types of
388modules can be created. To use a module, please refer to
389:func:`Path.add_module()`. A list of modules is available by running
390``basf2 -m`` or ``basf2 -m package``, detailed information on parameters is
391given by e.g. ``basf2 -m RootInput``.
392
393The 'Module Development' section in the manual provides detailed information
394on how to create modules, setting parameters, or using return values/conditions:
395https://xwiki.desy.de/xwiki/rest/p/f4fa4/#HModuleDevelopment
396
397)");
398 module
399 .def("__str__", &Module::getPathString)
400 .def("name", &Module::getName, return_value_policy<copy_const_reference>(),
401 "Returns the name of the module. Can be changed via :func:`set_name() <Module.set_name()>`, use :func:`type() <Module.type()>` for identifying a particular module class.")
402 .def("type", &Module::getType, return_value_policy<copy_const_reference>(),
403 "Returns the type of the module (i.e. class name minus 'Module')")
404 .def("set_name", &Module::setName, args("name"), R"(
405Set custom name, e.g. to distinguish multiple modules of the same type.
406
407>>> path.add_module('EventInfoSetter')
408>>> ro = path.add_module('RootOutput', branchNames=['EventMetaData'])
409>>> ro.set_name('RootOutput_metadata_only')
410>>> print(path)
411[EventInfoSetter -> RootOutput_metadata_only]
412
413)")
414 .def("description", &Module::getDescription, return_value_policy<copy_const_reference>(),
415 "Returns the description of this module.")
416 .def("package", &Module::getPackage, return_value_policy<copy_const_reference>(),
417 "Returns the package this module belongs to.")
418 .def("available_params", &_getParamInfoListPython,
419 "Return list of all module parameters as `ModuleParamInfo` instances")
420 .def("has_properties", &Module::hasProperties, (bp::arg("properties")),
421 R"DOCSTRING(Allows to check if the module has the given properties out of `ModulePropFlags` set.
422
423>>> if module.has_properties(ModulePropFlags.PARALLELPROCESSINGCERTIFIED):
424>>> ...
425
426Parameters:
427 properties (int): bitmask of `ModulePropFlags` to check for.
428)DOCSTRING")
429 .def("set_property_flags", &Module::setPropertyFlags, args("property_mask"),
430 "Set module properties in the form of an OR combination of `ModulePropFlags`.");
431 {
432 // python signature is too crowded, make ourselves
433 docstring_options subOptions(true, false, false); //userdef, py sigs, c++ sigs
434 module
435 .def("if_value", &Module::if_value,
436 (bp::arg("expression"), bp::arg("condition_path"), bp::arg("after_condition_path")= Module::EAfterConditionPath::c_End),
437 R"DOCSTRING(if_value(expression, condition_path, after_condition_path=AfterConditionPath.END)
438
439Sets a conditional sub path which will be executed after this
440module if the return value set in the module passes the given ``expression``.
441
442Modules can define a return value (int or bool) using ``setReturnValue()``,
443which can be used in the steering file to split the Path based on this value, for example
444
445>>> module_with_condition.if_value("<1", another_path)
446
447In case the return value of the ``module_with_condition`` for a given event is
448less than 1, the execution will be diverted into ``another_path`` for this event.
449
450You could for example set a special return value if an error occurs, and divert
451the execution into a path containing :b2:mod:`RootOutput` if it is found;
452saving only the data producing/produced by the error.
453
454After a conditional path has executed, basf2 will by default stop processing
455the path for this event. This behaviour can be changed by setting the
456``after_condition_path`` argument.
457
458Parameters:
459 expression (str): Expression to determine if the conditional path should be executed.
460 This should be one of the comparison operators ``<``, ``>``, ``<=``,
461 ``>=``, ``==``, or ``!=`` followed by a numerical value for the return value
462 condition_path (Path): path to execute in case the expression is fulfilled
463 after_condition_path (AfterConditionPath): What to do once the ``condition_path`` has been executed.
464)DOCSTRING")
465 .def("if_false", &Module::if_false,
466 (bp::arg("condition_path"), bp::arg("after_condition_path")= Module::EAfterConditionPath::c_End),
467 R"DOC(if_false(condition_path, after_condition_path=AfterConditionPath.END)
468
469Sets a conditional sub path which will be executed after this module if
470the return value of the module evaluates to False. This is equivalent to
471calling `if_value` with ``expression=\"<1\"``)DOC")
472 .def("if_true", &Module::if_true,
473 (bp::arg("condition_path"), bp::arg("after_condition_path")= Module::EAfterConditionPath::c_End),
474 R"DOC(if_true(condition_path, after_condition_path=AfterConditionPath.END)
475
476Sets a conditional sub path which will be executed after this module if
477the return value of the module evaluates to True. It is equivalent to
478calling `if_value` with ``expression=\">=1\"``)DOC");
479 }
480 module
481 .def("has_condition", &Module::hasCondition,
482 "Return true if a conditional path has been set for this module "
483 "using `if_value`, `if_true` or `if_false`")
484 .def("get_all_condition_paths", &_getAllConditionPathsPython,
485 "Return a list of all conditional paths set for this module using "
486 "`if_value`, `if_true` or `if_false`")
487 .def("get_all_conditions", &_getAllConditionsPython,
488 "Return a list of all conditional path expressions set for this module using "
489 "`if_value`, `if_true` or `if_false`")
490 .add_property("logging", make_function(&Module::getLogConfig, return_value_policy<reference_existing_object>()),
491 &Module::setLogConfig)
@ c_GE
Greater or equal than: ">=".
@ c_SE
Smaller or equal than: "<=".
@ c_GT
Greater than: ">".
@ c_NE
Not equal: "!=".
@ c_EQ
Equal: "=" or "==".
@ c_ST
Smaller than: "<".
void if_value(const std::string &expression, const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
Add a condition to the module.
Definition Module.cc:79
void if_true(const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
A simplified version to set the condition of the module.
Definition Module.cc:90
void setReturnValue(int value)
Sets the return value for this module as integer.
Definition Module.cc:220
@ c_HistogramManager
This module is used to manage histograms accumulated by other modules.
Definition Module.h:81
@ c_Input
This module is an input module (reads data).
Definition Module.h:78
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
Definition Module.h:80
@ c_InternalSerializer
This module is an internal serializer/deserializer for parallel processing.
Definition Module.h:82
@ c_Output
This module is an output module (writes data).
Definition Module.h:79
@ c_TerminateInAllProcesses
When using parallel processing, call this module's terminate() function in all processes().
Definition Module.h:83
void if_false(const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
A simplified version to add a condition to the module.
Definition Module.cc:85
ModuleCondition::EAfterConditionPath EAfterConditionPath
Forward the EAfterConditionPath definition from the ModuleCondition.
Definition Module.h:88

◆ geoAcc1D()

TH1F * geoAcc1D ( TH1F * h1_den,
TH1F * h1_num,
const char * name,
const char * title,
TList * histoList = nullptr )
inherited

Create a 1D efficiency histogram for geometric acceptance and add it to the TList of 1D-histograms.

Definition at line 580 of file PerformanceEvaluationBaseClass.cc.

581{
582 TH1F* h = dynamic_cast<TH1F*>(duplicateHistogram(name, title, h1_den, histoList));
583 h->GetYaxis()->SetRangeUser(0., 1);
584
585 for (int bin = 0; bin < h->GetXaxis()->GetNbins(); bin++) {
586 float num = h1_num->GetBinContent(bin + 1);
587 float den = h1_den->GetBinContent(bin + 1);
588 double eff = 0.;
589 double err = 0.;
590
591 if (den > 0) {
592 eff = (double)num / den;
593 err = sqrt(eff * (1 - eff)) / sqrt(den);
594 }
595 h->SetBinContent(bin + 1, eff);
596 h->SetBinError(bin + 1, err);
597 }
598
599 if (histoList)
600 histoList->Add(h);
601
602 return h;
603}

◆ geoAcc2D()

TH2F * geoAcc2D ( TH2F * h2_den,
TH2F * h2_num,
const char * name,
const char * title,
TList * histoList = nullptr )
inherited

Create a 2D efficiency histogram for geometric acceptance and add it to the TList of 2D-histograms.

Definition at line 605 of file PerformanceEvaluationBaseClass.cc.

607{
608 std::string err_char = "_err";
609 std::string addTitle = "Errors, ";
610
611 std::string error = std::string(name) + err_char;
612 std::string titleErr = addTitle + std::string(title);
613
614 TH2F* h2[2];
615 h2[0] = dynamic_cast<TH2F*>(duplicateHistogram(name, title, h2_den, histoList));
616 h2[1] = dynamic_cast<TH2F*>(duplicateHistogram(error.c_str(), titleErr.c_str(), h2_den, histoList));
617
618 for (int binX = 0; binX < h2[0]->GetXaxis()->GetNbins(); binX++) {
619 for (int binY = 0; binY < h2[0]->GetYaxis()->GetNbins(); binY++) {
620 float num = h2_num->GetBinContent(binX + 1, binY + 1);
621 float den = h2_den->GetBinContent(binX + 1, binY + 1);
622 double eff = 0.;
623 double err = 0.;
624
625 if (den > 0) {
626 eff = (double)num / den;
627 err = sqrt(eff * (1 - eff)) / sqrt(den);
628 }
629 h2[0]->SetBinContent(binX + 1, binY + 1, eff);
630 h2[0]->SetBinError(binX + 1, binY + 1, err);
631 h2[1]->SetBinContent(binX + 1, binY + 1, err);
632 }
633 }
634
635 if (histoList) {
636 histoList->Add(h2[0]);
637 histoList->Add(h2[1]);
638 }
639
640 return *h2;
641
642}

◆ getAfterConditionPath()

Module::EAfterConditionPath getAfterConditionPath ( ) const
inherited

What to do after the conditional path is finished.

(defaults to c_End if no condition is set)

Definition at line 133 of file Module.cc.

134{
135 if (m_conditions.empty()) return EAfterConditionPath::c_End;
136
137 //okay, a condition was set for this Module...
138 if (!m_hasReturnValue) {
139 B2FATAL("A condition was set for '" << getName() << "', but the module did not set a return value!");
140 }
141
142 for (const auto& condition : m_conditions) {
143 if (condition.evaluate(m_returnValue)) {
144 return condition.getAfterConditionPath();
145 }
146 }
147
148 return EAfterConditionPath::c_End;
149}

◆ getAllConditionPaths()

std::vector< std::shared_ptr< Path > > getAllConditionPaths ( ) const
inherited

Return all condition paths currently set (no matter if the condition is true or not).

Definition at line 150 of file Module.cc.

151{
152 std::vector<std::shared_ptr<Path>> allConditionPaths;
153 for (const auto& condition : m_conditions) {
154 allConditionPaths.push_back(condition.getPath());
155 }
156
157 return allConditionPaths;
158}

◆ getAllConditions()

const std::vector< ModuleCondition > & getAllConditions ( ) const
inlineinherited

Return all set conditions for this module.

Definition at line 323 of file Module.h.

324 {
325 return m_conditions;
326 }

◆ getCondition()

const ModuleCondition * getCondition ( ) const
inlineinherited

Return a pointer to the first condition (or nullptr, if none was set)

Definition at line 313 of file Module.h.

314 {
315 if (m_conditions.empty()) {
316 return nullptr;
317 } else {
318 return &m_conditions.front();
319 }
320 }

◆ getConditionPath()

std::shared_ptr< Path > getConditionPath ( ) const
inherited

Returns the path of the last true condition (if there is at least one, else reaturn a null pointer).

Definition at line 113 of file Module.cc.

114{
115 PathPtr p;
116 if (m_conditions.empty()) return p;
117
118 //okay, a condition was set for this Module...
119 if (!m_hasReturnValue) {
120 B2FATAL("A condition was set for '" << getName() << "', but the module did not set a return value!");
121 }
122
123 for (const auto& condition : m_conditions) {
124 if (condition.evaluate(m_returnValue)) {
125 return condition.getPath();
126 }
127 }
128
129 // if none of the conditions were true, return a null pointer.
130 return p;
131}
std::shared_ptr< Path > PathPtr
Defines a pointer to a path object as a boost shared pointer.
Definition Path.h:35

◆ getDescription()

const std::string & getDescription ( ) const
inlineinherited

Returns the description of the module.

Definition at line 201 of file Module.h.

201{return m_description;}

◆ getFileNames()

virtual std::vector< std::string > getFileNames ( bool outputFiles)
inlinevirtualinherited

Return a list of output filenames for this modules.

This will be called when basf2 is run with "--dry-run" if the module has set either the c_Input or c_Output properties.

If the parameter outputFiles is false (for modules with c_Input) the list of input filenames should be returned (if any). If outputFiles is true (for modules with c_Output) the list of output files should be returned (if any).

If a module has sat both properties this member is called twice, once for each property.

The module should return the actual list of requested input or produced output filenames (including handling of input/output overrides) so that the grid system can handle input/output files correctly.

This function should return the same value when called multiple times. This is especially important when taking the input/output overrides from Environment as they get consumed when obtained so the finalized list of output files should be stored for subsequent calls.

Reimplemented in RootInputModule, RootOutputModule, and StorageRootOutputModule.

Definition at line 133 of file Module.h.

134 {
135 return std::vector<std::string>();
136 }

◆ getLogConfig()

LogConfig & getLogConfig ( )
inlineinherited

Returns the log system configuration.

Definition at line 224 of file Module.h.

224{return m_logConfig;}

◆ getModules()

std::list< ModulePtr > getModules ( ) const
inlineoverrideprivatevirtualinherited

no submodules, return empty list

Implements PathElement.

Definition at line 505 of file Module.h.

505{ return std::list<ModulePtr>(); }

◆ getName()

const std::string & getName ( ) const
inlineinherited

Returns the name of the module.

This can be changed via e.g. set_name() in the steering file to give more useful names if there is more than one module of the same type.

For identifying the type of a module, using getType() (or type() in Python) is recommended.

Definition at line 186 of file Module.h.

186{return m_name;}

◆ getPackage()

const std::string & getPackage ( ) const
inlineinherited

Returns the package this module is in.

Definition at line 196 of file Module.h.

196{return m_package;}

◆ getParamInfoListPython()

std::shared_ptr< boost::python::list > getParamInfoListPython ( ) const
inherited

Returns a python list of all parameters.

Each item in the list consists of the name of the parameter, a string describing its type, a python list of all default values and the description of the parameter.

Returns
A python list containing the parameters of this parameter list.

Definition at line 279 of file Module.cc.

280{
282}
std::shared_ptr< boost::python::list > getParamInfoListPython() const
Returns a python list of all parameters.

◆ getParamList()

const ModuleParamList & getParamList ( ) const
inlineinherited

Return module param list.

Definition at line 362 of file Module.h.

362{ return m_moduleParamList; }

◆ getPathString()

std::string getPathString ( ) const
overrideprivatevirtualinherited

return the module name.

Implements PathElement.

Definition at line 192 of file Module.cc.

193{
194
195 std::string output = getName();
196
197 for (const auto& condition : m_conditions) {
198 output += condition.getString();
199 }
200
201 return output;
202}

◆ getReturnValue()

int getReturnValue ( ) const
inlineinherited

Return the return value set by this module.

This value is only meaningful if hasReturnValue() is true

Definition at line 380 of file Module.h.

380{ return m_returnValue; }

◆ getType()

const std::string & getType ( ) const
inherited

Returns the type of the module (i.e.

class name minus 'Module')

Definition at line 41 of file Module.cc.

42{
43 if (m_type.empty())
44 B2FATAL("Module type not set for " << getName());
45 return m_type;
46}
std::string m_type
The type of the module, saved as a string.
Definition Module.h:508

◆ hasCondition()

bool hasCondition ( ) const
inlineinherited

Returns true if at least one condition was set for the module.

Definition at line 310 of file Module.h.

310{ return not m_conditions.empty(); };

◆ hasProperties()

bool hasProperties ( unsigned int propertyFlags) const
inherited

Returns true if all specified property flags are available in this module.

Parameters
propertyFlagsOred EModulePropFlags which should be compared with the module flags.

Definition at line 160 of file Module.cc.

161{
162 return (propertyFlags & m_propertyFlags) == propertyFlags;
163}

◆ hasReturnValue()

bool hasReturnValue ( ) const
inlineinherited

Return true if this module has a valid return value set.

Definition at line 377 of file Module.h.

377{ return m_hasReturnValue; }

◆ hasUnsetForcedParams()

bool hasUnsetForcedParams ( ) const
inherited

Returns true and prints error message if the module has unset parameters which the user has to set in the steering file.

Definition at line 166 of file Module.cc.

167{
169 std::string allMissing = "";
170 for (const auto& s : missing)
171 allMissing += s + " ";
172 if (!missing.empty())
173 B2ERROR("The following required parameters of Module '" << getName() << "' were not specified: " << allMissing <<
174 "\nPlease add them to your steering file.");
175 return !missing.empty();
176}
std::vector< std::string > getUnsetForcedParams() const
Returns list of unset parameters (if they are required to have a value.

◆ if_false()

void if_false ( const std::shared_ptr< Path > & path,
EAfterConditionPath afterConditionPath = EAfterConditionPath::c_End )
inherited

A simplified version to add a condition to the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

It is equivalent to the if_value() method, using the expression "<1". This method is meant to be used together with the setReturnValue(bool value) method.

Parameters
pathShared pointer to the Path which will be executed if the return value is false.
afterConditionPathWhat to do after executing 'path'.

Definition at line 85 of file Module.cc.

86{
87 if_value("<1", path, afterConditionPath);
88}

◆ if_true()

void if_true ( const std::shared_ptr< Path > & path,
EAfterConditionPath afterConditionPath = EAfterConditionPath::c_End )
inherited

A simplified version to set the condition of the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

It is equivalent to the if_value() method, using the expression ">=1". This method is meant to be used together with the setReturnValue(bool value) method.

Parameters
pathShared pointer to the Path which will be executed if the return value is true.
afterConditionPathWhat to do after executing 'path'.

Definition at line 90 of file Module.cc.

91{
92 if_value(">=1", path, afterConditionPath);
93}

◆ if_value()

void if_value ( const std::string & expression,
const std::shared_ptr< Path > & path,
EAfterConditionPath afterConditionPath = EAfterConditionPath::c_End )
inherited

Add a condition to the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

See https://xwiki.desy.de/xwiki/rest/p/a94f2 or ModuleCondition for a description of the syntax.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

Parameters
expressionThe expression of the condition.
pathShared pointer to the Path which will be executed if the condition is evaluated to true.
afterConditionPathWhat to do after executing 'path'.

Definition at line 79 of file Module.cc.

80{
81 m_conditions.emplace_back(expression, path, afterConditionPath);
82}

◆ initialize()

void initialize ( void )
overridevirtual

Initializer.

Reimplemented from Module.

Definition at line 60 of file EffPlotsModule.cc.

61{
63 StoreArray<V0ValidationVertex> v0ValidationVertices;
64 v0ValidationVertices.isRequired(m_V0sName);
65
66 StoreArray<TrackFitResult> trackFitResults(m_TFRColName);
67 trackFitResults.isRequired();
68
69 StoreArray<Track> tracks(m_TrackColName);
70 tracks.isRequired();
71
72 StoreArray<RecoTrack> recoTracks;
74
75 //create list of histograms to be saved in the rootfile
76 m_histoList = new TList;
77 m_histoList_MCParticles = new TList;
78 m_histoList_RecoTracks = new TList;
79 m_histoList_Tracks = new TList;
80 m_histoList_Efficiencies = new TList;
81 m_histoList_GA = new TList;
82 m_histoList_check = new TList;
83
84 //set the ROOT File
85 m_rootFilePtr = new TFile(m_rootFileName.c_str(), "RECREATE");
86
87 Double_t bins_pt_new[25 + 1] = {0., 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.6, 2.8, 3., 3.2, 3.4};
88
89 Double_t bins_theta[10 + 1];
90 Double_t width_theta = TMath::Pi() / 10;
91 for (unsigned int bin = 0; bin < 10 + 1; bin++)
92 bins_theta[bin] = bin * width_theta;
93
94 Double_t bins_phi[14 + 1];
95 Double_t width_phi = 2 * TMath::Pi() / 14;
96 for (unsigned int bin = 0; bin < 14 + 1; bin++)
97 bins_phi[bin] = - TMath::Pi() + bin * width_phi;
98
99 Double_t bins_costheta[20 + 1];
100 Double_t width_cosTheta = 2. / 20;
101 for (unsigned int bin1 = 0; bin1 < 20 + 1; bin1++)
102 bins_costheta[bin1] = - 1 + bin1 * width_cosTheta;
103
104 //create histograms
105
106 //------------------------------------------------------------------//
107 // MC PARTICLES //
108 //------------------------------------------------------------------//
109
110 // MC dau0
111 m_h1_MC_dau0_d0 = createHistogram1D("h1MCdau0D0", "d0 dau_{0}", 100, -10, 10, "d0_{dau_{0}}", m_histoList_MCParticles);
112 m_h1_MC_dau0_z0 = createHistogram1D("h1MCdau0Z0", "z0 dau_{0}", 100, -10, 10, "z0_{dau_{0}}", m_histoList_MCParticles);
113 m_h1_MC_dau0_RMother = createHistogram1D("h1MCdau0RMother", "dau_{0}, R mother", 200, 0, 20, "R mother", m_histoList_MCParticles);
114 m_h3_MC_dau0 = createHistogram3D("h3MCdau0", "entry per MC dau_{0}",
115 25, bins_pt_new, "p_{t} (GeV/c)",
116 10, bins_theta, "#theta",
117 14, bins_phi, "#phi", m_histoList_MCParticles);
118 m_h1_MC_dau0_pt = createHistogram1D("h1MCdau0Pt", "dau_{0}, p_{T}", 25, bins_pt_new, "p_{T} (GeV/c)", m_histoList_MCParticles);
119 m_h1_MC_dau0_pz = createHistogram1D("h1MCdau0Pz", "dau_{0}, p_{z}", 25, bins_pt_new, "p_{z} (GeV/c)", m_histoList_MCParticles);
120 m_h1_MC_dau0_p = createHistogram1D("h1MCdau0P", "dau_{0}, p", 25, bins_pt_new, "p (GeV/c)", m_histoList_MCParticles);
121 m_h1_MC_dau0_theta = createHistogram1D("h1MCdau0Theta", "dau_{0}, #theta", 10, bins_theta, "#theta",
123 m_h1_MC_dau0_costheta = createHistogram1D("h1MCdau0CosTheta", "dau_{0}, cos#theta", 20, bins_costheta, "cos#theta",
125 m_h1_MC_dau0_Mother_cosAngle = createHistogram1D("h1MCdau0MothercosAngle", "cos#theta_{mother,dau_{0}}", 20,
126 bins_costheta, "cos#theta", m_histoList_MCParticles);
127 m_h1_MC_dau0_phi = createHistogram1D("h1MCdau0Phi", "dau_{0}, #phi", 14, bins_phi, "#phi", m_histoList_MCParticles);
128 m_h1_MC_dau0_phi_BW = createHistogram1D("h1MCdau0PhiBW", "dau_{0}, #phi", 14, bins_phi, "#phi", m_histoList_MCParticles);
129 m_h1_MC_dau0_phi_barrel = createHistogram1D("h1MCdau0Phibarrel", "dau_{0}, #phi", 14, bins_phi, "#phi",
131 m_h1_MC_dau0_phi_FW = createHistogram1D("h1MCdau0PhiFW", "dau_{0}, #phi", 14, bins_phi, "#phi", m_histoList_MCParticles);
132
133 m_h1_MC_dau0_phiMother_total = createHistogram1D("h1MCdau0phiMothertotal", "dau_{0}, #phi_{mother}", 14, bins_phi,
134 "#phi_{mother}", m_histoList_MCParticles);
135 m_h1_MC_dau0_phiMother_BW = createHistogram1D("h1MCdau0phiMotherBW", "dau_{0}, #phi_{mother}, BW", 14, bins_phi,
136 "#phi_{mother} BW", m_histoList_MCParticles);
137 m_h1_MC_dau0_phiMother_barrel = createHistogram1D("h1MCdau0phiMotherbarrel", "dau_{0}, #phi_{mother}, barrel", 14, bins_phi,
138 "#phi_{mother} barrel", m_histoList_MCParticles);
139 m_h1_MC_dau0_phiMother_FW = createHistogram1D("h1MCdau0phiMotherFW", "dau_{0}, #phi_{mother}, FW", 14, bins_phi,
140 "#phi_{mother} FW", m_histoList_MCParticles);
141
142 m_h1_MC_dau0_thetaMother = createHistogram1D("h1MCdau0ThetaMother", "dau_{0}, #theta_{mother}", 10, bins_theta,
143 "#theta_{mother}", m_histoList_MCParticles);
144 m_h1_MC_dau0_ptMother = createHistogram1D("h1MCdau0PtMother", "dau_{0}, p_{T,mother}", 25, bins_pt_new, "p_{T,mother} (GeV/c)",
146
147 m_h2_MC_dau0_2D = createHistogram2D("h2MCdau0", "entry per MC dau_{0}",
148 10, bins_theta, "#theta",
149 25, bins_pt_new, "p_{t} (GeV/c)", m_histoList_MCParticles);
150 m_h2_MC_dau0_2D_BP = createHistogram2D("h2MCdau0BP", "entry per MC dau_{0}, beam pipe",
151 10, bins_theta, "#theta",
152 25, bins_pt_new, "p_{t} (GeV/c)", m_histoList_MCParticles);
153
154 m_h2_MC_dau0_2DMother = createHistogram2D("h2MCdau0Mother", "entry mother per MC dau_{0}",
155 10, bins_theta, "#theta_{mother}",
156 25, bins_pt_new, "p_{T,mother} (GeV/c)", m_histoList_MCParticles);
157
158 m_h2_MC_dau0_pVScostheta = createHistogram2D("h2MCdau0pVScostheta", "p_{CM} VS cos(#theta)_{CM}, dau_{0}",
159 20, -1., 1.,
160 "cos(#theta)_{CM}",
161 50, 0., 5.,
162 "p_{CM} [GeV]", m_histoList_MCParticles);
163
164 m_h1_MC_dau0_PDG = createHistogram1D("h1MCdau0PDG", "PDG code, dau_{0}", 4600, -2300, 2300, "PDG", m_histoList_check);
165
166 //MC dau1
167 m_h1_MC_dau1_d0 = createHistogram1D("h1MCdau1D0", "d0 dau_{1}", 100, -10, 10, "d0_{dau_{1}}", m_histoList_MCParticles);
168 m_h1_MC_dau1_z0 = createHistogram1D("h1MCdau1Z0", "z0 dau_{1}", 100, -10, 10, "z0_{dau_{1}}", m_histoList_MCParticles);
169 m_h1_MC_dau1_RMother = createHistogram1D("h1MCdau1RMother", "dau_{1}, R mother", 200, 0, 20, "R mother", m_histoList_MCParticles);
170 m_h3_MC_dau1 = createHistogram3D("h3MCdau1", "entry per MC dau_{1}",
171 25, bins_pt_new, "p_{t} (GeV/c)",
172 10, bins_theta, "#theta",
173 14, bins_phi, "#phi", m_histoList_MCParticles);
174 m_h1_MC_dau1_pt = createHistogram1D("h1MCdau1Pt", "dau_{1}, p_{T}", 25, bins_pt_new, "p_{T} (GeV/c)", m_histoList_MCParticles);
175 m_h1_MC_dau1_pz = createHistogram1D("h1MCdau1Pz", "dau_{1}, p_{z}", 25, bins_pt_new, "p_{z} (GeV/c)", m_histoList_MCParticles);
176 m_h1_MC_dau1_p = createHistogram1D("h1MCdau1P", "dau_{1}, ", 25, bins_pt_new, "p (GeV/c)", m_histoList_MCParticles);
177 m_h1_MC_dau1_theta = createHistogram1D("h1MCdau1Theta", "dau_{1}, #theta", 10, bins_theta, "#theta",
179 m_h1_MC_dau1_costheta = createHistogram1D("h1MCdau1CosTheta", "dau_{1}, cos#theta", 20, bins_costheta, "cos#theta",
181 m_h1_MC_dau1_phi = createHistogram1D("h1MCdau1Phi", "dau_{1}, #phi", 14, bins_phi, "#phi", m_histoList_MCParticles);
182 m_h1_MC_dau1_phi_BW = createHistogram1D("h1MCdau1PhiBW", "dau_{1}, #phi", 14, bins_phi, "#phi", m_histoList_MCParticles);
183 m_h1_MC_dau1_phi_barrel = createHistogram1D("h1MCdau1Phibarrel", "dau_{1}, #phi", 14, bins_phi, "#phi",
185 m_h1_MC_dau1_phi_FW = createHistogram1D("h1MCdau1PhiFW", "dau_{1}, #phi", 14, bins_phi, "#phi", m_histoList_MCParticles);
186
187 m_h1_MC_dau1_Mother_cosAngle = createHistogram1D("h1MCdau1MothercosAngle", "cos#theta_{mother,p}", 20, bins_costheta,
188 "cos#theta", m_histoList_MCParticles);
189
190 m_h1_MC_dau1_phiMother_total = createHistogram1D("h1MCdau1phiMothertotal", "dau_{1}, #phi_{mother}", 14, bins_phi,
191 "#phi_{mother}", m_histoList_MCParticles);
192 m_h1_MC_dau1_phiMother_BW = createHistogram1D("h1MCdau1phiMotherBW", "dau_{1}, #phi_{mother}, BW", 14, bins_phi,
193 "#phi_{mother} BW", m_histoList_MCParticles);
194 m_h1_MC_dau1_phiMother_barrel = createHistogram1D("h1MCdau1phiMotherbarrel", "dau_{1}, #phi_{mother}, barrel", 14, bins_phi,
195 "#phi_{mother} barrel", m_histoList_MCParticles);
196 m_h1_MC_dau1_phiMother_FW = createHistogram1D("h1MCdau1phiMotherFW", "dau_{1}, #phi_{mother}, FW", 14, bins_phi,
197 "#phi_{mother} FW", m_histoList_MCParticles);
198
199 m_h1_MC_dau1_thetaMother = createHistogram1D("h1MCdau1ThetaMother", "dau_{1}, #theta_{mother}", 10, bins_theta,
200 "#theta_{mother}", m_histoList_MCParticles);
201 m_h1_MC_dau1_ptMother = createHistogram1D("h1MCdau1PtMother", "dau_{1}, p_{T,mother}", 25, bins_pt_new, "p_{T,mother} (GeV/c)",
203
204 m_h2_MC_dau1_2D = createHistogram2D("h2MCdau1", "entry per MC dau_{1}",
205 10, bins_theta, "#theta",
206 25, bins_pt_new, "p_{t} (GeV/c)", m_histoList_MCParticles);
207
208 m_h2_MC_dau1_2D_BP = createHistogram2D("h2MCdau1BP", "entry per MC dau_{1}, beam pipe",
209 10, bins_theta, "#theta",
210 25, bins_pt_new, "p_{t} (GeV/c)", m_histoList_MCParticles);
211
212 m_h2_MC_dau1_2DMother = createHistogram2D("h2MCdau1Mother", "entry mother per MC dau_{1}",
213 10, bins_theta, "#theta_{mother}",
214 25, bins_pt_new, "p_{T,mother} (GeV/c)", m_histoList_MCParticles);
215
216 m_h2_MC_dau1_pVScostheta = createHistogram2D("h2MCdau1pVScostheta", "p_{CM} VS cos(#theta)_{CM}, dau_{1}",
217 20, -1., 1.,
218 "cos(#theta)_{CM}",
219 50, 0., 5.,
220 "p_{CM} [GeV]", m_histoList_MCParticles);
221
222 m_h1_MC_dau1_PDG = createHistogram1D("h1MCdau1PDG", "PDG code, dau_{1}", 4600, -2300, 2300, "PDG", m_histoList_check);
223
224 //MC mother
225 m_h1_MC_Mother_RMother = createHistogram1D("h1MCMotherRMother", "mother, R mother", 200, 0, 20, "R mother",
227 m_h3_MC_Mother = createHistogram3D("h3MCMother", "entry per MCmother",
228 25, bins_pt_new, "p_{t} (GeV/c)",
229 10, bins_theta, "#theta",
230 14, bins_phi, "#phi", m_histoList_MCParticles);
231 m_h1_MC_Mother_pt = createHistogram1D("h1MCMotherPt", "mother, p_{T}", 25, bins_pt_new, "p_{T} (GeV/c)",
233 m_h1_MC_Mother_pz = createHistogram1D("h1MCMotherPz", "mother, p_{z}", 25, bins_pt_new, "p_{z} (GeV/c)",
235 m_h1_MC_Mother_p = createHistogram1D("h1MCMotherP", "mother, p", 25, bins_pt_new, "p (GeV/c)", m_histoList_MCParticles);
236 m_h1_MC_Mother_theta = createHistogram1D("h1MCMotherTheta", "mother, #theta", 10, bins_theta, "#theta",
238 m_h1_MC_Mother_costheta = createHistogram1D("h1MCMotherCosTheta", "mother, cos#theta", 20, bins_costheta, "cos#theta",
240 m_h1_MC_Mother_phi = createHistogram1D("h1MCMotherPhi", "mother, #phi", 14, bins_phi, "#phi", m_histoList_MCParticles);
241 m_h1_MC_Mother_phi_BW = createHistogram1D("h1MCMotherPhiBW", "mother, #phi", 14, bins_phi, "#phi", m_histoList_MCParticles);
242 m_h1_MC_Mother_phi_barrel = createHistogram1D("h1MCMotherPhibarrel", "mother, #phi", 14, bins_phi, "#phi",
244 m_h1_MC_Mother_phi_FW = createHistogram1D("h1MCMotherPhiFW", "mother, #phi", 14, bins_phi, "#phi", m_histoList_MCParticles);
245
246 m_h2_MC_Mother_2D = createHistogram2D("h2MCMother", "entry per MCmother",
247 10, bins_theta, "#theta",
248 25, bins_pt_new, "p_{t} (GeV/c)", m_histoList_MCParticles);
249
250 m_h2_MC_Mother_2D_BP = createHistogram2D("h2MCMotherBP", "entry per MCmother, beam pipe",
251 10, bins_theta, "#theta",
252 25, bins_pt_new, "p_{t} (GeV/c)", m_histoList_MCParticles);
253
254 m_h2_MC_Mother_pVScostheta = createHistogram2D("h2MCMotherpVScostheta", "p_{CM} VS cos(#theta)_{CM}, mother",
255 20, -1., 1.,
256 "cos(#theta)_{CM}",
257 50, 0., 5.,
258 "p_{CM} [GeV]", m_histoList_MCParticles);
259
260 m_h1_MC_Mother_PDG = createHistogram1D("h1MCMotherPDG", "PDG code, mother", 6400, -3200, 3200, "PDG", m_histoList_check);
261
262
263 //------------------------------------------------------------------//
264 // TRACKS //
265 //------------------------------------------------------------------//
266
267 //track dau0
268 m_h1_track_dau0_d0 = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0D0", "d0 dau_{0}", m_h1_MC_dau0_d0, m_histoList_Tracks));
269 m_h1_track_dau0_z0 = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0Z0", "z0 dau_{0}", m_h1_MC_dau0_z0, m_histoList_Tracks));
270 m_h1_track_dau0_RMother = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0RMother", "dau_{0}, R mother", m_h1_MC_dau0_RMother,
272 m_h3_track_dau0 = dynamic_cast<TH3F*>(duplicateHistogram("h3trackdau0", "entry per track dau_{0}", m_h3_MC_dau0,
274 m_h1_track_dau0_pt = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0Pt", "p_{T} dau_{0}", m_h1_MC_dau0_pt, m_histoList_Tracks));
275 m_h1_track_dau0_pz = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0Pz", "p_{z} dau_{0}", m_h1_MC_dau0_pz, m_histoList_Tracks));
276 m_h1_track_dau0_p = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0P", "p dau_{0}", m_h1_MC_dau0_p, m_histoList_Tracks));
277 m_h1_track_dau0_theta = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0Theta", "#theta dau_{0}", m_h1_MC_dau0_theta,
279 m_h1_track_dau0_costheta = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0CosTheta", "cos#theta dau_{0}", m_h1_MC_dau0_costheta,
281 m_h1_track_dau0_Mother_cosAngle = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0MothercosAngle", "#alpha_{mother,dau_{0}}",
283 m_h1_track_dau0_phi = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0Phi", "#phi dau_{0}", m_h1_MC_dau0_phi,
285 m_h1_track_dau0_phi_BW = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0PhiBW", "#phi dau_{0}", m_h1_MC_dau0_phi_BW,
287 m_h1_track_dau0_phi_barrel = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0Phibarrel", "#phi dau_{0}", m_h1_MC_dau0_phi_barrel,
289 m_h1_track_dau0_phi_FW = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0PhiFW", "#phi dau_{0}", m_h1_MC_dau0_phi_FW,
291
292 m_h1_track_dau0_phiMother_total = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0PhiMothertotal", "dau_{0}, #phi_{mother}",
294 m_h1_track_dau0_phiMother_BW = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0PhiMotherBW", "dau_{0}, #phi_{mother}, BW",
296 m_h1_track_dau0_phiMother_barrel = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0PhiMotherbarrel",
297 "dau_{0}, #phi_{mother}, barrel",
299 m_h1_track_dau0_phiMother_FW = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0PhiMotherFW", "dau_{0}, #phi_{mother}, FW",
301
302 m_h1_track_dau0_thetaMother = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0ThetaMother", "#theta_{mother} dau_{0}",
304 m_h1_track_dau0_ptMother = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau0PtMother", "p_{T,mother} dau_{0}",
307
308 m_h2_track_dau0_2D = dynamic_cast<TH2F*>(duplicateHistogram("h2trackdau02D", "p_{T} VS #theta, dau_{0}", m_h2_MC_dau0_2D,
310 m_h2_track_dau0_2D_BP = dynamic_cast<TH2F*>(duplicateHistogram("h2trackdau02dBP", "p_{T} VS #theta, dau_{0} BP", m_h2_MC_dau0_2D_BP,
312 m_h2_track_dau0_2DMother = dynamic_cast<TH2F*>(duplicateHistogram("h2trackdau02DMother", "p_{T,mother} VS #theta_{mother}, dau_{0}",
314
315 m_h2_track_dau0_pVScostheta = dynamic_cast<TH2F*>(duplicateHistogram("h2trackdau0pVScostheta", "p VS cos(#theta), dau_{0}",
317
318
319 //track dau1
320 m_h1_track_dau1_d0 = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1D0", "d0 dau_{1}", m_h1_MC_dau1_d0, m_histoList_Tracks));
321 m_h1_track_dau1_z0 = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1Z0", "z0 dau_{1}", m_h1_MC_dau1_z0, m_histoList_Tracks));
322 m_h1_track_dau1_RMother = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1RMother", "p, R mother", m_h1_MC_dau1_RMother,
324 m_h3_track_dau1 = dynamic_cast<TH3F*>(duplicateHistogram("h3trackdau1", "entry per track dau_{1}", m_h3_MC_dau1,
326 m_h1_track_dau1_pt = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1Pt", "p_{T} dau_{1}", m_h1_MC_dau1_pt, m_histoList_Tracks));
327 m_h1_track_dau1_pz = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1Pz", "p_{z} dau_{1}", m_h1_MC_dau1_pz, m_histoList_Tracks));
328 m_h1_track_dau1_p = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1P", "p dau_{1}", m_h1_MC_dau1_p, m_histoList_Tracks));
329 m_h1_track_dau1_theta = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1Theta", "#theta dau_{1}", m_h1_MC_dau1_theta,
331 m_h1_track_dau1_costheta = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1CosTheta", "cos#theta dau_{1}", m_h1_MC_dau1_costheta,
333 m_h1_track_dau1_Mother_cosAngle = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1MothercosAngle", "#alpha_{mother,p}",
335 m_h1_track_dau1_phi = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1Phi", "#phi dau_{1}", m_h1_MC_dau1_phi,
337 m_h1_track_dau1_phi_BW = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1PhiBW", "#phi dau_{1}", m_h1_MC_dau1_phi_BW,
339 m_h1_track_dau1_phi_barrel = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1Phibarrel", "#phi dau_{1}", m_h1_MC_dau1_phi_barrel,
341 m_h1_track_dau1_phi_FW = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1PhiFW", "#phi dau_{1}", m_h1_MC_dau1_phi_FW,
343
344 m_h1_track_dau1_phiMother_total = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1PhiMothertotal", "dau_{1}, #phi_{mother}",
346 m_h1_track_dau1_phiMother_BW = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1PhiMotherBW", "dau_{1}, #phi_{mother}, BW",
348 m_h1_track_dau1_phiMother_barrel = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1PhiMotherbarrel",
349 "dau_{1}, #phi_{mother}, barrel",
351 m_h1_track_dau1_phiMother_FW = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1PhiMotherFW", "dau_{1}, #phi_{mother}, FW",
353
354 m_h1_track_dau1_thetaMother = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1ThetaMother", "#theta_{mother} dau_{1}",
356 m_h1_track_dau1_ptMother = dynamic_cast<TH1F*>(duplicateHistogram("h1trackdau1PtMother", "p_{T,mother} dau_{1}",
359
360 m_h2_track_dau1_2D = dynamic_cast<TH2F*>(duplicateHistogram("h2trackdau12D", "p_{T} VS #theta, dau_{1}", m_h2_MC_dau1_2D,
362 m_h2_track_dau1_2D_BP = dynamic_cast<TH2F*>(duplicateHistogram("h2trackdau12dBP", "p_{T} VS #theta, p BDAU_{1}", m_h2_MC_dau1_2D_BP,
364 m_h2_track_dau1_2DMother = dynamic_cast<TH2F*>(duplicateHistogram("h2trackdau12DMother", "p_{T,mother} VS #theta_{mother}, dau_{1}",
366
367 m_h2_track_dau1_pVScostheta = dynamic_cast<TH2F*>(duplicateHistogram("h2trackdau1pVScostheta", "p VS cos(#theta), dau_{1}",
369
370 //V0
371 m_h1_V0_RMother = dynamic_cast<TH1F*>(duplicateHistogram("h1V0RMother", "mother, R mother", m_h1_MC_Mother_RMother,
373 m_h3_V0 = dynamic_cast<TH3F*>(duplicateHistogram("h3V0", "entry per V0", m_h3_MC_Mother, m_histoList_Tracks));
374 m_h1_V0_pt = dynamic_cast<TH1F*>(duplicateHistogram("h1V0Pt", "p_{T} mother", m_h1_MC_Mother_pt, m_histoList_Tracks));
375 m_h1_V0_pz = dynamic_cast<TH1F*>(duplicateHistogram("h1V0Pz", "p_{z} mother", m_h1_MC_Mother_pz, m_histoList_Tracks));
376 m_h1_V0_p = dynamic_cast<TH1F*>(duplicateHistogram("h1V0P", "p mother", m_h1_MC_Mother_p, m_histoList_Tracks));
377 m_h1_V0_theta = dynamic_cast<TH1F*>(duplicateHistogram("h1V0Theta", "#theta mother", m_h1_MC_Mother_theta, m_histoList_Tracks));
378 m_h1_V0_costheta = dynamic_cast<TH1F*>(duplicateHistogram("h1V0CosTheta", "cos#theta mother", m_h1_MC_Mother_costheta,
380 m_h1_V0_phi = dynamic_cast<TH1F*>(duplicateHistogram("h1V0Phi", "#phi mother", m_h1_MC_Mother_phi, m_histoList_Tracks));
381 m_h1_V0_phi_BW = dynamic_cast<TH1F*>(duplicateHistogram("h1V0PhiBW", "#phi mother", m_h1_MC_Mother_phi_BW, m_histoList_Tracks));
382 m_h1_V0_phi_barrel = dynamic_cast<TH1F*>(duplicateHistogram("h1V0Phibarrel", "#phi mother", m_h1_MC_Mother_phi_barrel,
384 m_h1_V0_phi_FW = dynamic_cast<TH1F*>(duplicateHistogram("h1V0PhiFW", "#phi mother", m_h1_MC_Mother_phi_FW, m_histoList_Tracks));
385
386 m_h2_V0_Mother_2D = dynamic_cast<TH2F*>(duplicateHistogram("h2V0Mother2D", "p_{T} VS #theta, mother", m_h2_MC_Mother_2D,
388 m_h2_V0_Mother_2D_BP = dynamic_cast<TH2F*>(duplicateHistogram("h2V0Mother2dBP", "p_{T} VS #theta, mother BP", m_h2_MC_Mother_2D_BP,
390
391 m_h2_V0_Mother_pVScostheta = dynamic_cast<TH2F*>(duplicateHistogram("h2V0MotherpVScostheta", "p VS cos(#theta), mother",
393
394
395 //------------------------------------------------------------------//
396 // RECO TRACKS //
397 //------------------------------------------------------------------//
398
399 //RecoTrack dau0
400 m_h1_RecoTrack_dau0_d0 = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0D0", "d0 dau_{0}", m_h1_MC_dau0_d0,
402 m_h1_RecoTrack_dau0_z0 = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0Z0", "z0 dau_{0}", m_h1_MC_dau0_z0,
404 m_h1_RecoTrack_dau0_RMother = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0RMother", "dau_{0}, R mother",
407 m_h3_RecoTrack_dau0 = dynamic_cast<TH3F*>(duplicateHistogram("h3RecoTrackdau0", "entry per RecoTrack dau_{0}", m_h3_MC_dau0,
409 m_h1_RecoTrack_dau0_pt = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0Pt", "p_{T} dau_{0}", m_h1_MC_dau0_pt,
411 m_h1_RecoTrack_dau0_pz = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0Pz", "p_{z} dau_{0}", m_h1_MC_dau0_pz,
413 m_h1_RecoTrack_dau0_p = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0P", "p dau_{0}", m_h1_MC_dau0_p,
415 m_h1_RecoTrack_dau0_theta = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0Theta", "#theta dau_{0}", m_h1_MC_dau0_theta,
417 m_h1_RecoTrack_dau0_costheta = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0CosTheta", "cos#theta dau_{0}",
420 m_h1_RecoTrack_dau0_Mother_cosAngle = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0MothercosAngle",
421 "#alpha_{mother,dau_{0}}",
423 m_h1_RecoTrack_dau0_phi = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0Phi", "#phi dau_{0}", m_h1_MC_dau0_phi,
425 m_h1_RecoTrack_dau0_phi_BW = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0PhiBW", "#phi dau_{0}", m_h1_MC_dau0_phi_BW,
427 m_h1_RecoTrack_dau0_phi_barrel = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0Phibarrel", "#phi dau_{0}",
430 m_h1_RecoTrack_dau0_phi_FW = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0PhiFW", "#phi dau_{0}", m_h1_MC_dau0_phi_FW,
432
433 m_h1_RecoTrack_dau0_phiMother_total = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0PhiMothertotal",
434 "dau_{0}, #phi_{mother}",
436 m_h1_RecoTrack_dau0_phiMother_BW = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0PhiMotherBW",
437 "dau_{0}, #phi_{mother}, BW",
439 m_h1_RecoTrack_dau0_phiMother_barrel = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0PhiMotherbarrel",
440 "dau_{0}, #phi_{mother}, barrel",
442 m_h1_RecoTrack_dau0_phiMother_FW = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0PhiMotherFW",
443 "dau_{0}, #phi_{mother}, FW",
445
446 m_h1_RecoTrack_dau0_thetaMother = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0ThetaMother", "#theta_{mother} dau_{0}",
448 m_h1_RecoTrack_dau0_ptMother = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau0PtMother", "p_{T,mother} dau_{0}",
451
452 m_h2_RecoTrack_dau0_2D = dynamic_cast<TH2F*>(duplicateHistogram("h2RecoTrackdau02D", "p_{T} VS #theta, dau_{0}", m_h2_MC_dau0_2D,
454 m_h2_RecoTrack_dau0_2D_BP = dynamic_cast<TH2F*>(duplicateHistogram("h2RecoTrackdau02dBP", "p_{T} VS #theta, dau_{0} BP",
457 m_h2_RecoTrack_dau0_2DMother = dynamic_cast<TH2F*>(duplicateHistogram("h2RecoTrackdau02DMother",
458 "p_{T,mother} VS #theta_{mother}, dau_{0}",
460
461 m_h2_RecoTrack_dau0_pVScostheta = dynamic_cast<TH2F*>(duplicateHistogram("h2RecoTrackdau0pVscostheta", "p VS cos(#theta), dau_{0}",
463
464 //RecoTrack dau1
465 m_h1_RecoTrack_dau1_d0 = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1D0", "d0 dau_{1}", m_h1_MC_dau1_d0,
467 m_h1_RecoTrack_dau1_z0 = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1Z0", "z0 dau_{1}", m_h1_MC_dau1_z0,
469 m_h1_RecoTrack_dau1_RMother = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1RMother", "dau_{1}, R mother",
472 m_h3_RecoTrack_dau1 = dynamic_cast<TH3F*>(duplicateHistogram("h3RecoTrackdau1", "entry per RecoTrack dau_{1}", m_h3_MC_dau1,
474 m_h1_RecoTrack_dau1_pt = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1Pt", "p_{T} dau_{1}", m_h1_MC_dau1_pt,
476 m_h1_RecoTrack_dau1_pz = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1Pz", "p_{z} dau_{1}", m_h1_MC_dau1_pz,
478 m_h1_RecoTrack_dau1_p = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1P", "p dau_{1}", m_h1_MC_dau1_p,
480 m_h1_RecoTrack_dau1_theta = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1Theta", "#theta dau_{1}", m_h1_MC_dau1_theta,
482 m_h1_RecoTrack_dau1_costheta = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1CosTheta", "cos#theta dau_{1}",
485 m_h1_RecoTrack_dau1_Mother_cosAngle = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1MothercosAngle", "#alpha_{mother,p}",
487 m_h1_RecoTrack_dau1_phi = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1Phi", "#phi dau_{1}", m_h1_MC_dau1_phi,
489 m_h1_RecoTrack_dau1_phi_BW = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1PhiBW", "#phi dau_{1}", m_h1_MC_dau1_phi_BW,
491 m_h1_RecoTrack_dau1_phi_barrel = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1Phibarrel", "#phi dau_{1}",
494 m_h1_RecoTrack_dau1_phi_FW = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1PhiFW", "#phi dau_{1}", m_h1_MC_dau1_phi_FW,
496
497 m_h1_RecoTrack_dau1_phiMother_total = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1PhiMothertotal",
498 "dau_{1}, #phi_{mother}",
500 m_h1_RecoTrack_dau1_phiMother_BW = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1PhiMotherBW",
501 "dau_{1}, #phi_{mother}, BW",
503 m_h1_RecoTrack_dau1_phiMother_barrel = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1PhiMotherbarrel",
504 "dau_{1}, #phi_{mother}, barrel",
506 m_h1_RecoTrack_dau1_phiMother_FW = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1PhiMotherFW",
507 "dau_{1}, #phi_{mother}, FW",
509
510 m_h1_RecoTrack_dau1_thetaMother = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1ThetaMother", "#theta_{mother} dau_{1}",
512 m_h1_RecoTrack_dau1_ptMother = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrackdau1PtMother", "p_{T,mother} dau_{1}",
515
516 m_h2_RecoTrack_dau1_2D = dynamic_cast<TH2F*>(duplicateHistogram("h2RecoTrackdau12D", "p_{T} VS #theta, dau_{1}", m_h2_MC_dau1_2D,
518 m_h2_RecoTrack_dau1_2D_BP = dynamic_cast<TH2F*>(duplicateHistogram("h2RecoTrackdau12dBP", "p_{T} VS #theta, p BP",
521 m_h2_RecoTrack_dau1_2DMother = dynamic_cast<TH2F*>(duplicateHistogram("h2RecoTrackdau12DMother",
522 "p_{T,mother} VS #theta_{mother}, dau_{1}",
524
525 m_h2_RecoTrack_dau1_pVScostheta = dynamic_cast<TH2F*>(duplicateHistogram("h2RecoTrackdau1pVscostheta", "p VS cos(#theta), dau_{1}",
527
528 //RecoTrack Mother
529 m_h1_RecoTrack_Mother_RMother = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrack_MotherRMother", "mother, R mother",
532 m_h3_RecoTrack_Mother = dynamic_cast<TH3F*>(duplicateHistogram("h3RecoTrack_Mother", "entry per RecoTrack_Mother", m_h3_MC_Mother,
534 m_h1_RecoTrack_Mother_pt = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrack_MotherPt", "p_{T} mother", m_h1_MC_dau0_pt,
536 m_h1_RecoTrack_Mother_pz = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrack_MotherPz", "p_{z} mother", m_h1_MC_dau0_pz,
538 m_h1_RecoTrack_Mother_p = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrack_MotherP", "p mother", m_h1_MC_dau0_p,
540 m_h1_RecoTrack_Mother_theta = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrack_MotherTheta", "#theta mother", m_h1_MC_dau0_theta,
542 m_h1_RecoTrack_Mother_costheta = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrack_MotherCosTheta", "cos#theta mother",
545 m_h1_RecoTrack_Mother_phi = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrack_MotherPhi", "#phi mother", m_h1_MC_dau0_phi,
547 m_h1_RecoTrack_Mother_phi_BW = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrack_MotherPhiBW", "#phi mother", m_h1_MC_dau0_phi_BW,
549 m_h1_RecoTrack_Mother_phi_barrel = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrack_MotherPhibarrel", "#phi mother",
552 m_h1_RecoTrack_Mother_phi_FW = dynamic_cast<TH1F*>(duplicateHistogram("h1RecoTrack_MotherPhiFW", "#phi mother", m_h1_MC_dau0_phi_FW,
554
555 m_h2_RecoTrack_Mother_2D = dynamic_cast<TH2F*>(duplicateHistogram("h2RecoTrack_Mother2D", "p_{T} VS #theta, mother",
558 m_h2_RecoTrack_Mother_2D_BP = dynamic_cast<TH2F*>(duplicateHistogram("h2RecoTrack_Mother2dBP", "p_{T} VS #theta, mother BP",
560
561 m_h2_RecoTrack_Mother_pVScostheta = dynamic_cast<TH2F*>(duplicateHistogram("h2RecoTrackMotherpVscostheta",
562 "p VS cos(#theta), mother",
564
565}
std::string m_TFRColName
name of the TFR dataobjects collection
TList * m_histoList_check
list of histograms of MCParticle mother and daughters
TList * m_histoList_Efficiencies
list of histograms of efficiencies
TList * m_histoList_GA
list of histograms of geometric acceptance
TList * m_histoList_MCParticles
list of histograms for MCParticles
TList * m_histoList_RecoTracks
list of histograms for RecoTracks
TList * m_histoList_Tracks
list of histograms for Tracks
TH1F * createHistogram1D(const char *name, const char *title, Int_t nbins, Double_t min, Double_t max, const char *xtitle, TList *histoList=nullptr)
Create a 1D histogram and add it to the TList of 1D-histograms.
TList * m_histoList
List of performance-evaluation histograms.
TH3F * createHistogram3D(const char *name, const char *title, Int_t nbinsX, Double_t minX, Double_t maxX, const char *titleX, Int_t nbinsY, Double_t minY, Double_t maxY, const char *titleY, Int_t nbinsZ, Double_t minZ, Double_t maxZ, const char *titleZ, TList *histoList=nullptr)
Create a 3D histogram and add it to the TList of 3D-histograms.
TH2F * createHistogram2D(const char *name, const char *title, Int_t nbinsX, Double_t minX, Double_t maxX, const char *titleX, Int_t nbinsY, Double_t minY, Double_t maxY, const char *titleY, TList *histoList=nullptr)
Create a 2D histogram and add it to the TList of 2D-histograms.
TFile * m_rootFilePtr
pointer at root file used for storing histograms
bool isRequired(const std::string &name="")
Ensure this array/object has been registered previously.

◆ isK_Short()

bool isK_Short ( const MCParticle & the_mcParticle)
staticprivate

determine if the MCParticle is a K-short

Definition at line 1326 of file EffPlotsModule.cc.

1327{
1328
1329 bool isK_S0 = false;
1330 if (abs(the_mcParticle.getPDG()) == Const::Kshort.getPDGCode())
1331 isK_S0 = true;
1332
1333 bool twoChargedProngs = false;
1334
1335 if (the_mcParticle.getDaughters().size() == 2 &&
1336 ((the_mcParticle.getDaughters()[0]->getPDG() == Const::pion.getPDGCode()
1337 && the_mcParticle.getDaughters()[1]->getPDG() == -Const::pion.getPDGCode()) ||
1338 (the_mcParticle.getDaughters()[0]->getPDG() == -Const::pion.getPDGCode()
1339 && the_mcParticle.getDaughters()[1]->getPDG() == Const::pion.getPDGCode())))
1340 twoChargedProngs = true;
1341
1342 return (isK_S0 && twoChargedProngs);
1343
1344}
int getPDGCode() const
PDG code.
Definition Const.h:474
static const ParticleType Kshort
K^0_S particle.
Definition Const.h:678
std::vector< Belle2::MCParticle * > getDaughters() const
Get vector of all daughter particles, empty vector if none.
Definition MCParticle.cc:50
int getPDG() const
Return PDG code of particle.
Definition MCParticle.h:101

◆ isLambda0()

bool isLambda0 ( const MCParticle & the_mcParticle)
staticprivate

determine if the MCParticle is a Lambda0

Definition at line 1346 of file EffPlotsModule.cc.

1347{
1348
1349 bool isLambda = false;
1350 if (abs(the_mcParticle.getPDG()) == Const::Lambda.getPDGCode())
1351 isLambda = true;
1352
1353 bool twoChargedProngs = false;
1354
1355 if (the_mcParticle.getDaughters().size() == 2 &&
1356 ((the_mcParticle.getDaughters()[0]->getPDG() == Const::pion.getPDGCode()
1357 && the_mcParticle.getDaughters()[1]->getPDG() == -Const::proton.getPDGCode()) ||
1358 (the_mcParticle.getDaughters()[0]->getPDG() == -Const::pion.getPDGCode()
1359 && the_mcParticle.getDaughters()[1]->getPDG() == Const::proton.getPDGCode()) ||
1360 (the_mcParticle.getDaughters()[0]->getPDG() == Const::proton.getPDGCode()
1361 && the_mcParticle.getDaughters()[1]->getPDG() == -Const::pion.getPDGCode()) ||
1362 (the_mcParticle.getDaughters()[0]->getPDG() == -Const::proton.getPDGCode()
1363 && the_mcParticle.getDaughters()[1]->getPDG() == Const::pion.getPDGCode())))
1364 twoChargedProngs = true;
1365
1366 return (isLambda && twoChargedProngs);
1367
1368}
static const ParticleType Lambda
Lambda particle.
Definition Const.h:680

◆ nMatchedDaughters()

int nMatchedDaughters ( const MCParticle & the_mcParticle)
staticprivate

get the number of matched daughters of the MCParticle

Definition at line 1370 of file EffPlotsModule.cc.

1371{
1372
1373 int nMatchedDau = 0;
1374
1375 std::vector< MCParticle* > MCPart_dau = the_mcParticle.getDaughters();
1376
1377 bool first = false;
1378 bool second = false;
1379
1380 RelationVector<Track> Tracks_fromMCParticle_0 = DataStore::getRelationsWithObj<Track>(MCPart_dau[0]);
1381 if (Tracks_fromMCParticle_0.size() > 0)
1382 first = true;
1383
1384 RelationVector<Track> Tracks_fromMCParticle_1 = DataStore::getRelationsWithObj<Track>(MCPart_dau[1]);
1385 if (Tracks_fromMCParticle_1.size() > 0)
1386 second = true;
1387
1388
1389 if (first)
1390 nMatchedDau++;
1391
1392 if (second)
1393 nMatchedDau++;
1394
1395
1396 return nMatchedDau;
1397
1398}

◆ setAbortLevel()

void setAbortLevel ( int abortLevel)
inherited

Configure the abort log level.

Definition at line 67 of file Module.cc.

68{
69 m_logConfig.setAbortLevel(static_cast<LogConfig::ELogLevel>(abortLevel));
70}
ELogLevel
Definition of the supported log levels.
Definition LogConfig.h:26
void setAbortLevel(ELogLevel abortLevel)
Configure the abort level.
Definition LogConfig.h:112

◆ setDebugLevel()

void setDebugLevel ( int debugLevel)
inherited

Configure the debug messaging level.

Definition at line 61 of file Module.cc.

62{
63 m_logConfig.setDebugLevel(debugLevel);
64}
void setDebugLevel(int debugLevel)
Configure the debug messaging level.
Definition LogConfig.h:98

◆ setDescription()

void setDescription ( const std::string & description)
protectedinherited

Sets the description of the module.

Parameters
descriptionA description of the module.

Definition at line 214 of file Module.cc.

215{
216 m_description = description;
217}
std::string m_description
The description of the module.
Definition Module.h:510

◆ setLogConfig()

void setLogConfig ( const LogConfig & logConfig)
inlineinherited

Set the log system configuration.

Definition at line 229 of file Module.h.

229{m_logConfig = logConfig;}

◆ setLogInfo()

void setLogInfo ( int logLevel,
unsigned int logInfo )
inherited

Configure the printed log information for the given level.

Parameters
logLevelThe log level (one of LogConfig::ELogLevel)
logInfoWhat kind of info should be printed? ORed combination of LogConfig::ELogInfo flags.

Definition at line 73 of file Module.cc.

74{
75 m_logConfig.setLogInfo(static_cast<LogConfig::ELogLevel>(logLevel), logInfo);
76}
void setLogInfo(ELogLevel logLevel, unsigned int logInfo)
Configure the printed log information for the given level.
Definition LogConfig.h:127

◆ setLogLevel()

void setLogLevel ( int logLevel)
inherited

Configure the log level.

Definition at line 55 of file Module.cc.

56{
57 m_logConfig.setLogLevel(static_cast<LogConfig::ELogLevel>(logLevel));
58}
void setLogLevel(ELogLevel logLevel)
Configure the log level.
Definition LogConfig.cc:25

◆ setName()

void setName ( const std::string & name)
inlineinherited

Set the name of the module.

Note
The module name is set when using the REG_MODULE macro, but the module can be renamed before calling process() using the set_name() function in your steering file.
Parameters
nameThe name of the module

Definition at line 213 of file Module.h.

213{ m_name = name; };

◆ setParamList()

void setParamList ( const ModuleParamList & params)
inlineprotectedinherited

Replace existing parameter list.

Definition at line 500 of file Module.h.

500{ m_moduleParamList = params; }

◆ setParamPython()

void setParamPython ( const std::string & name,
const boost::python::object & pyObj )
privateinherited

Implements a method for setting boost::python objects.

The method supports the following types: list, dict, int, double, string, bool The conversion of the python object to the C++ type and the final storage of the parameter value is done in the ModuleParam class.

Parameters
nameThe unique name of the parameter.
pyObjThe object which should be converted and stored as the parameter value.

Definition at line 234 of file Module.cc.

235{
236 LogSystem& logSystem = LogSystem::Instance();
237 logSystem.updateModule(&(getLogConfig()), getName());
238 try {
240 } catch (std::runtime_error& e) {
241 throw std::runtime_error("Cannot set parameter '" + name + "' for module '"
242 + m_name + "': " + e.what());
243 }
244
245 logSystem.updateModule(nullptr);
246}
void updateModule(const LogConfig *moduleLogConfig=nullptr, const std::string &moduleName="")
Sets the log configuration to the given module log configuration and sets the module name This method...
Definition LogSystem.h:200
static LogSystem & Instance()
Static method to get a reference to the LogSystem instance.
Definition LogSystem.cc:28
LogConfig & getLogConfig()
Returns the log system configuration.
Definition Module.h:224
std::string m_name
The name of the module, saved as a string (user-modifiable)
Definition Module.h:507
void setParamPython(const std::string &name, const PythonObject &pyObj)
Implements a method for setting boost::python objects.

◆ setParamPythonDict()

void setParamPythonDict ( const boost::python::dict & dictionary)
privateinherited

Implements a method for reading the parameter values from a boost::python dictionary.

The key of the dictionary has to be the name of the parameter and the value has to be of one of the supported parameter types.

Parameters
dictionaryThe python dictionary from which the parameter values are read.

Definition at line 249 of file Module.cc.

250{
251
252 LogSystem& logSystem = LogSystem::Instance();
253 logSystem.updateModule(&(getLogConfig()), getName());
254
255 boost::python::list dictKeys = dictionary.keys();
256 int nKey = boost::python::len(dictKeys);
257
258 //Loop over all keys in the dictionary
259 for (int iKey = 0; iKey < nKey; ++iKey) {
260 boost::python::object currKey = dictKeys[iKey];
261 boost::python::extract<std::string> keyProxy(currKey);
262
263 if (keyProxy.check()) {
264 const boost::python::object& currValue = dictionary[currKey];
265 setParamPython(keyProxy, currValue);
266 } else {
267 B2ERROR("Setting the module parameters from a python dictionary: invalid key in dictionary!");
268 }
269 }
270
271 logSystem.updateModule(nullptr);
272}
void setParamPython(const std::string &name, const boost::python::object &pyObj)
Implements a method for setting boost::python objects.
Definition Module.cc:234

◆ setPropertyFlags()

void setPropertyFlags ( unsigned int propertyFlags)
inherited

Sets the flags for the module properties.

Parameters
propertyFlagsbitwise OR of EModulePropFlags

Definition at line 208 of file Module.cc.

209{
210 m_propertyFlags = propertyFlags;
211}

◆ setReturnValue() [1/2]

void setReturnValue ( bool value)
protectedinherited

Sets the return value for this module as bool.

The bool value is saved as an integer with the convention 1 meaning true and 0 meaning false. The value can be used in the steering file to divide the analysis chain into several paths.

Parameters
valueThe value of the return value.

Definition at line 227 of file Module.cc.

228{
229 m_hasReturnValue = true;
230 m_returnValue = value;
231}

◆ setReturnValue() [2/2]

void setReturnValue ( int value)
protectedinherited

Sets the return value for this module as integer.

The value can be used in the steering file to divide the analysis chain into several paths.

Parameters
valueThe value of the return value.

Definition at line 220 of file Module.cc.

221{
222 m_hasReturnValue = true;
223 m_returnValue = value;
224}

◆ setType()

void setType ( const std::string & type)
protectedinherited

Set the module type.

Only for use by internal modules (which don't use the normal REG_MODULE mechanism).

Definition at line 48 of file Module.cc.

49{
50 if (!m_type.empty())
51 B2FATAL("Trying to change module type from " << m_type << " is not allowed, the value is assumed to be fixed.");
52 m_type = type;
53}

◆ terminate()

void terminate ( void )
overridevirtual

This method is called at the end of the event processing.

Reimplemented from Module.

Definition at line 996 of file EffPlotsModule.cc.

997{
998 //------------------------------------------------------------------//
999 // EFFICIENCIES //
1000 //------------------------------------------------------------------//
1001
1002 //dau0
1003 TH1F* h_eff_dau0_d0 = effPlot1D(m_h1_MC_dau0_d0, m_h1_RecoTrack_dau0_d0, m_h1_track_dau0_d0, "h_eff_dau0_d0",
1004 "efficiency VS d0, dau_{0}", m_histoList_Efficiencies);
1005 if (h_eff_dau0_d0->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_d0");
1006
1007 TH1F* h_eff_dau0_z0 = effPlot1D(m_h1_MC_dau0_z0, m_h1_RecoTrack_dau0_z0, m_h1_track_dau0_z0, "h_eff_dau0_z0",
1008 "efficiency VS z0, dau_{0}", m_histoList_Efficiencies);
1009 if (h_eff_dau0_z0->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_z0");
1010
1012 "h_eff_dau0_RMother", "efficiency VS R_{mother}, dau_{0}", m_histoList_Efficiencies);
1013 if (h_eff_dau0_RMother->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_RMother");
1014
1016 "h_eff_dau0_thetaMother", "efficiency VS #theta_{mother}, dau_{0}", m_histoList_Efficiencies);
1017 if (h_eff_dau0_thetaMother->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_thetaMother");
1018
1020 m_h1_track_dau0_phiMother_total, "h_eff_dau0_phiMother_total", "efficiency VS #phi_{mother}, dau_{0}", m_histoList_Efficiencies);
1021 if (h_eff_dau0_phiMother_total->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phiMother_total");
1022
1024 "h_eff_dau0_phiMother_BW", "efficiency VS #phi_{mother}, dau_{0} BW", m_histoList_Efficiencies);
1025 if (h_eff_dau0_phiMother_BW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phiMother_BW");
1026
1028 m_h1_track_dau0_phiMother_barrel, "h_eff_dau0_phiMother_barrel", "efficiency VS #phi_{mother}, dau_{0} barrel",
1030 if (h_eff_dau0_phiMother_barrel->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phiMother_barrel");
1031
1033 "h_eff_dau0_phiMother_FW", "efficiency VS #phi_{mother}, dau_{0} FW", m_histoList_Efficiencies);
1034 if (h_eff_dau0_phiMother_FW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phiMother_FW");
1035
1036 TH1F* h_eff_dau0_phi_total = effPlot1D(m_h1_MC_dau0_phi, m_h1_RecoTrack_dau0_phi, m_h1_track_dau0_phi, "h_eff_dau0_phi_total",
1037 "efficiency VS #phi_{dau_{0}}, dau_{0}", m_histoList_Efficiencies);
1038 if (h_eff_dau0_phi_total->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phi_total");
1039
1040 TH1F* h_eff_dau0_phi_BW = effPlot1D(m_h1_MC_dau0_phi_BW, m_h1_RecoTrack_dau0_phi_BW, m_h1_track_dau0_phi_BW, "h_eff_dau0_phi_BW",
1041 "efficiency VS #phi_{dau_{0}}, dau_{0} BW", m_histoList_Efficiencies);
1042 if (h_eff_dau0_phi_BW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phi_BW");
1043
1045 "h_eff_dau0_phi_barrel", "efficiency VS #phi_{dau_{0}}, dau_{0} barrel", m_histoList_Efficiencies);
1046 if (h_eff_dau0_phi_barrel->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phi_barrel");
1047
1048 TH1F* h_eff_dau0_phi_FW = effPlot1D(m_h1_MC_dau0_phi_FW, m_h1_RecoTrack_dau0_phi_FW, m_h1_track_dau0_phi_FW, "h_eff_dau0_phi_FW",
1049 "efficiency VS #phi_{dau_{0}}, dau_{0} FW", m_histoList_Efficiencies);
1050 if (h_eff_dau0_phi_FW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phi_FW");
1051
1053 "h2_effMap_dau0_pVScostheta", "efficiency map, p_{CM} VS cos(#theta)_{CM} dau_{0}", m_histoList_Efficiencies);
1054 if (h2_effMap_dau0_pVScostheta->GetEntries() == 0) B2WARNING("Empty histogram h2_effMap_dau0_pVScostheta");
1055
1056 //dau1
1057 TH1F* h_eff_dau1_d0 = effPlot1D(m_h1_MC_dau1_d0, m_h1_RecoTrack_dau1_d0, m_h1_track_dau1_d0, "h_eff_dau1_d0", "efficiency VS d0, p",
1059 if (h_eff_dau1_d0->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_d0");
1060
1061 TH1F* h_eff_dau1_z0 = effPlot1D(m_h1_MC_dau1_z0, m_h1_RecoTrack_dau1_z0, m_h1_track_dau1_z0, "h_eff_dau1_z0", "efficiency VS z0, p",
1063 if (h_eff_dau1_z0->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_z0");
1064
1066 "h_eff_dau1_RMother", "efficiency VS R_{mother}, p", m_histoList_Efficiencies);
1067 if (h_eff_dau1_RMother->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_RMother");
1068
1070 "h_eff_dau1_thetaMother", "efficiency VS #theta_{mother}, p", m_histoList_Efficiencies);
1071 if (h_eff_dau1_thetaMother->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_thetaMother");
1072
1074 m_h1_track_dau1_phiMother_total, "h_eff_dau1_phiMother_total", "efficiency VS #phi_{mother}, p", m_histoList_Efficiencies);
1075 if (h_eff_dau1_phiMother_total->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phiMother_total");
1076
1078 "h_eff_dau1_phiMother_BW", "efficiency VS #phi_{mother}, p BW", m_histoList_Efficiencies);
1079 if (h_eff_dau1_phiMother_BW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phiMother_BW");
1080
1082 m_h1_track_dau1_phiMother_barrel, "h_eff_dau1_phiMother_barrel", "efficiency VS #phi_{mother}, p barrel", m_histoList_Efficiencies);
1083 if (h_eff_dau1_phiMother_barrel->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phiMother_barrel");
1084
1086 "h_eff_dau1_phiMother_FW", "efficiency VS #phi_{mother}, p FW", m_histoList_Efficiencies);
1087 if (h_eff_dau1_phiMother_FW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phiMother_FW");
1088
1089 TH1F* h_eff_dau1_phi_total = effPlot1D(m_h1_MC_dau1_phi, m_h1_RecoTrack_dau1_phi, m_h1_track_dau1_phi, "h_eff_dau1_phi_total",
1090 "efficiency VS #phi_{p}, p", m_histoList_Efficiencies);
1091 if (h_eff_dau1_phi_total->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phi_total");
1092
1093 TH1F* h_eff_dau1_phi_BW = effPlot1D(m_h1_MC_dau1_phi_BW, m_h1_RecoTrack_dau1_phi_BW, m_h1_track_dau1_phi_BW, "h_eff_dau1_phi_BW",
1094 "efficiency VS #phi_{p}, p BW", m_histoList_Efficiencies);
1095 if (h_eff_dau1_phi_BW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phi_BW");
1096
1098 "h_eff_dau1_phi_barrel", "efficiency VS #phi_{p}, p barrel", m_histoList_Efficiencies);
1099 if (h_eff_dau1_phi_barrel->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phi_barrel");
1100
1101 TH1F* h_eff_dau1_phi_FW = effPlot1D(m_h1_MC_dau1_phi_FW, m_h1_RecoTrack_dau1_phi_FW, m_h1_track_dau1_phi_FW, "h_eff_dau1_phi_FW",
1102 "efficiency VS #phi_{p}, p FW", m_histoList_Efficiencies);
1103 if (h_eff_dau1_phi_FW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phi_FW");
1104
1106 "h2_effMap_dau1_pVScostheta", "efficiency map, p_{CM} VS cos(#theta)_{CM} dau_{1}", m_histoList_Efficiencies);
1107 if (h2_effMap_dau1_pVScostheta->GetEntries() == 0) B2WARNING("Empty histogram h2_effMap_dau1_pVScostheta");
1108
1109 //mother
1111 "h_eff_Mother_RMother", "efficiency VS R_{mother}, mother", m_histoList_Efficiencies);
1112 if (h_eff_Mother_RMother->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_RMother");
1113
1114 TH1F* h_eff_Mother_theta = effPlot1D(m_h1_MC_Mother_theta, m_h1_RecoTrack_Mother_theta, m_h1_V0_theta, "h_eff_Mother_theta",
1115 "efficiency VS #theta_{mother}, mother", m_histoList_Efficiencies);
1116 if (h_eff_Mother_theta->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_theta");
1117
1118 TH1F* h_eff_Mother_phi_total = effPlot1D(m_h1_MC_Mother_phi, m_h1_RecoTrack_Mother_phi, m_h1_V0_phi, "h_eff_Mother_phi_total",
1119 "efficiency VS #phi_{mother}, mother", m_histoList_Efficiencies);
1120 if (h_eff_Mother_phi_total->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_phi_total");
1121
1123 "h_eff_Mother_phi_BW", "efficiency VS #phi_{mother}, mother BW", m_histoList_Efficiencies);
1124 if (h_eff_Mother_phiMother_BW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_phiMother_BW");
1125
1127 "h_eff_Mother_phi_barrel", "efficiency VS #phi_{mother}, mother barrel", m_histoList_Efficiencies);
1128 if (h_eff_Mother_phiMother_barrel->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_phiMother_barrel");
1129
1131 "h_eff_Mother_phi_FW", "efficiency VS #phi_{mother}, mother FW", m_histoList_Efficiencies);
1132 if (h_eff_Mother_phiMother_FW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_phiMother_FW");
1133
1134 TH2F* h2_effMap_Mother_pVScostheta = effPlot2D(m_h2_MC_Mother_pVScostheta, m_h2_RecoTrack_Mother_pVScostheta,
1135 m_h2_V0_Mother_pVScostheta, "h2_effMap_Mother_pVScostheta", "efficiency map, p_{CM} VS cos(#theta)_{CM} mother",
1137 if (h2_effMap_Mother_pVScostheta->GetEntries() == 0) B2WARNING("Empty histogram h2_effMap_Mother_pVScostheta");
1138
1139 //eff_V0Finder [ = eff_mother / (eff_dau0 * eff_dau1)]
1140 TH1F* h_eff_V0Finder_RMother_withGeoAcc = V0FinderEff(h_eff_dau0_RMother, h_eff_dau1_RMother, h_eff_Mother_RMother,
1141 "h_eff_V0Finder_RMother_withGeoAcc", "efficiency VS R_{mother}, V0Finder", m_histoList_Efficiencies);
1142 if (h_eff_V0Finder_RMother_withGeoAcc->GetEntries() == 0) B2WARNING("Empty histogram h_eff_V0Finder_RMother_withGeoAcc");
1143
1144 TH1F* h_eff_V0Finder_theta_withGeoAcc = V0FinderEff(h_eff_dau0_thetaMother, h_eff_dau1_thetaMother, h_eff_Mother_theta,
1145 "h_eff_V0Finder_theta_withGeoAcc", "efficiency VS #theta_{mother}, V0Finder", m_histoList_Efficiencies);
1146 if (h_eff_V0Finder_theta_withGeoAcc->GetEntries() == 0) B2WARNING("Empty histogram h_eff_V0Finder_theta_withGeoAcc");
1147
1148 TH1F* h_eff_V0Finder_phi_total_withGeoAcc = V0FinderEff(h_eff_dau0_phiMother_total, h_eff_dau1_phiMother_total,
1149 h_eff_Mother_phi_total, "h_eff_V0Finder_phi_total_withGeoAcc", "efficiency VS #phi_{mother}, V0Finder", m_histoList_Efficiencies);
1150 if (h_eff_V0Finder_phi_total_withGeoAcc->GetEntries() == 0) B2WARNING("Empty histogram h_eff_V0Finder_phi_total_withGeoAcc");
1151
1152 TH1F* h_eff_V0Finder_phiMother_BW_withGeoAcc = V0FinderEff(h_eff_dau0_phiMother_BW, h_eff_dau1_phiMother_BW,
1153 h_eff_Mother_phiMother_BW, "h_eff_V0Finder_phi_BW_withGeoAcc", "efficiency VS #phi_{mother}, V0Finder BW",
1155 if (h_eff_V0Finder_phiMother_BW_withGeoAcc->GetEntries() == 0) B2WARNING("Empty histogram h_eff_V0Finder_phiMother_BW_withGeoAcc");
1156
1157 TH1F* h_eff_V0Finder_phiMother_barrel_withGeoAcc = V0FinderEff(h_eff_dau0_phiMother_barrel, h_eff_dau1_phiMother_barrel,
1158 h_eff_Mother_phiMother_barrel, "h_eff_V0Finder_phi_barrel_withGeoAcc", "efficiency VS #phi_{mother}, V0Finder barrel",
1160 if (h_eff_V0Finder_phiMother_barrel_withGeoAcc->GetEntries() == 0)
1161 B2WARNING("Empty histogram h_eff_V0Finder_phiMother_barrel_withGeoAcc");
1162
1163 TH1F* h_eff_V0Finder_phiMother_FW_withGeoAcc = V0FinderEff(h_eff_dau0_phiMother_FW, h_eff_dau1_phiMother_FW,
1164 h_eff_Mother_phiMother_FW, "h_eff_V0Finder_phi_FW_withGeoAcc", "efficiency VS #phi_{mother}, V0Finder FW",
1166 if (h_eff_V0Finder_phiMother_FW_withGeoAcc->GetEntries() == 0) B2WARNING("Empty histogram h_eff_V0Finder_phiMother_FW_withGeoAcc");
1167
1168
1169 //-------------------------------------------------------------------------//
1170 // GEOMETRICAL ACCETTANCE //
1171 //-------------------------------------------------------------------------//
1172
1174 //dau0
1175 TH1F* h_dau0_geoAcc_theta = geoAcc1D(m_h1_MC_dau0_theta, m_h1_RecoTrack_dau0_theta, "h_dau0_geoAcc_theta",
1176 "geometrical acceptance VS #theta_{dau_{0}}, dau_{0}", m_histoList_GA);
1177 if (h_dau0_geoAcc_theta->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_theta");
1178
1179 TH1F* h_dau0_geoAcc_phi = geoAcc1D(m_h1_MC_dau0_phi, m_h1_RecoTrack_dau0_phi, "h_dau0_geoAcc_phi",
1180 "geometrical acceptance VS #phi_{dau_{0}}, dau_{0}", m_histoList_GA);
1181 if (h_dau0_geoAcc_phi->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_phi");
1182
1183 TH1F* h_dau0_geoAcc_pt = geoAcc1D(m_h1_MC_dau0_pt, m_h1_RecoTrack_dau0_pt, "h_dau0_geoAcc_pt",
1184 "geometrical acceptance VS p_{T,dau_{0}}, dau_{0}", m_histoList_GA);
1185 if (h_dau0_geoAcc_pt->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_pt");
1186
1187 TH1F* h_dau0_geoAcc_thetaMother = geoAcc1D(m_h1_MC_dau0_thetaMother, m_h1_RecoTrack_dau0_thetaMother, "h_dau0_geoAcc_thetaMother",
1188 "geometrical acceptance VS #theta_{mother}, dau_{0}", m_histoList_GA);
1189 if (h_dau0_geoAcc_thetaMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_thetaMother");
1190
1192 "h_dau0_geoAcc_phiMother", "geometrical acceptance VS #phi_{mother}, dau_{0}", m_histoList_GA);
1193 if (h_dau0_geoAcc_phiMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_phiMother");
1194
1195 TH1F* h_dau0_geoAcc_ptMother = geoAcc1D(m_h1_MC_dau0_ptMother, m_h1_RecoTrack_dau0_ptMother, "h_dau0_geoAcc_ptMother",
1196 "geometrical acceptance VS #p_{T,mother}, dau_{0}", m_histoList_GA);
1197 if (h_dau0_geoAcc_ptMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_ptMother");
1198
1199 //dau1
1200 TH1F* h_dau1_geoAcc_theta = geoAcc1D(m_h1_MC_dau1_theta, m_h1_RecoTrack_dau1_theta, "h_dau1_geoAcc_theta",
1201 "geometrical acceptance VS #theta_{p}, p", m_histoList_GA);
1202 if (h_dau1_geoAcc_theta->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_theta");
1203
1204 TH1F* h_dau1_geoAcc_phi = geoAcc1D(m_h1_MC_dau1_phi, m_h1_RecoTrack_dau1_phi, "h_dau1_geoAcc_phi",
1205 "geometrical acceptance VS #phi_{p}, p", m_histoList_GA);
1206 if (h_dau1_geoAcc_phi->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_phi");
1207
1208 TH1F* h_dau1_geoAcc_pt = geoAcc1D(m_h1_MC_dau1_pt, m_h1_RecoTrack_dau1_pt, "h_dau1_geoAcc_pt",
1209 "geometrical acceptance VS p_{T,p}, p", m_histoList_GA);
1210 if (h_dau1_geoAcc_pt->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_pt");
1211
1212 TH1F* h_dau1_geoAcc_thetaMother = geoAcc1D(m_h1_MC_dau1_thetaMother, m_h1_RecoTrack_dau1_thetaMother, "h_dau1_geoAcc_thetaMother",
1213 "geometrical acceptance VS #theta_{mother}, p", m_histoList_GA);
1214 if (h_dau1_geoAcc_thetaMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_thetaMother");
1215
1217 "h_dau1_geoAcc_phiMother", "geometrical acceptance VS #phi_{mother}, p", m_histoList_GA);
1218 if (h_dau1_geoAcc_phiMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_phiMother");
1219
1220 TH1F* h_dau1_geoAcc_ptMother = geoAcc1D(m_h1_MC_dau1_ptMother, m_h1_RecoTrack_dau1_ptMother, "h_dau1_geoAcc_ptMother",
1221 "geometrical acceptance VS #p_{T,mother}, p", m_histoList_GA);
1222 if (h_dau1_geoAcc_ptMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_ptMother");
1223
1224 //mother
1225 TH1F* h_Mother_geoAcc_theta = geoAcc1D(m_h1_MC_Mother_theta, m_h1_RecoTrack_Mother_theta, "h_Mother_geoAcc_theta",
1226 "geometrical acceptance VS #theta_{mother}, mother", m_histoList_GA);
1227 if (h_Mother_geoAcc_theta->GetEntries() == 0) B2WARNING("Empty histogram h_Mother_geoAcc_theta");
1228
1229 TH1F* h_Mother_geoAcc_phi = geoAcc1D(m_h1_MC_Mother_phi, m_h1_RecoTrack_Mother_phi, "h_Mother_geoAcc_phi",
1230 "geometrical acceptance VS #phi_{mother}, mother", m_histoList_GA);
1231 if (h_Mother_geoAcc_phi->GetEntries() == 0) B2WARNING("Empty histogram h_Mother_geoAcc_phi");
1232
1233 TH1F* h_Mother_geoAcc_pt = geoAcc1D(m_h1_MC_Mother_pt, m_h1_RecoTrack_Mother_pt, "h_Mother_geoAcc_pt",
1234 "geometrical acceptance VS p_{T,mother}, mother", m_histoList_GA);
1235 if (h_Mother_geoAcc_pt->GetEntries() == 0) B2WARNING("Empty histogram h_Mother_geoAcc_pt");
1236
1237 //2D
1238 TH2F* h2_dau0_geoAcc2D = geoAcc2D(m_h2_MC_dau0_2D, m_h2_RecoTrack_dau0_2D, "h2_dau0_geoAcc2D",
1239 "geometrical acceptance dau_{0}, p_{T,dau_{0}} VS #theta_{dau_{0}}", m_histoList_GA);
1240 if (h2_dau0_geoAcc2D->GetEntries() == 0) B2WARNING("Empty histogram h2_dau0_geoAcc2D");
1241
1242 TH2F* h2_dau1_geoAcc2D = geoAcc2D(m_h2_MC_dau1_2D, m_h2_RecoTrack_dau1_2D, "h2_dau1_geoAcc2D",
1243 "geometrical acceptance p, p_{T,p} VS #theta_{p}", m_histoList_GA);
1244 if (h2_dau1_geoAcc2D->GetEntries() == 0) B2WARNING("Empty histogram h2_dau1_geoAcc2D");
1245
1246 TH2F* h2_Mother_geoAcc2D = geoAcc2D(m_h2_MC_Mother_2D, m_h2_RecoTrack_Mother_2D, "h2_Mother_geoAcc2D",
1247 "geometrical acceptance mother, p_{T,mother} VS #theta_{mother}", m_histoList_GA);
1248 if (h2_Mother_geoAcc2D->GetEntries() == 0) B2WARNING("Empty histogram h2_Mother_geoAcc2D");
1249
1250 TH2F* h2_dau0Mother_geoAcc2D = geoAcc2D(m_h2_MC_dau0_2DMother, m_h2_RecoTrack_dau0_2DMother, "h2_dau0Mother_geoAcc2D",
1251 "geometrical acceptance dau_{0}, p_{T,mother} VS #theta_{mother}", m_histoList_GA);
1252 if (h2_dau0Mother_geoAcc2D->GetEntries() == 0) B2WARNING("Empty histogram h2_dau0Mother_geoAcc2D");
1253
1254 TH2F* h2_dau1Mother_geoAcc2D = geoAcc2D(m_h2_MC_dau1_2DMother, m_h2_RecoTrack_dau1_2DMother, "h2_dau1Mother_geoAcc2D",
1255 "geometrical acceptance p, p_{T,mother} VS #theta_{mother}", m_histoList_GA);
1256 if (h2_dau1Mother_geoAcc2D->GetEntries() == 0) B2WARNING("Empty histogram h2_dau1Mother_geoAcc2D");
1257
1258 //particles coming from inside the Beam Pipe
1259 TH2F* h2_dau0_geoAcc2D_BP = geoAcc2D(m_h2_MC_dau0_2D_BP, m_h2_RecoTrack_dau0_2D_BP, "h2_dau0_geoAcc2D_BP",
1260 "geometrical acceptance dau_{0}, p_{T,dau_{0}} VS #theta_{dau_{0}}, BP", m_histoList_GA);
1261 if (h2_dau0_geoAcc2D_BP->GetEntries() == 0) B2WARNING("Empty histogram h2_dau0_geoAcc2D_BP");
1262
1263 TH2F* h2_dau1_geoAcc2D_BP = geoAcc2D(m_h2_MC_dau1_2D_BP, m_h2_RecoTrack_dau1_2D_BP, "h2_dau1_geoAcc2D_BP",
1264 "geometrical acceptance p, p_{T,p} VS #theta_{p}, BP", m_histoList_GA);
1265 if (h2_dau1_geoAcc2D_BP->GetEntries() == 0) B2WARNING("Empty histogram h2_dau1_geoAcc2D_BP");
1266
1267 TH2F* h2_Mother_geoAcc2D_BP = geoAcc2D(m_h2_MC_Mother_2D_BP, m_h2_RecoTrack_Mother_2D_BP, "h2_Mother_geoAcc2D_BP",
1268 "geometrical acceptance mother, p_{T,mother} VS #theta_{mother}, BP", m_histoList_GA);
1269 if (h2_Mother_geoAcc2D_BP->GetEntries() == 0) B2WARNING("Empty histogram h2_Mother_geoAcc2D_BP");
1270 }
1271
1272 //---------------------------------------------------------------------------------
1273
1274 //write histograms on the output root file
1275 if (m_rootFilePtr != nullptr) {
1276 m_rootFilePtr->cd();
1277
1278 TIter nextHMC(m_histoList_MCParticles);
1279 TIter nextHTC(m_histoList_RecoTracks);
1280 TIter nextHT(m_histoList_Tracks);
1281 TIter nextHEff(m_histoList_Efficiencies);
1282 TIter nextHGA(m_histoList_GA);
1283 TIter nextHCheck(m_histoList_check);
1284
1285 TObject* obj;
1286
1287 if (m_allHistograms) {
1288 TDirectory* MCdir = m_rootFilePtr->mkdir("MCParticles");
1289 MCdir->cd();
1290 while ((obj = nextHMC()))
1291 obj->Write("", BIT(2), 0);
1292
1293 TDirectory* TCdir = m_rootFilePtr->mkdir("RecoTracks");
1294 TCdir->cd();
1295 while ((obj = nextHTC()))
1296 obj->Write("", BIT(2), 0);
1297
1298 TDirectory* Trdir = m_rootFilePtr->mkdir("Tracks");
1299 Trdir->cd();
1300 while ((obj = nextHT()))
1301 obj->Write("", BIT(2), 0);
1302
1303 TDirectory* check = m_rootFilePtr->mkdir("check");
1304 check->cd();
1305 while ((obj = nextHCheck()))
1306 obj->Write("", BIT(2), 0);
1307 }
1308
1309 TDirectory* Effdir = m_rootFilePtr->mkdir("Efficiencies");
1310 Effdir->cd();
1311 while ((obj = nextHEff()))
1312 obj->Write("", BIT(2), 0);
1313
1315 TDirectory* geoAcc = m_rootFilePtr->mkdir("geoAccettance");
1316 geoAcc->cd();
1317 while ((obj = nextHGA()))
1318 obj->Write("", BIT(2), 0);
1319 }
1320
1321
1322 m_rootFilePtr->Close();
1323 }
1324}
TH2F * effPlot2D(TH2F *h2_den, TH2F *h2_num, const char *name, const char *title, bool geo_accettance, TList *histoList=nullptr)
Create a 2D efficiency histogram and add it to the TList of 2D-histograms.
TH1F * effPlot1D(TH1F *h1_den, TH1F *h1_num, const char *name, const char *title, bool geo_accettance, TList *histoList=nullptr)
Create a 1D efficiency histogram and add it to the TList of 1D-histograms.
TH1F * V0FinderEff(TH1F *h1_dau0, TH1F *h1_dau1, TH1F *h1_Mother, const char *name, const char *title, TList *histoList=nullptr)
Create a 1D efficiency histogram for V0 finding and add it to the TList of 1D-histograms.
TH1F * geoAcc1D(TH1F *h1_den, TH1F *h1_num, const char *name, const char *title, TList *histoList=nullptr)
Create a 1D efficiency histogram for geometric acceptance and add it to the TList of 1D-histograms.
TH2F * geoAcc2D(TH2F *h2_den, TH2F *h2_num, const char *name, const char *title, TList *histoList=nullptr)
Create a 2D efficiency histogram for geometric acceptance and add it to the TList of 2D-histograms.

◆ V0FinderEff()

TH1F * V0FinderEff ( TH1F * h1_dau0,
TH1F * h1_dau1,
TH1F * h1_Mother,
const char * name,
const char * title,
TList * histoList = nullptr )
inherited

Create a 1D efficiency histogram for V0 finding and add it to the TList of 1D-histograms.

Definition at line 644 of file PerformanceEvaluationBaseClass.cc.

646{
647
648 TH1F* h = dynamic_cast<TH1F*>(duplicateHistogram(name, title, h1_Mother, histoList));
649 h->GetYaxis()->SetRangeUser(0., 1);
650
651 for (int bin = 0; bin < h->GetXaxis()->GetNbins(); bin++) {
652 double dau0 = h1_dau0->GetBinContent(bin);
653 double dau1 = h1_dau1->GetBinContent(bin);
654 double Mother = h1_Mother->GetBinContent(bin);
655 double dau0Err = h1_dau0->GetBinError(bin);
656 double dau1Err = h1_dau1->GetBinError(bin);
657 double MotherErr = h1_Mother->GetBinError(bin);
658
659 double binCont = 1. * Mother / dau0 / dau1;
660 double binErr = binCont * sqrt((dau0Err / dau0) * (dau0Err / dau0) + (dau1Err / dau1) * (dau1Err / dau1) * (MotherErr / Mother) *
661 (MotherErr / Mother));
662
663 h->SetBinContent(bin, binCont);
664 h->SetBinError(bin, binErr);
665 }
666
667 if (histoList)
668 histoList->Add(h);
669
670 return h;
671}

Member Data Documentation

◆ m_allHistograms

bool m_allHistograms
private

true to create all histograms

Definition at line 95 of file EffPlotsModule.h.

◆ m_conditions

std::vector<ModuleCondition> m_conditions
privateinherited

Module condition, only non-null if set.

Definition at line 520 of file Module.h.

◆ m_description

std::string m_description
privateinherited

The description of the module.

Definition at line 510 of file Module.h.

◆ m_geometricalAccettance

bool m_geometricalAccettance
private

true to create output for the geometrical acceptance

Definition at line 96 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_costheta

TH1F* m_h1_MC_dau0_costheta = nullptr
private

histogram of MCParticle daughter 0's cos(theta)

Definition at line 121 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_d0

TH1F* m_h1_MC_dau0_d0 = nullptr
private

list of histograms filled per MCParticle found in the event

histogram of MCParticle daughter 0's d0

Definition at line 109 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_Mother_cosAngle

TH1F* m_h1_MC_dau0_Mother_cosAngle = nullptr
private

histogram of MCParticle daughter 0's and mother's cos(opening-angle)

Definition at line 122 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_p

TH1F* m_h1_MC_dau0_p = nullptr
private

histogram of MCParticle daughter 0's p

Definition at line 115 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_PDG

TH1F* m_h1_MC_dau0_PDG = nullptr
private

histogram of MCParticle daughter 0's PDG code

Definition at line 133 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_phi

TH1F* m_h1_MC_dau0_phi = nullptr
private

histogram of MCParticle daughter 0's phi

Definition at line 116 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_phi_barrel

TH1F* m_h1_MC_dau0_phi_barrel = nullptr
private

histogram of MCParticle daughter 0's phi (barrel region)

Definition at line 118 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_phi_BW

TH1F* m_h1_MC_dau0_phi_BW = nullptr
private

histogram of MCParticle daughter 0's phi (backward region)

Definition at line 117 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_phi_FW

TH1F* m_h1_MC_dau0_phi_FW = nullptr
private

histogram of MCParticle daughter 0's phi (forward region)

Definition at line 119 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_phiMother_barrel

TH1F* m_h1_MC_dau0_phiMother_barrel = nullptr
private

histogram of MCParticle daughter 0's mother's phi (barrel region)

Definition at line 125 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_phiMother_BW

TH1F* m_h1_MC_dau0_phiMother_BW = nullptr
private

histogram of MCParticle daughter 0's mother's phi (backward region)

Definition at line 124 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_phiMother_FW

TH1F* m_h1_MC_dau0_phiMother_FW = nullptr
private

histogram of MCParticle daughter 0's mother's phi (forward region)

Definition at line 126 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_phiMother_total

TH1F* m_h1_MC_dau0_phiMother_total = nullptr
private

histogram of MCParticle daughter 0's mother's phi

Definition at line 123 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_pt

TH1F* m_h1_MC_dau0_pt = nullptr
private

histogram of MCParticle daughter 0's pt

Definition at line 113 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_ptMother

TH1F* m_h1_MC_dau0_ptMother = nullptr
private

histogram of MCParticle daughter 0's mother's pt

Definition at line 128 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_pz

TH1F* m_h1_MC_dau0_pz = nullptr
private

histogram of MCParticle daughter 0's pz

Definition at line 114 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_RMother

TH1F* m_h1_MC_dau0_RMother = nullptr
private

histogram of MCParticle daughter 0's RMother

Definition at line 111 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_theta

TH1F* m_h1_MC_dau0_theta = nullptr
private

histogram of MCParticle daughter 0's theta

Definition at line 120 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_thetaMother

TH1F* m_h1_MC_dau0_thetaMother = nullptr
private

histogram of MCParticle daughter 0's mother's theta

Definition at line 127 of file EffPlotsModule.h.

◆ m_h1_MC_dau0_z0

TH1F* m_h1_MC_dau0_z0 = nullptr
private

histogram of MCParticle daughter 0's z0

Definition at line 110 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_costheta

TH1F* m_h1_MC_dau1_costheta = nullptr
private

histogram of MCParticle daughter 1's cos(theta)

Definition at line 147 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_d0

TH1F* m_h1_MC_dau1_d0 = nullptr
private

histogram of MCParticle daughter 1's d0

Definition at line 135 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_Mother_cosAngle

TH1F* m_h1_MC_dau1_Mother_cosAngle = nullptr
private

histogram of MCParticle daughter 1's and mother's cos(opening-angle)

Definition at line 148 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_p

TH1F* m_h1_MC_dau1_p = nullptr
private

histogram of MCParticle daughter 1's p

Definition at line 141 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_PDG

TH1F* m_h1_MC_dau1_PDG = nullptr
private

histogram of MCParticle daughter 1's PDG code

Definition at line 159 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_phi

TH1F* m_h1_MC_dau1_phi = nullptr
private

histogram of MCParticle daughter 1's phi

Definition at line 142 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_phi_barrel

TH1F* m_h1_MC_dau1_phi_barrel = nullptr
private

histogram of MCParticle daughter 1's phi (barrel region)

Definition at line 144 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_phi_BW

TH1F* m_h1_MC_dau1_phi_BW = nullptr
private

histogram of MCParticle daughter 1's phi (backward region)

Definition at line 143 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_phi_FW

TH1F* m_h1_MC_dau1_phi_FW = nullptr
private

histogram of MCParticle daughter 1's phi (forward region)

Definition at line 145 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_phiMother_barrel

TH1F* m_h1_MC_dau1_phiMother_barrel = nullptr
private

histogram of MCParticle daughter 1's mother's phi (barrel region)

Definition at line 151 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_phiMother_BW

TH1F* m_h1_MC_dau1_phiMother_BW = nullptr
private

histogram of MCParticle daughter 1's mother's phi (backward region)

Definition at line 150 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_phiMother_FW

TH1F* m_h1_MC_dau1_phiMother_FW = nullptr
private

histogram of MCParticle daughter 1's mother's phi (forward region)

Definition at line 152 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_phiMother_total

TH1F* m_h1_MC_dau1_phiMother_total = nullptr
private

histogram of MCParticle daughter 1's mother's phi

Definition at line 149 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_pt

TH1F* m_h1_MC_dau1_pt = nullptr
private

histogram of MCParticle daughter 1's pt

Definition at line 139 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_ptMother

TH1F* m_h1_MC_dau1_ptMother = nullptr
private

histogram of MCParticle daughter 1's mother's pt

Definition at line 154 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_pz

TH1F* m_h1_MC_dau1_pz = nullptr
private

histogram of MCParticle daughter 1's pz

Definition at line 140 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_RMother

TH1F* m_h1_MC_dau1_RMother = nullptr
private

histogram of MCParticle daughter 1's RMother

Definition at line 137 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_theta

TH1F* m_h1_MC_dau1_theta = nullptr
private

histogram of MCParticle daughter 1's theta

Definition at line 146 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_thetaMother

TH1F* m_h1_MC_dau1_thetaMother = nullptr
private

histogram of MCParticle daughter 1's mother's theta

Definition at line 153 of file EffPlotsModule.h.

◆ m_h1_MC_dau1_z0

TH1F* m_h1_MC_dau1_z0 = nullptr
private

histogram of MCParticle daughter 1's z0

Definition at line 136 of file EffPlotsModule.h.

◆ m_h1_MC_Mother_costheta

TH1F* m_h1_MC_Mother_costheta = nullptr
private

histogram of MCParticle mother's cos(theta)

Definition at line 171 of file EffPlotsModule.h.

◆ m_h1_MC_Mother_p

TH1F* m_h1_MC_Mother_p = nullptr
private

histogram of MCParticle mother's p

Definition at line 165 of file EffPlotsModule.h.

◆ m_h1_MC_Mother_PDG

TH1F* m_h1_MC_Mother_PDG = nullptr
private

histogram of MCParticle mother's PDG code

Definition at line 175 of file EffPlotsModule.h.

◆ m_h1_MC_Mother_phi

TH1F* m_h1_MC_Mother_phi = nullptr
private

histogram of MCParticle mother's phi

Definition at line 166 of file EffPlotsModule.h.

◆ m_h1_MC_Mother_phi_barrel

TH1F* m_h1_MC_Mother_phi_barrel = nullptr
private

histogram of MCParticle mother's phi (barrel region)

Definition at line 168 of file EffPlotsModule.h.

◆ m_h1_MC_Mother_phi_BW

TH1F* m_h1_MC_Mother_phi_BW = nullptr
private

histogram of MCParticle mother's phi (backward region)

Definition at line 167 of file EffPlotsModule.h.

◆ m_h1_MC_Mother_phi_FW

TH1F* m_h1_MC_Mother_phi_FW = nullptr
private

histogram of MCParticle mother's phi (forward region)

Definition at line 169 of file EffPlotsModule.h.

◆ m_h1_MC_Mother_pt

TH1F* m_h1_MC_Mother_pt = nullptr
private

histogram of MCParticle mother's pt

Definition at line 163 of file EffPlotsModule.h.

◆ m_h1_MC_Mother_pz

TH1F* m_h1_MC_Mother_pz = nullptr
private

histogram of MCParticle mother's pz

Definition at line 164 of file EffPlotsModule.h.

◆ m_h1_MC_Mother_RMother

TH1F* m_h1_MC_Mother_RMother = nullptr
private

histogram of MCParticle mother's RMother

Definition at line 161 of file EffPlotsModule.h.

◆ m_h1_MC_Mother_theta

TH1F* m_h1_MC_Mother_theta = nullptr
private

histogram of MCParticle mother's theta

Definition at line 170 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_costheta

TH1F* m_h1_RecoTrack_dau0_costheta = nullptr
private

histogram of RecoTrack daughter 0's cos(theta)

Definition at line 256 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_d0

TH1F* m_h1_RecoTrack_dau0_d0 = nullptr
private

list of histograms filled per RecoTracks found in the event

histogram of RecoTrack daughter 0's d0

Definition at line 244 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_Mother_cosAngle

TH1F* m_h1_RecoTrack_dau0_Mother_cosAngle = nullptr
private

histogram of RecoTrack daughter 0's and mother's cos(opening-angle)

Definition at line 257 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_p

TH1F* m_h1_RecoTrack_dau0_p = nullptr
private

histogram of RecoTrack daughter 0's p

Definition at line 250 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_phi

TH1F* m_h1_RecoTrack_dau0_phi = nullptr
private

histogram of RecoTrack daughter 0's phi

Definition at line 251 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_phi_barrel

TH1F* m_h1_RecoTrack_dau0_phi_barrel = nullptr
private

histogram of RecoTrack daughter 0's phi (barrel region)

Definition at line 253 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_phi_BW

TH1F* m_h1_RecoTrack_dau0_phi_BW = nullptr
private

histogram of RecoTrack daughter 0's phi (backward region)

Definition at line 252 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_phi_FW

TH1F* m_h1_RecoTrack_dau0_phi_FW = nullptr
private

histogram of RecoTrack daughter 0's phi (forward region)

Definition at line 254 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_phiMother_barrel

TH1F* m_h1_RecoTrack_dau0_phiMother_barrel = nullptr
private

histogram of RecoTrack daughter 0's mother's phi (barrel region)

Definition at line 260 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_phiMother_BW

TH1F* m_h1_RecoTrack_dau0_phiMother_BW = nullptr
private

histogram of RecoTrack daughter 0's mother's phi (backward region)

Definition at line 259 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_phiMother_FW

TH1F* m_h1_RecoTrack_dau0_phiMother_FW = nullptr
private

histogram of RecoTrack daughter 0's mother's phi (forward region)

Definition at line 261 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_phiMother_total

TH1F* m_h1_RecoTrack_dau0_phiMother_total = nullptr
private

histogram of RecoTrack daughter 0's mother's phi

Definition at line 258 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_pt

TH1F* m_h1_RecoTrack_dau0_pt = nullptr
private

histogram of RecoTrack daughter 0's pt

Definition at line 248 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_ptMother

TH1F* m_h1_RecoTrack_dau0_ptMother = nullptr
private

histogram of RecoTrack daughter 0's mother's pt

Definition at line 263 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_pz

TH1F* m_h1_RecoTrack_dau0_pz = nullptr
private

histogram of RecoTrack daughter 0's pz

Definition at line 249 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_RMother

TH1F* m_h1_RecoTrack_dau0_RMother = nullptr
private

histogram of RecoTrack daughter 0's RMother

Definition at line 246 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_theta

TH1F* m_h1_RecoTrack_dau0_theta = nullptr
private

histogram of RecoTrack daughter 0's theta

Definition at line 255 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_thetaMother

TH1F* m_h1_RecoTrack_dau0_thetaMother = nullptr
private

histogram of RecoTrack daughter 0's mother's theta

Definition at line 262 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau0_z0

TH1F* m_h1_RecoTrack_dau0_z0 = nullptr
private

histogram of RecoTrack daughter 0's z0

Definition at line 245 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_costheta

TH1F* m_h1_RecoTrack_dau1_costheta = nullptr
private

histogram of RecoTrack daughter 1's cos(theta)

Definition at line 281 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_d0

TH1F* m_h1_RecoTrack_dau1_d0 = nullptr
private

histogram of RecoTrack daughter 1's d0

Definition at line 269 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_Mother_cosAngle

TH1F* m_h1_RecoTrack_dau1_Mother_cosAngle = nullptr
private

histogram of RecoTrack daughter 1's and mother's cos(opening-angle)

Definition at line 282 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_p

TH1F* m_h1_RecoTrack_dau1_p = nullptr
private

histogram of RecoTrack daughter 1's p

Definition at line 275 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_phi

TH1F* m_h1_RecoTrack_dau1_phi = nullptr
private

histogram of RecoTrack daughter 1's phi

Definition at line 276 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_phi_barrel

TH1F* m_h1_RecoTrack_dau1_phi_barrel = nullptr
private

histogram of RecoTrack daughter 1's phi (barrel region)

Definition at line 278 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_phi_BW

TH1F* m_h1_RecoTrack_dau1_phi_BW = nullptr
private

histogram of RecoTrack daughter 1's phi (backward region)

Definition at line 277 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_phi_FW

TH1F* m_h1_RecoTrack_dau1_phi_FW = nullptr
private

histogram of RecoTrack daughter 1's phi (forward region)

Definition at line 279 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_phiMother_barrel

TH1F* m_h1_RecoTrack_dau1_phiMother_barrel = nullptr
private

histogram of RecoTrack daughter 1's mother's phi (barrel region)

Definition at line 285 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_phiMother_BW

TH1F* m_h1_RecoTrack_dau1_phiMother_BW = nullptr
private

histogram of RecoTrack daughter 1's mother's phi (backward region)

Definition at line 284 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_phiMother_FW

TH1F* m_h1_RecoTrack_dau1_phiMother_FW = nullptr
private

histogram of RecoTrack daughter 1's mother's phi (forward region)

Definition at line 286 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_phiMother_total

TH1F* m_h1_RecoTrack_dau1_phiMother_total = nullptr
private

histogram of RecoTrack daughter 1's mother's phi

Definition at line 283 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_pt

TH1F* m_h1_RecoTrack_dau1_pt = nullptr
private

histogram of RecoTrack daughter 1's pt

Definition at line 273 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_ptMother

TH1F* m_h1_RecoTrack_dau1_ptMother = nullptr
private

histogram of RecoTrack daughter 1's mother's pt

Definition at line 288 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_pz

TH1F* m_h1_RecoTrack_dau1_pz = nullptr
private

histogram of RecoTrack daughter 1's pz

Definition at line 274 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_RMother

TH1F* m_h1_RecoTrack_dau1_RMother = nullptr
private

histogram of RecoTrack daughter 1's RMother

Definition at line 271 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_theta

TH1F* m_h1_RecoTrack_dau1_theta = nullptr
private

histogram of RecoTrack daughter 1's theta

Definition at line 280 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_thetaMother

TH1F* m_h1_RecoTrack_dau1_thetaMother = nullptr
private

histogram of RecoTrack daughter 1's mother's theta

Definition at line 287 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_dau1_z0

TH1F* m_h1_RecoTrack_dau1_z0 = nullptr
private

histogram of RecoTrack daughter 1's z0

Definition at line 270 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_Mother_costheta

TH1F* m_h1_RecoTrack_Mother_costheta = nullptr
private

histogram of RecoTrack mother's cos(theta)

Definition at line 304 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_Mother_p

TH1F* m_h1_RecoTrack_Mother_p = nullptr
private

histogram of RecoTrack mother's p

Definition at line 298 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_Mother_phi

TH1F* m_h1_RecoTrack_Mother_phi = nullptr
private

histogram of RecoTrack mother's phi

Definition at line 299 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_Mother_phi_barrel

TH1F* m_h1_RecoTrack_Mother_phi_barrel = nullptr
private

histogram of RecoTrack mother's phi (barrel region)

Definition at line 301 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_Mother_phi_BW

TH1F* m_h1_RecoTrack_Mother_phi_BW = nullptr
private

histogram of RecoTrack mother's phi (backward region)

Definition at line 300 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_Mother_phi_FW

TH1F* m_h1_RecoTrack_Mother_phi_FW = nullptr
private

histogram of RecoTrack mother's phi (forward region)

Definition at line 302 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_Mother_pt

TH1F* m_h1_RecoTrack_Mother_pt = nullptr
private

histogram of RecoTrack mother's pt

Definition at line 296 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_Mother_pz

TH1F* m_h1_RecoTrack_Mother_pz = nullptr
private

histogram of RecoTrack mother's pz

Definition at line 297 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_Mother_RMother

TH1F* m_h1_RecoTrack_Mother_RMother = nullptr
private

histogram of RecoTrack mother's RMother

Definition at line 294 of file EffPlotsModule.h.

◆ m_h1_RecoTrack_Mother_theta

TH1F* m_h1_RecoTrack_Mother_theta = nullptr
private

histogram of RecoTrack mother's theta

Definition at line 303 of file EffPlotsModule.h.

◆ m_h1_track_dau0_costheta

TH1F* m_h1_track_dau0_costheta = nullptr
private

histogram of Track daughter 0's cos(theta)

Definition at line 190 of file EffPlotsModule.h.

◆ m_h1_track_dau0_d0

TH1F* m_h1_track_dau0_d0 = nullptr
private

list of histograms filled per Tracks/V0 found in the event

histogram of Track daughter 0's d0

Definition at line 178 of file EffPlotsModule.h.

◆ m_h1_track_dau0_Mother_cosAngle

TH1F* m_h1_track_dau0_Mother_cosAngle = nullptr
private

histogram of Track daughter 0's and mother's cos(opening-angle)

Definition at line 191 of file EffPlotsModule.h.

◆ m_h1_track_dau0_p

TH1F* m_h1_track_dau0_p = nullptr
private

histogram of Track daughter 0's p

Definition at line 184 of file EffPlotsModule.h.

◆ m_h1_track_dau0_phi

TH1F* m_h1_track_dau0_phi = nullptr
private

histogram of Track daughter 0's phi

Definition at line 185 of file EffPlotsModule.h.

◆ m_h1_track_dau0_phi_barrel

TH1F* m_h1_track_dau0_phi_barrel = nullptr
private

histogram of Track daughter 0's phi (barrel region)

Definition at line 187 of file EffPlotsModule.h.

◆ m_h1_track_dau0_phi_BW

TH1F* m_h1_track_dau0_phi_BW = nullptr
private

histogram of Track daughter 0's phi (backward region)

Definition at line 186 of file EffPlotsModule.h.

◆ m_h1_track_dau0_phi_FW

TH1F* m_h1_track_dau0_phi_FW = nullptr
private

histogram of Track daughter 0's phi (forward region)

Definition at line 188 of file EffPlotsModule.h.

◆ m_h1_track_dau0_phiMother_barrel

TH1F* m_h1_track_dau0_phiMother_barrel = nullptr
private

histogram of Track daughter 0's mother's phi (barrel region)

Definition at line 194 of file EffPlotsModule.h.

◆ m_h1_track_dau0_phiMother_BW

TH1F* m_h1_track_dau0_phiMother_BW = nullptr
private

histogram of Track daughter 0's mother's phi (backward region)

Definition at line 193 of file EffPlotsModule.h.

◆ m_h1_track_dau0_phiMother_FW

TH1F* m_h1_track_dau0_phiMother_FW = nullptr
private

histogram of Track daughter 0's mother's phi (forward region)

Definition at line 195 of file EffPlotsModule.h.

◆ m_h1_track_dau0_phiMother_total

TH1F* m_h1_track_dau0_phiMother_total = nullptr
private

histogram of Track daughter 0's mother's phi

Definition at line 192 of file EffPlotsModule.h.

◆ m_h1_track_dau0_pt

TH1F* m_h1_track_dau0_pt = nullptr
private

histogram of Track daughter 0's pt

Definition at line 182 of file EffPlotsModule.h.

◆ m_h1_track_dau0_ptMother

TH1F* m_h1_track_dau0_ptMother = nullptr
private

histogram of Track daughter 0's mother's pt

Definition at line 197 of file EffPlotsModule.h.

◆ m_h1_track_dau0_pz

TH1F* m_h1_track_dau0_pz = nullptr
private

histogram of Track daughter 0's pz

Definition at line 183 of file EffPlotsModule.h.

◆ m_h1_track_dau0_RMother

TH1F* m_h1_track_dau0_RMother = nullptr
private

histogram of Track daughter 0's RMother

Definition at line 180 of file EffPlotsModule.h.

◆ m_h1_track_dau0_theta

TH1F* m_h1_track_dau0_theta = nullptr
private

histogram of Track daughter 0's theta

Definition at line 189 of file EffPlotsModule.h.

◆ m_h1_track_dau0_thetaMother

TH1F* m_h1_track_dau0_thetaMother = nullptr
private

histogram of Track daughter 0's mother's theta

Definition at line 196 of file EffPlotsModule.h.

◆ m_h1_track_dau0_z0

TH1F* m_h1_track_dau0_z0 = nullptr
private

histogram of Track daughter 0's z0

Definition at line 179 of file EffPlotsModule.h.

◆ m_h1_track_dau1_costheta

TH1F* m_h1_track_dau1_costheta = nullptr
private

histogram of Track daughter 1's cos(theta)

Definition at line 215 of file EffPlotsModule.h.

◆ m_h1_track_dau1_d0

TH1F* m_h1_track_dau1_d0 = nullptr
private

histogram of Track daughter 1's d0

Definition at line 203 of file EffPlotsModule.h.

◆ m_h1_track_dau1_Mother_cosAngle

TH1F* m_h1_track_dau1_Mother_cosAngle = nullptr
private

histogram of Track daughter 1's and mother's cos(opening-angle)

Definition at line 216 of file EffPlotsModule.h.

◆ m_h1_track_dau1_p

TH1F* m_h1_track_dau1_p = nullptr
private

histogram of Track daughter 1's p

Definition at line 209 of file EffPlotsModule.h.

◆ m_h1_track_dau1_phi

TH1F* m_h1_track_dau1_phi = nullptr
private

histogram of Track daughter 1's phi

Definition at line 210 of file EffPlotsModule.h.

◆ m_h1_track_dau1_phi_barrel

TH1F* m_h1_track_dau1_phi_barrel = nullptr
private

histogram of Track daughter 1's phi (barrel region)

Definition at line 212 of file EffPlotsModule.h.

◆ m_h1_track_dau1_phi_BW

TH1F* m_h1_track_dau1_phi_BW = nullptr
private

histogram of Track daughter 1's phi (backward region)

Definition at line 211 of file EffPlotsModule.h.

◆ m_h1_track_dau1_phi_FW

TH1F* m_h1_track_dau1_phi_FW = nullptr
private

histogram of Track daughter 1's phi (forward region)

Definition at line 213 of file EffPlotsModule.h.

◆ m_h1_track_dau1_phiMother_barrel

TH1F* m_h1_track_dau1_phiMother_barrel = nullptr
private

histogram of Track daughter 1's mother's phi (barrel region)

Definition at line 219 of file EffPlotsModule.h.

◆ m_h1_track_dau1_phiMother_BW

TH1F* m_h1_track_dau1_phiMother_BW = nullptr
private

histogram of Track daughter 1's mother's phi (backward region)

Definition at line 218 of file EffPlotsModule.h.

◆ m_h1_track_dau1_phiMother_FW

TH1F* m_h1_track_dau1_phiMother_FW = nullptr
private

histogram of Track daughter 1's mother's phi (forward region)

Definition at line 220 of file EffPlotsModule.h.

◆ m_h1_track_dau1_phiMother_total

TH1F* m_h1_track_dau1_phiMother_total = nullptr
private

histogram of Track daughter 1's mother's phi

Definition at line 217 of file EffPlotsModule.h.

◆ m_h1_track_dau1_pt

TH1F* m_h1_track_dau1_pt = nullptr
private

histogram of Track daughter 1's pt

Definition at line 207 of file EffPlotsModule.h.

◆ m_h1_track_dau1_ptMother

TH1F* m_h1_track_dau1_ptMother = nullptr
private

histogram of Track daughter 1's mother's pt

Definition at line 222 of file EffPlotsModule.h.

◆ m_h1_track_dau1_pz

TH1F* m_h1_track_dau1_pz = nullptr
private

histogram of Track daughter 1's pz

Definition at line 208 of file EffPlotsModule.h.

◆ m_h1_track_dau1_RMother

TH1F* m_h1_track_dau1_RMother = nullptr
private

histogram of Track daughter 1's RMother

Definition at line 205 of file EffPlotsModule.h.

◆ m_h1_track_dau1_theta

TH1F* m_h1_track_dau1_theta = nullptr
private

histogram of Track daughter 1's theta

Definition at line 214 of file EffPlotsModule.h.

◆ m_h1_track_dau1_thetaMother

TH1F* m_h1_track_dau1_thetaMother = nullptr
private

histogram of Track daughter 1's mother's theta

Definition at line 221 of file EffPlotsModule.h.

◆ m_h1_track_dau1_z0

TH1F* m_h1_track_dau1_z0 = nullptr
private

histogram of Track daughter 1's z0

Definition at line 204 of file EffPlotsModule.h.

◆ m_h1_V0_costheta

TH1F* m_h1_V0_costheta = nullptr
private

histogram of V0 mother's cos(theta)

Definition at line 238 of file EffPlotsModule.h.

◆ m_h1_V0_p

TH1F* m_h1_V0_p = nullptr
private

histogram of V0 mother's p

Definition at line 232 of file EffPlotsModule.h.

◆ m_h1_V0_phi

TH1F* m_h1_V0_phi = nullptr
private

histogram of V0 mother's phi

Definition at line 233 of file EffPlotsModule.h.

◆ m_h1_V0_phi_barrel

TH1F* m_h1_V0_phi_barrel = nullptr
private

histogram of V0 mother's phi (barrel region)

Definition at line 235 of file EffPlotsModule.h.

◆ m_h1_V0_phi_BW

TH1F* m_h1_V0_phi_BW = nullptr
private

histogram of V0 mother's phi (backward region)

Definition at line 234 of file EffPlotsModule.h.

◆ m_h1_V0_phi_FW

TH1F* m_h1_V0_phi_FW = nullptr
private

histogram of V0 mother's phi (forward region)

Definition at line 236 of file EffPlotsModule.h.

◆ m_h1_V0_pt

TH1F* m_h1_V0_pt = nullptr
private

histogram of V0 mother's pt

Definition at line 230 of file EffPlotsModule.h.

◆ m_h1_V0_pz

TH1F* m_h1_V0_pz = nullptr
private

histogram of V0 mother's pz

Definition at line 231 of file EffPlotsModule.h.

◆ m_h1_V0_RMother

TH1F* m_h1_V0_RMother = nullptr
private

histogram of V0 mother's RMother

Definition at line 228 of file EffPlotsModule.h.

◆ m_h1_V0_theta

TH1F* m_h1_V0_theta = nullptr
private

histogram of V0 mother's theta

Definition at line 237 of file EffPlotsModule.h.

◆ m_h2_MC_dau0_2D

TH2F* m_h2_MC_dau0_2D = nullptr
private

histogram of MCParticle daughter 0's pt vs theta

Definition at line 129 of file EffPlotsModule.h.

◆ m_h2_MC_dau0_2D_BP

TH2F* m_h2_MC_dau0_2D_BP = nullptr
private

histogram of MCParticle daughter 0's pt vs theta (beam pipe)

Definition at line 130 of file EffPlotsModule.h.

◆ m_h2_MC_dau0_2DMother

TH2F* m_h2_MC_dau0_2DMother = nullptr
private

histogram of MCParticle daughter 0's mother's pt vs theta

Definition at line 131 of file EffPlotsModule.h.

◆ m_h2_MC_dau0_pVScostheta

TH2F* m_h2_MC_dau0_pVScostheta = nullptr
private

histogram of MCParticle daughter 0's p vs cos(theta)

Definition at line 132 of file EffPlotsModule.h.

◆ m_h2_MC_dau1_2D

TH2F* m_h2_MC_dau1_2D = nullptr
private

histogram of MCParticle daughter 1's pt vs theta

Definition at line 155 of file EffPlotsModule.h.

◆ m_h2_MC_dau1_2D_BP

TH2F* m_h2_MC_dau1_2D_BP = nullptr
private

histogram of MCParticle daughter 1's pt vs theta (beam pipe)

Definition at line 156 of file EffPlotsModule.h.

◆ m_h2_MC_dau1_2DMother

TH2F* m_h2_MC_dau1_2DMother = nullptr
private

histogram of MCParticle daughter 1's mother's pt vs theta

Definition at line 157 of file EffPlotsModule.h.

◆ m_h2_MC_dau1_pVScostheta

TH2F* m_h2_MC_dau1_pVScostheta = nullptr
private

histogram of MCParticle daughter 1's p vs cos(theta)

Definition at line 158 of file EffPlotsModule.h.

◆ m_h2_MC_Mother_2D

TH2F* m_h2_MC_Mother_2D = nullptr
private

histogram of MCParticle mother's pt vs theta

Definition at line 172 of file EffPlotsModule.h.

◆ m_h2_MC_Mother_2D_BP

TH2F* m_h2_MC_Mother_2D_BP = nullptr
private

histogram of MCParticle mother's pt vs theta (beam pipe)

Definition at line 173 of file EffPlotsModule.h.

◆ m_h2_MC_Mother_pVScostheta

TH2F* m_h2_MC_Mother_pVScostheta = nullptr
private

histogram of MCParticle mother's p vs cos(theta)

Definition at line 174 of file EffPlotsModule.h.

◆ m_h2_RecoTrack_dau0_2D

TH2F* m_h2_RecoTrack_dau0_2D = nullptr
private

histogram of RecoTrack daughter 0's pt vs theta

Definition at line 264 of file EffPlotsModule.h.

◆ m_h2_RecoTrack_dau0_2D_BP

TH2F* m_h2_RecoTrack_dau0_2D_BP = nullptr
private

histogram of RecoTrack daughter 0's pt vs theta (beam pipe)

Definition at line 265 of file EffPlotsModule.h.

◆ m_h2_RecoTrack_dau0_2DMother

TH2F* m_h2_RecoTrack_dau0_2DMother = nullptr
private

histogram of RecoTrack daughter 0's mother's pt vs theta

Definition at line 266 of file EffPlotsModule.h.

◆ m_h2_RecoTrack_dau0_pVScostheta

TH2F* m_h2_RecoTrack_dau0_pVScostheta = nullptr
private

histogram of RecoTrack daughter 0's p vs cos(theta)

Definition at line 267 of file EffPlotsModule.h.

◆ m_h2_RecoTrack_dau1_2D

TH2F* m_h2_RecoTrack_dau1_2D = nullptr
private

histogram of RecoTrack daughter 1's pt vs theta

Definition at line 289 of file EffPlotsModule.h.

◆ m_h2_RecoTrack_dau1_2D_BP

TH2F* m_h2_RecoTrack_dau1_2D_BP = nullptr
private

histogram of RecoTrack daughter 1's pt vs theta (beam pipe)

Definition at line 290 of file EffPlotsModule.h.

◆ m_h2_RecoTrack_dau1_2DMother

TH2F* m_h2_RecoTrack_dau1_2DMother = nullptr
private

histogram of RecoTrack daughter 1's mother's pt vs theta

Definition at line 291 of file EffPlotsModule.h.

◆ m_h2_RecoTrack_dau1_pVScostheta

TH2F* m_h2_RecoTrack_dau1_pVScostheta = nullptr
private

histogram of RecoTrack daughter 1's p vs cos(theta)

Definition at line 292 of file EffPlotsModule.h.

◆ m_h2_RecoTrack_Mother_2D

TH2F* m_h2_RecoTrack_Mother_2D = nullptr
private

histogram of RecoTrack mother's pt vs theta

Definition at line 305 of file EffPlotsModule.h.

◆ m_h2_RecoTrack_Mother_2D_BP

TH2F* m_h2_RecoTrack_Mother_2D_BP = nullptr
private

histogram of RecoTrack mother's pt vs theta (beam pipe)

Definition at line 306 of file EffPlotsModule.h.

◆ m_h2_RecoTrack_Mother_pVScostheta

TH2F* m_h2_RecoTrack_Mother_pVScostheta = nullptr
private

histogram of RecoTrack mother's p vs cos(theta)

Definition at line 307 of file EffPlotsModule.h.

◆ m_h2_track_dau0_2D

TH2F* m_h2_track_dau0_2D = nullptr
private

histogram of Track daughter 0's pt vs theta

Definition at line 198 of file EffPlotsModule.h.

◆ m_h2_track_dau0_2D_BP

TH2F* m_h2_track_dau0_2D_BP = nullptr
private

histogram of Track daughter 0's pt vs theta (beam pipe)

Definition at line 199 of file EffPlotsModule.h.

◆ m_h2_track_dau0_2DMother

TH2F* m_h2_track_dau0_2DMother = nullptr
private

histogram of Track daughter 0's mother's pt vs theta

Definition at line 200 of file EffPlotsModule.h.

◆ m_h2_track_dau0_pVScostheta

TH2F* m_h2_track_dau0_pVScostheta = nullptr
private

histogram of Track daughter 0's p vs cos(theta)

Definition at line 201 of file EffPlotsModule.h.

◆ m_h2_track_dau1_2D

TH2F* m_h2_track_dau1_2D = nullptr
private

histogram of Track daughter 1's pt vs theta

Definition at line 223 of file EffPlotsModule.h.

◆ m_h2_track_dau1_2D_BP

TH2F* m_h2_track_dau1_2D_BP = nullptr
private

histogram of Track daughter 1's pt vs theta (beam pipe)

Definition at line 224 of file EffPlotsModule.h.

◆ m_h2_track_dau1_2DMother

TH2F* m_h2_track_dau1_2DMother = nullptr
private

histogram of Track daughter 1's mother's pt vs theta

Definition at line 225 of file EffPlotsModule.h.

◆ m_h2_track_dau1_pVScostheta

TH2F* m_h2_track_dau1_pVScostheta = nullptr
private

histogram of Track daughter 1's p vs cos(theta)

Definition at line 226 of file EffPlotsModule.h.

◆ m_h2_V0_Mother_2D

TH2F* m_h2_V0_Mother_2D = nullptr
private

histogram of V0 mother's pt vs theta

Definition at line 239 of file EffPlotsModule.h.

◆ m_h2_V0_Mother_2D_BP

TH2F* m_h2_V0_Mother_2D_BP = nullptr
private

histogram of V0 mother's pt vs theta (beam pipe)

Definition at line 240 of file EffPlotsModule.h.

◆ m_h2_V0_Mother_pVScostheta

TH2F* m_h2_V0_Mother_pVScostheta = nullptr
private

histogram of V0 mother's p vs cos(theta)

Definition at line 241 of file EffPlotsModule.h.

◆ m_h3_MC_dau0

TH3F* m_h3_MC_dau0 = nullptr
private

histogram of MCParticle daughter 0's pt vs theta vs phi

Definition at line 112 of file EffPlotsModule.h.

◆ m_h3_MC_dau1

TH3F* m_h3_MC_dau1 = nullptr
private

histogram of MCParticle daughter 1's pt vs theta vs phi

Definition at line 138 of file EffPlotsModule.h.

◆ m_h3_MC_Mother

TH3F* m_h3_MC_Mother = nullptr
private

histogram of MCParticle mother's pt vs theta vs phi

Definition at line 162 of file EffPlotsModule.h.

◆ m_h3_RecoTrack_dau0

TH3F* m_h3_RecoTrack_dau0 = nullptr
private

histogram of RecoTrack daughter 0's pt vs theta vs phi

Definition at line 247 of file EffPlotsModule.h.

◆ m_h3_RecoTrack_dau1

TH3F* m_h3_RecoTrack_dau1 = nullptr
private

histogram of RecoTrack daughter 1's pt vs theta vs phi

Definition at line 272 of file EffPlotsModule.h.

◆ m_h3_RecoTrack_Mother

TH3F* m_h3_RecoTrack_Mother = nullptr
private

histogram of RecoTrack mother's pt vs theta vs phi

Definition at line 295 of file EffPlotsModule.h.

◆ m_h3_track_dau0

TH3F* m_h3_track_dau0 = nullptr
private

histogram of Track daughter 0's pt vs theta vs phi

Definition at line 181 of file EffPlotsModule.h.

◆ m_h3_track_dau1

TH3F* m_h3_track_dau1 = nullptr
private

histogram of Track daughter 1's pt vs theta vs phi

Definition at line 206 of file EffPlotsModule.h.

◆ m_h3_V0

TH3F* m_h3_V0 = nullptr
private

histogram of V0 mother's pt vs theta vs phi

Definition at line 229 of file EffPlotsModule.h.

◆ m_hasReturnValue

bool m_hasReturnValue
privateinherited

True, if the return value is set.

Definition at line 517 of file Module.h.

◆ m_histoList

TList* m_histoList = nullptr
inherited

List of performance-evaluation histograms.

Definition at line 38 of file PerformanceEvaluationBaseClass.h.

◆ m_histoList_check

TList* m_histoList_check = nullptr
private

list of histograms of MCParticle mother and daughters

Definition at line 106 of file EffPlotsModule.h.

◆ m_histoList_Efficiencies

TList* m_histoList_Efficiencies = nullptr
private

list of histograms of efficiencies

Definition at line 104 of file EffPlotsModule.h.

◆ m_histoList_efficiency

TList* m_histoList_efficiency = nullptr
inherited

List of efficiency histograms.

Definition at line 46 of file PerformanceEvaluationBaseClass.h.

◆ m_histoList_evtCharacterization

TList* m_histoList_evtCharacterization = nullptr
inherited

List of event-characterization histograms.

Definition at line 41 of file PerformanceEvaluationBaseClass.h.

◆ m_histoList_firstHit

TList* m_histoList_firstHit = nullptr
inherited

List of first-hit-position histograms.

Definition at line 43 of file PerformanceEvaluationBaseClass.h.

◆ m_histoList_fit

TList* m_histoList_fit = nullptr
inherited

List of track-fit histograms.

Definition at line 45 of file PerformanceEvaluationBaseClass.h.

◆ m_histoList_GA

TList* m_histoList_GA = nullptr
private

list of histograms of geometric acceptance

Definition at line 105 of file EffPlotsModule.h.

◆ m_histoList_MCParticles

TList* m_histoList_MCParticles = nullptr
private

list of histograms for MCParticles

Definition at line 101 of file EffPlotsModule.h.

◆ m_histoList_multiplicity

TList* m_histoList_multiplicity = nullptr
inherited

List of multiplicity histograms.

Definition at line 40 of file PerformanceEvaluationBaseClass.h.

◆ m_histoList_others

TList* m_histoList_others = nullptr
inherited

List of other performance-evaluation histograms.

Definition at line 48 of file PerformanceEvaluationBaseClass.h.

◆ m_histoList_pr

TList* m_histoList_pr = nullptr
inherited

List of pattern-recognition histograms.

Definition at line 44 of file PerformanceEvaluationBaseClass.h.

◆ m_histoList_purity

TList* m_histoList_purity = nullptr
inherited

List of purity histograms.

Definition at line 47 of file PerformanceEvaluationBaseClass.h.

◆ m_histoList_RecoTracks

TList* m_histoList_RecoTracks = nullptr
private

list of histograms for RecoTracks

Definition at line 102 of file EffPlotsModule.h.

◆ m_histoList_Tracks

TList* m_histoList_Tracks = nullptr
private

list of histograms for Tracks

Definition at line 103 of file EffPlotsModule.h.

◆ m_histoList_trkQuality

TList* m_histoList_trkQuality = nullptr
inherited

List of track-quality histograms.

Definition at line 42 of file PerformanceEvaluationBaseClass.h.

◆ m_logConfig

LogConfig m_logConfig
privateinherited

The log system configuration of the module.

Definition at line 513 of file Module.h.

◆ m_MCDaughter0

MCParticle* m_MCDaughter0 = nullptr
private

daughter 0 of a decayed MCParticle

Definition at line 98 of file EffPlotsModule.h.

◆ m_MCDaughter1

MCParticle* m_MCDaughter1 = nullptr
private

daughter 1 of a decayed MCParticle

Definition at line 99 of file EffPlotsModule.h.

◆ m_MCParticles

StoreArray<MCParticle> m_MCParticles
private

MCParticle StoreArray.

Definition at line 93 of file EffPlotsModule.h.

◆ m_MCParticlesName

std::string m_MCParticlesName
private

user-defined parameters

name of the MCParticles dataobjects collection

Definition at line 85 of file EffPlotsModule.h.

◆ m_MCRecoTracksName

std::string m_MCRecoTracksName
private

name of the MCRecoTracks dataobjects collection

Definition at line 88 of file EffPlotsModule.h.

◆ m_moduleParamList

ModuleParamList m_moduleParamList
privateinherited

List storing and managing all parameter of the module.

Definition at line 515 of file Module.h.

◆ m_name

std::string m_name
privateinherited

The name of the module, saved as a string (user-modifiable)

Definition at line 507 of file Module.h.

◆ m_package

std::string m_package
privateinherited

Package this module is found in (may be empty).

Definition at line 509 of file Module.h.

◆ m_propertyFlags

unsigned int m_propertyFlags
privateinherited

The properties of the module as bitwise or (with |) of EModulePropFlags.

Definition at line 511 of file Module.h.

◆ m_RecoTracksName

std::string m_RecoTracksName
private

name of the RecoTracks dataobjects collection

Definition at line 87 of file EffPlotsModule.h.

◆ m_returnValue

int m_returnValue
privateinherited

The return value.

Definition at line 518 of file Module.h.

◆ m_rootFileName

std::string m_rootFileName
inherited

root file name

Definition at line 137 of file PerformanceEvaluationBaseClass.h.

◆ m_rootFilePtr

TFile* m_rootFilePtr = nullptr
inherited

pointer at root file used for storing histograms

Definition at line 140 of file PerformanceEvaluationBaseClass.h.

◆ m_TFRColName

std::string m_TFRColName
private

name of the TFR dataobjects collection

Definition at line 89 of file EffPlotsModule.h.

◆ m_TrackColName

std::string m_TrackColName
private

name of the Tracks dataobjects collection

Definition at line 90 of file EffPlotsModule.h.

◆ m_type

std::string m_type
privateinherited

The type of the module, saved as a string.

Definition at line 508 of file Module.h.

◆ m_V0sName

std::string m_V0sName
private

name of the V0s dataobjects collection

Definition at line 86 of file EffPlotsModule.h.

◆ m_V0sType

std::string m_V0sType
private

type (as a string) of the selected V0

Definition at line 91 of file EffPlotsModule.h.


The documentation for this class was generated from the following files: