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 ()
 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

bool isK_Short (const MCParticle &the_mcParticle)
 determine if the MCParticle is a K-short
 
bool isLambda0 (const MCParticle &the_mcParticle)
 determine if the MCParticle is a Lambda0
 
int nMatchedDaughters (const MCParticle &the_mcParticle)
 get the number of matched daughters of the MCParticle
 
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.
 

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,
85 };
@ 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_DontCollectStatistics
No statistics is collected for this module.
Definition: Module.h:84
@ 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

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:560

◆ ~EffPlotsModule()

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 507 of file EffPlotsModule.cc.

508{
509
510}

◆ 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{
182 newModule->m_moduleParamList.setParameters(getParamList());
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.
const ModuleParamList & getParamList() const
Return module param list.
Definition: Module.h:363
const std::string & getName() const
Returns the name of the module.
Definition: Module.h:187
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:512
LogConfig m_logConfig
The log system configuration of the module.
Definition: Module.h:514
std::vector< ModuleCondition > m_conditions
Module condition, only non-null if set.
Definition: Module.h:521
std::string m_package
Package this module is found in (may be empty).
Definition: Module.h:510
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 426 of file Module.h.

426{ beginRun(); }
virtual void beginRun()
Called when entering a new run.
Definition: Module.h:147

◆ 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 439 of file Module.h.

439{ endRun(); }
virtual void endRun()
This method is called if the current run ends.
Definition: Module.h:166

◆ 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 432 of file Module.h.

432{ event(); }
virtual void event()
This method is the core of the module.
Definition: Module.h:157

◆ 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 420 of file Module.h.

420{ initialize(); }
virtual void initialize()
Initialize the Module.
Definition: Module.h:109

◆ 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 445 of file Module.h.

445{ terminate(); }
virtual void terminate()
This method is called at the end of the event processing.
Definition: Module.h:176

◆ 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 = (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] = (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] = (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] = (TH2F*)duplicateHistogram(total.c_str(), trueTitle.c_str(), h2_den, histoList);
472 h2[1] = (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] = (TH2F*)duplicateHistogram(total2.c_str(), title2.c_str(), h2_RecoTrack, histoList);
529 h2[1] = (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] = (TH2F*)duplicateHistogram(total1.c_str(), title1.c_str(), h2_MC, histoList);
550 h2[3] = (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 887 of file EffPlotsModule.cc.

888{
889 double track_dau0 = m_h1_track_dau0_RMother->GetEntries();
890 double RecoTrack_dau0 = m_h1_RecoTrack_dau0_RMother->GetEntries();
891 double MC_dau0 = m_h1_MC_dau0_RMother->GetEntries();
892 double eff_dau0_noGA = track_dau0 / MC_dau0;
893 double effErr_dau0_noGA = sqrt(eff_dau0_noGA * (1 - eff_dau0_noGA)) / sqrt(MC_dau0);
894 double eff_dau0_withGA = track_dau0 / RecoTrack_dau0;
895 double effErr_dau0_withGA = sqrt(eff_dau0_withGA * (1 - eff_dau0_withGA)) / sqrt(RecoTrack_dau0);
896
897 double track_dau1 = m_h1_track_dau1_RMother->GetEntries();
898 double RecoTrack_dau1 = m_h1_RecoTrack_dau1_RMother->GetEntries();
899 double MC_dau1 = m_h1_MC_dau1_RMother->GetEntries();
900 double eff_dau1_noGA = track_dau1 / MC_dau1;
901 double effErr_dau1_noGA = sqrt(eff_dau1_noGA * (1 - eff_dau1_noGA)) / sqrt(MC_dau1);
902 double eff_dau1_withGA = track_dau1 / RecoTrack_dau1;
903 double effErr_dau1_withGA = sqrt(eff_dau1_withGA * (1 - eff_dau1_withGA)) / sqrt(RecoTrack_dau1);
904
905 double track_Mother = m_h1_V0_RMother->GetEntries();
906 double RecoTrack_Mother = m_h1_RecoTrack_Mother_RMother->GetEntries();
907 double MC_Mother = m_h1_MC_Mother_RMother->GetEntries();
908 double eff_Mother_noGA = track_Mother / MC_Mother;
909 double effErr_Mother_noGA = sqrt(eff_Mother_noGA * (1 - eff_Mother_noGA)) / sqrt(MC_Mother);
910 double eff_Mother_withGA = track_Mother / RecoTrack_Mother;
911 double effErr_Mother_withGA = sqrt(eff_Mother_withGA * (1 - eff_Mother_withGA)) / sqrt(RecoTrack_Mother);
912
913
914
915
916 B2INFO("");
917 B2INFO("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
918 B2INFO("~ V0 Finding Performance Evaluation ~ SHORT SUMMARY ~");
919 B2INFO("");
920 B2INFO(" + overall, normalized to MC particles (_noGeoAcc):");
921 B2INFO("");
922 B2INFO(" efficiency dau0 = (" << eff_dau0_noGA * 100 << " +/- " << effErr_dau0_noGA * 100 << ")% ");
923 B2INFO(" efficiency dau1 = (" << eff_dau1_noGA * 100 << " +/- " << effErr_dau1_noGA * 100 << ")% ");
924 B2INFO(" efficiency Mother = (" << eff_Mother_noGA * 100 << " +/- " << effErr_Mother_noGA * 100 << ")% ");
925 B2INFO("");
926 B2INFO(" + overall, normalized to RecoTracks(_withGeoAcc):");
927 B2INFO("");
928 B2INFO(" efficiency dau0 = (" << eff_dau0_withGA * 100 << " +/- " << effErr_dau0_withGA * 100 << ")% ");
929 B2INFO(" efficiency dau1 = (" << eff_dau1_withGA * 100 << " +/- " << effErr_dau1_withGA * 100 << ")% ");
930 B2INFO(" efficiency Mother = (" << eff_Mother_withGA * 100 << " +/- " << effErr_Mother_withGA * 100 << ")% ");
931 B2INFO("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
932
933}
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:519
bool m_hasReturnValue
True, if the return value is set.
Definition: Module.h:518

◆ event()

void event ( void  )
overridevirtual

This method is called for each event.

Reimplemented from Module.

Definition at line 512 of file EffPlotsModule.cc.

513{
514
515 ROOT::Math::XYZVector magField = BFieldManager::getField(0, 0, 0) / Unit::T;
516
517 B2DEBUG(29, "+++++ 1. loop on MCParticles");
518 for (const MCParticle& mcParticle : m_MCParticles) {
519
520 //------------------------------------------------------------------//
521 // MC PARTICLES //
522 //------------------------------------------------------------------//
523
524 if (m_V0sType == "Lambda0") {
525 if (! isLambda0(mcParticle))
526 continue;
527
528 std::vector< MCParticle* > MCPart_dau = mcParticle.getDaughters();
529
530 if (abs(MCPart_dau[0]->getPDG()) == Const::pion.getPDGCode() && abs(MCPart_dau[1]->getPDG()) == Const::proton.getPDGCode()) {
531 m_MCDaughter0 = MCPart_dau[0];
532 m_MCDaughter1 = MCPart_dau[1];
533 } else if (abs(MCPart_dau[0]->getPDG()) == Const::proton.getPDGCode() && abs(MCPart_dau[1]->getPDG()) == Const::pion.getPDGCode()) {
534 m_MCDaughter0 = MCPart_dau[1];
535 m_MCDaughter1 = MCPart_dau[0];
536 } else B2INFO("Lambda daughters != pi & p");
537 }
538
539 else if (m_V0sType == "Ks") {
540 if (! isK_Short(mcParticle))
541 continue;
542
543 std::vector< MCParticle* > MCPart_dau = mcParticle.getDaughters();
544
545 if (MCPart_dau[0]->getPDG() == Const::pion.getPDGCode() && MCPart_dau[1]->getPDG() == -Const::pion.getPDGCode()) {
546 m_MCDaughter0 = MCPart_dau[0];
547 m_MCDaughter1 = MCPart_dau[1];
548 } else if (MCPart_dau[0]->getPDG() == -Const::pion.getPDGCode() && MCPart_dau[1]->getPDG() == Const::pion.getPDGCode()) {
549 m_MCDaughter0 = MCPart_dau[1];
550 m_MCDaughter1 = MCPart_dau[0];
551 } else B2INFO("Ks daughters != pi+ & pi-");
552 }
553
554 MCParticleInfo mcParticleInfo(mcParticle, magField);
555 MCParticleInfo mcParticleInfo_dau0(*m_MCDaughter0, magField);
556 MCParticleInfo mcParticleInfo_dau1(*m_MCDaughter1, magField);
557
558 const ROOT::Math::XYZVector& MC_vtx = mcParticle.getDecayVertex();
559
560 float MC_transDist = sqrt(MC_vtx.X() * MC_vtx.X() + MC_vtx.Y() * MC_vtx.Y());
561 float MC_pt = mcParticle.getMomentum().Rho();
562 float MC_p = mcParticle.getMomentum().R();
563 float MC_phi = mcParticle.getMomentum().Phi();
564 float MC_theta = mcParticle.getMomentum().Theta();
565 float MC_costheta = cos(mcParticle.getMomentum().Theta());
566
567 m_h1_MC_dau0_d0->Fill(mcParticleInfo_dau0.getD0());
568 m_h1_MC_dau0_z0->Fill(mcParticleInfo_dau0.getZ0());
569 m_h1_MC_dau0_RMother->Fill(MC_transDist);
576 m_h1_MC_dau0_costheta->Fill(cos(m_MCDaughter0->getMomentum().Theta()));
577 m_h1_MC_dau0_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter0->getMomentum()) / mcParticle.getMomentum().R() /
579
580 m_h1_MC_dau0_thetaMother->Fill(MC_theta);
581 m_h1_MC_dau0_ptMother->Fill(MC_pt);
582
583 m_h1_MC_dau0_phiMother_total->Fill(MC_phi);
585 m_h2_MC_dau0_2DMother->Fill(MC_theta, MC_pt);
588
589 m_h1_MC_dau1_d0->Fill(mcParticleInfo_dau1.getD0());
590 m_h1_MC_dau1_z0->Fill(mcParticleInfo_dau1.getZ0());
591 m_h1_MC_dau1_RMother->Fill(MC_transDist);
598 m_h1_MC_dau1_costheta->Fill(cos(m_MCDaughter1->getMomentum().Theta()));
599 m_h1_MC_dau1_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter1->getMomentum()) / mcParticle.getMomentum().R() /
601
602 m_h1_MC_dau1_thetaMother->Fill(MC_theta);
603 m_h1_MC_dau1_ptMother->Fill(MC_pt);
604
605 m_h1_MC_dau1_phiMother_total->Fill(MC_phi);
607 m_h2_MC_dau1_2DMother->Fill(MC_theta, MC_pt);
610
611 m_h1_MC_Mother_RMother->Fill(MC_transDist);
612 m_h3_MC_Mother->Fill(MC_pt, MC_theta, MC_phi);
613 m_h1_MC_Mother_pt->Fill(MC_pt);
614 m_h1_MC_Mother_pz->Fill(mcParticle.getMomentum().z());
615 m_h1_MC_Mother_p->Fill(mcParticle.getMomentum().R());
616 m_h1_MC_Mother_phi->Fill(MC_phi);
617 m_h1_MC_Mother_theta->Fill(MC_theta);
618 m_h1_MC_Mother_costheta->Fill(cos(mcParticle.getMomentum().Theta()));
619 m_h2_MC_Mother_2D->Fill(MC_theta, MC_pt);
620 m_h2_MC_Mother_pVScostheta->Fill(MC_costheta, MC_p);
621 m_h1_MC_Mother_PDG->Fill(mcParticle.getPDG());
622
623 //beam pipe
624 if (MC_transDist < 1.) {
627 m_h2_MC_Mother_2D_BP->Fill(MC_theta, MC_pt);
628 }
629
630
631 if (MC_theta > (120 * TMath::Pi() / 180.)) { //BW
632 m_h1_MC_dau0_phiMother_BW->Fill(MC_phi);
633 m_h1_MC_dau1_phiMother_BW->Fill(MC_phi);
636 m_h1_MC_Mother_phi_BW->Fill(MC_phi);
637 } else if (MC_theta < (30. * TMath::Pi() / 180.)) { //FW, theta < 30)
638 m_h1_MC_dau0_phiMother_FW->Fill(MC_phi);
639 m_h1_MC_dau1_phiMother_FW->Fill(MC_phi);
642 m_h1_MC_Mother_phi_FW->Fill(MC_phi);
643 } else { //barrel
644 m_h1_MC_dau0_phiMother_barrel->Fill(MC_phi);
645 m_h1_MC_dau1_phiMother_barrel->Fill(MC_phi);
648 m_h1_MC_Mother_phi_barrel->Fill(MC_phi);
649 }
650
651 //------------------------------------------------------------------//
652 // MC RECO TRACKS //
653 //------------------------------------------------------------------//
654
655 RelationVector<RecoTrack> MCRecoTracks_MCdau0 =
656 DataStore::getRelationsWithObj<RecoTrack>(m_MCDaughter0, m_MCRecoTracksName); //oppure &m_MCDaughter0;
657
658 RelationVector<RecoTrack> MCRecoTracks_MCdau1 =
659 DataStore::getRelationsWithObj<RecoTrack>(m_MCDaughter1, m_MCRecoTracksName);
660
661 if (MCRecoTracks_MCdau0.size() > 0) {
662 m_h1_RecoTrack_dau0_d0->Fill(mcParticleInfo_dau0.getD0());
663 m_h1_RecoTrack_dau0_z0->Fill(mcParticleInfo_dau0.getZ0());
664 m_h1_RecoTrack_dau0_RMother->Fill(MC_transDist);
666 m_MCDaughter0->getMomentum().Phi());
673 m_h1_RecoTrack_dau0_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter0->getMomentum()) /
674 mcParticle.getMomentum().R() /
676
677 m_h1_RecoTrack_dau0_thetaMother->Fill(MC_theta);
678 m_h1_RecoTrack_dau0_ptMother->Fill(MC_pt);
679
682 m_h2_RecoTrack_dau0_2DMother->Fill(MC_theta, MC_pt);
684
685 if (MC_transDist < 1.) {
687 }
688
689 if (m_MCDaughter0->getMomentum().Theta() > (120 * TMath::Pi() / 180.)) m_h1_RecoTrack_dau0_phi_BW->Fill(
690 m_MCDaughter0->getMomentum().Phi());
691 else if (m_MCDaughter0->getMomentum().Theta() < (30. * TMath::Pi() / 180.)) m_h1_RecoTrack_dau0_phi_FW->Fill(
692 m_MCDaughter0->getMomentum().Phi());
694
695 if (MC_theta > (120 * TMath::Pi() / 180.)) m_h1_RecoTrack_dau0_phiMother_BW->Fill(MC_phi);
696 else if (MC_theta < (30. * TMath::Pi() / 180.)) m_h1_RecoTrack_dau0_phiMother_FW->Fill(MC_phi);
697 else m_h1_RecoTrack_dau0_phiMother_barrel->Fill(MC_phi);
698
699 //V0 candidates
700 if (MCRecoTracks_MCdau1.size() > 0) {
701 m_h1_RecoTrack_Mother_RMother->Fill(MC_transDist);
702 m_h3_RecoTrack_Mother->Fill(MC_pt, MC_theta, MC_phi);
703 m_h1_RecoTrack_Mother_pt->Fill(MC_pt);
704 m_h1_RecoTrack_Mother_pz->Fill(mcParticle.getMomentum().z());
705 m_h1_RecoTrack_Mother_p->Fill(mcParticle.getMomentum().R());
706 m_h1_RecoTrack_Mother_phi->Fill(MC_phi);
707 m_h1_RecoTrack_Mother_theta->Fill(MC_theta);
708 m_h1_RecoTrack_Mother_costheta->Fill(cos(mcParticle.getMomentum().Theta()));
709
710 m_h1_RecoTrack_Mother_pt->Fill(MC_pt);
711 m_h2_RecoTrack_Mother_2D->Fill(MC_theta, MC_pt);
712
713 m_h2_RecoTrack_Mother_pVScostheta->Fill(MC_costheta, MC_p);
714
715 if (MC_transDist < 1.) m_h2_RecoTrack_Mother_2D_BP->Fill(MC_theta, MC_pt);
716
717 if (MC_theta > (120 * TMath::Pi() / 180.)) //BW
718 m_h1_RecoTrack_Mother_phi_BW->Fill(MC_phi);
719 else if (MC_theta < (30. * TMath::Pi() / 180.))//FW
720 m_h1_RecoTrack_Mother_phi_FW->Fill(MC_phi);
721 else
723 }
724 }
725
726 if (MCRecoTracks_MCdau1.size() > 0) {
727 m_h1_RecoTrack_dau1_d0->Fill(mcParticleInfo_dau1.getD0());
728 m_h1_RecoTrack_dau1_z0->Fill(mcParticleInfo_dau1.getZ0());
729 m_h1_RecoTrack_dau1_RMother->Fill(MC_transDist);
731 m_MCDaughter1->getMomentum().Phi());
738 m_h1_RecoTrack_dau1_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter1->getMomentum()) /
739 mcParticle.getMomentum().R() /
741
742 m_h1_RecoTrack_dau1_thetaMother->Fill(MC_theta);
743 m_h1_RecoTrack_dau1_ptMother->Fill(MC_pt);
744
747 m_h2_RecoTrack_dau1_2DMother->Fill(MC_theta, MC_pt);
749
750 if (MC_transDist < 1.) {
752
753 if (m_MCDaughter1->getMomentum().Theta() > (120 * TMath::Pi() / 180.)) m_h1_RecoTrack_dau1_phi_BW->Fill(
754 m_MCDaughter1->getMomentum().Phi());
755 else if (m_MCDaughter1->getMomentum().Theta() < (30. * TMath::Pi() / 180.)) m_h1_RecoTrack_dau1_phi_FW->Fill(
756 m_MCDaughter1->getMomentum().Phi());
758
759 if (MC_theta > (120 * TMath::Pi() / 180.)) m_h1_RecoTrack_dau1_phiMother_BW->Fill(MC_phi);
760 else if (MC_theta < (30. * TMath::Pi() / 180.)) m_h1_RecoTrack_dau1_phiMother_FW->Fill(MC_phi);
761 else m_h1_RecoTrack_dau1_phiMother_barrel->Fill(MC_phi);
762 }
763 }
764
765 //------------------------------------------------------------------//
766 // TRACKS //
767 //------------------------------------------------------------------//
768
769 Track* Track_dau0ToMCParticle = m_MCDaughter0->getRelated<Track>();
770 Track* Track_dau1ToMCParticle = m_MCDaughter1->getRelated<Track>();
771
772 if (Track_dau0ToMCParticle) {
773 m_h1_track_dau0_d0->Fill(mcParticleInfo_dau0.getD0());
774 m_h1_track_dau0_z0->Fill(mcParticleInfo_dau0.getZ0());
775 m_h1_track_dau0_RMother->Fill(MC_transDist);
783 m_h1_track_dau0_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter0->getMomentum()) / mcParticle.getMomentum().R() /
785
786 m_h1_track_dau0_thetaMother->Fill(MC_theta);
787 m_h1_track_dau0_ptMother->Fill(MC_pt);
788
790
792 m_h2_track_dau0_2DMother->Fill(MC_theta, MC_pt);
794
795 if (MC_transDist < 1.)
797
798 if (MC_theta > (120 * TMath::Pi() / 180.)) { //BW
799 m_h1_track_dau0_phiMother_BW->Fill(MC_phi);
801 } else if (MC_theta < (30 * TMath::Pi() / 180.)) { //FW
802 m_h1_track_dau0_phiMother_FW->Fill(MC_phi);
804 } else { //barrel
807 }
808 }
809
810 if (Track_dau1ToMCParticle) {
811 m_h1_track_dau1_d0->Fill(mcParticleInfo_dau1.getD0());
812 m_h1_track_dau1_z0->Fill(mcParticleInfo_dau1.getZ0());
813 m_h1_track_dau1_RMother->Fill(MC_transDist);
821 m_h1_track_dau1_Mother_cosAngle->Fill(mcParticle.getMomentum().Dot(m_MCDaughter1->getMomentum()) / mcParticle.getMomentum().R() /
823
824 m_h1_track_dau1_thetaMother->Fill(MC_theta);
825 m_h1_track_dau1_ptMother->Fill(MC_pt);
826
828
830 m_h2_track_dau1_2DMother->Fill(MC_theta, MC_pt);
832
833 if (MC_transDist < 1.)
835
836 if (MC_theta > (120 * TMath::Pi() / 180.)) { //BW
837 m_h1_track_dau1_phiMother_BW->Fill(MC_phi);
839 } else if (MC_theta < (30 * TMath::Pi() / 180.)) { //FW
840 m_h1_track_dau1_phiMother_FW->Fill(MC_phi);
842 } else { //barrel
845 }
846 }
847
848 int nMatchedDau = nMatchedDaughters(mcParticle);
849
850 //V0: proceed only in case the MCParticle daughters have one associated reconstructed track:
851 if (nMatchedDau != 2)
852 continue;
853
854 int pdgCode = mcParticle.getPDG();
855 B2DEBUG(29, "MCParticle has PDG code " << pdgCode);
856
857 RelationVector<V0ValidationVertex> V0s_toMCParticle =
858 DataStore::getRelationsWithObj<V0ValidationVertex>(&mcParticle, m_V0sName);
859
860 if (V0s_toMCParticle.size() > 0) {
861
862 m_h1_V0_RMother->Fill(MC_transDist);
863 m_h3_V0->Fill(mcParticleInfo.getPt(), mcParticleInfo.getPtheta(), mcParticleInfo.getPphi());
864 m_h1_V0_pt->Fill(mcParticleInfo.getPt());
865 m_h1_V0_pz->Fill(mcParticleInfo.getPz());
866 m_h1_V0_p->Fill(mcParticleInfo.getP());
867 m_h1_V0_phi->Fill(mcParticleInfo.getPphi());
868 m_h1_V0_theta->Fill(mcParticleInfo.getPtheta());
869 m_h1_V0_costheta->Fill(cos(mcParticle.getMomentum().Theta()));
870 m_h2_V0_Mother_2D->Fill(MC_theta, MC_p);
871 m_h2_V0_Mother_pVScostheta->Fill(MC_costheta, MC_p);
872
873 if (MC_transDist < 1.) m_h2_V0_Mother_2D_BP->Fill(MC_theta, MC_pt);
874
875 if (MC_theta > (120 * TMath::Pi() / 180.)) //BW
876 m_h1_V0_phi_BW->Fill(mcParticleInfo.getPphi());
877
878 else if (MC_theta < (30 * TMath::Pi() / 180.))//FW
879 m_h1_V0_phi_FW->Fill(mcParticleInfo.getPphi());
880
881 else //barrel
882 m_h1_V0_phi_barrel->Fill(mcParticleInfo.getPphi());
883 }
884 }
885}
static const ChargedStable pion
charged pion particle
Definition: Const.h:661
static const ChargedStable proton
proton particle
Definition: Const.h:663
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
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
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)
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
This struct is used by the TrackingPerformanceEvaluation Module to save information of reconstructed ...
A Class to store the Monte Carlo particle information.
Definition: MCParticle.h:32
int getPDG() const
Return PDG code of particle.
Definition: MCParticle.h:112
ROOT::Math::XYZVector getMomentum() const
Return momentum.
Definition: MCParticle.h:198
Class for type safe access to objects that are referred to in relations.
size_t size() const
Get number of relations.
T * getRelated(const std::string &name="", const std::string &namedRelation="") const
Get the object to or from which this object has a relation.
Class that bundles various TrackFitResults.
Definition: Track.h:25
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.
Definition: BFieldManager.h:91

◆ 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 pathes */
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://confluence.desy.de/display/BI/Software+Basf2manual#Module_Development
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>()),
@ 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: "<"
Base class for Modules.
Definition: Module.h:72
LogConfig & getLogConfig()
Returns the log system configuration.
Definition: Module.h:225
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 setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
Definition: Module.cc:208
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
void setLogConfig(const LogConfig &logConfig)
Set the log system configuration.
Definition: Module.h:230
const std::string & getDescription() const
Returns the description of the module.
Definition: Module.h:202
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
bool hasCondition() const
Returns true if at least one condition was set for the module.
Definition: Module.h:311
const std::string & getPackage() const
Returns the package this module is in.
Definition: Module.h:197
void setName(const std::string &name)
Set the name of the module.
Definition: Module.h:214
bool hasProperties(unsigned int propertyFlags) const
Returns true if all specified property flags are available in this module.
Definition: Module.cc:160
std::string getPathString() const override
return the module name.
Definition: Module.cc:192

◆ 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 = (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] = (TH2F*)duplicateHistogram(name, title, h2_den, histoList);
616 h2[1] = (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 324 of file Module.h.

325 {
326 return m_conditions;
327 }

◆ getCondition()

const ModuleCondition * getCondition ( ) const
inlineinherited

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

Definition at line 314 of file Module.h.

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

◆ 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 202 of file Module.h.

202{return m_description;}
std::string m_description
The description of the module.
Definition: Module.h:511

◆ 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, StorageRootOutputModule, and RootOutputModule.

Definition at line 134 of file Module.h.

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

◆ getLogConfig()

LogConfig & getLogConfig ( )
inlineinherited

Returns the log system configuration.

Definition at line 225 of file Module.h.

225{return m_logConfig;}

◆ getModules()

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

no submodules, return empty list

Implements PathElement.

Definition at line 506 of file Module.h.

506{ 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 187 of file Module.h.

187{return m_name;}
std::string m_name
The name of the module, saved as a string (user-modifiable)
Definition: Module.h:508

◆ getPackage()

const std::string & getPackage ( ) const
inlineinherited

Returns the package this module is in.

Definition at line 197 of file Module.h.

197{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.
ModuleParamList m_moduleParamList
List storing and managing all parameter of the module.
Definition: Module.h:516

◆ getParamList()

const ModuleParamList & getParamList ( ) const
inlineinherited

Return module param list.

Definition at line 363 of file Module.h.

363{ 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 381 of file Module.h.

381{ 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:509

◆ hasCondition()

bool hasCondition ( ) const
inlineinherited

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

Definition at line 311 of file Module.h.

311{ 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 378 of file Module.h.

378{ 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://confluence.desy.de/display/BI/Software+ModCondTut 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
67 trackFitResults.isRequired();
68
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 = (TH1F*)duplicateHistogram("h1trackdau0D0", "d0 dau_{0}", m_h1_MC_dau0_d0, m_histoList_Tracks);
269 m_h1_track_dau0_z0 = (TH1F*)duplicateHistogram("h1trackdau0Z0", "z0 dau_{0}", m_h1_MC_dau0_z0, m_histoList_Tracks);
270 m_h1_track_dau0_RMother = (TH1F*)duplicateHistogram("h1trackdau0RMother", "dau_{0}, R mother", m_h1_MC_dau0_RMother,
272 m_h3_track_dau0 = (TH3F*)duplicateHistogram("h3trackdau0", "entry per track dau_{0}", m_h3_MC_dau0, m_histoList_Tracks);
273 m_h1_track_dau0_pt = (TH1F*)duplicateHistogram("h1trackdau0Pt", "p_{T} dau_{0}", m_h1_MC_dau0_pt, m_histoList_Tracks);
274 m_h1_track_dau0_pz = (TH1F*)duplicateHistogram("h1trackdau0Pz", "p_{z} dau_{0}", m_h1_MC_dau0_pz, m_histoList_Tracks);
275 m_h1_track_dau0_p = (TH1F*)duplicateHistogram("h1trackdau0P", "p dau_{0}", m_h1_MC_dau0_p, m_histoList_Tracks);
276 m_h1_track_dau0_theta = (TH1F*)duplicateHistogram("h1trackdau0Theta", "#theta dau_{0}", m_h1_MC_dau0_theta, m_histoList_Tracks);
277 m_h1_track_dau0_costheta = (TH1F*)duplicateHistogram("h1trackdau0CosTheta", "cos#theta dau_{0}", m_h1_MC_dau0_costheta,
279 m_h1_track_dau0_Mother_cosAngle = (TH1F*)duplicateHistogram("h1trackdau0MothercosAngle", "#alpha_{mother,dau_{0}}",
281 m_h1_track_dau0_phi = (TH1F*)duplicateHistogram("h1trackdau0Phi", "#phi dau_{0}", m_h1_MC_dau0_phi, m_histoList_Tracks);
282 m_h1_track_dau0_phi_BW = (TH1F*)duplicateHistogram("h1trackdau0PhiBW", "#phi dau_{0}", m_h1_MC_dau0_phi_BW, m_histoList_Tracks);
283 m_h1_track_dau0_phi_barrel = (TH1F*)duplicateHistogram("h1trackdau0Phibarrel", "#phi dau_{0}", m_h1_MC_dau0_phi_barrel,
285 m_h1_track_dau0_phi_FW = (TH1F*)duplicateHistogram("h1trackdau0PhiFW", "#phi dau_{0}", m_h1_MC_dau0_phi_FW, m_histoList_Tracks);
286
287 m_h1_track_dau0_phiMother_total = (TH1F*)duplicateHistogram("h1trackdau0PhiMothertotal", "dau_{0}, #phi_{mother}",
289 m_h1_track_dau0_phiMother_BW = (TH1F*)duplicateHistogram("h1trackdau0PhiMotherBW", "dau_{0}, #phi_{mother}, BW",
291 m_h1_track_dau0_phiMother_barrel = (TH1F*)duplicateHistogram("h1trackdau0PhiMotherbarrel", "dau_{0}, #phi_{mother}, barrel",
293 m_h1_track_dau0_phiMother_FW = (TH1F*)duplicateHistogram("h1trackdau0PhiMotherFW", "dau_{0}, #phi_{mother}, FW",
295
296 m_h1_track_dau0_thetaMother = (TH1F*)duplicateHistogram("h1trackdau0ThetaMother", "#theta_{mother} dau_{0}",
298 m_h1_track_dau0_ptMother = (TH1F*)duplicateHistogram("h1trackdau0PtMother", "p_{T,mother} dau_{0}", m_h1_MC_dau0_ptMother,
300
301 m_h2_track_dau0_2D = (TH2F*)duplicateHistogram("h2trackdau02D", "p_{T} VS #theta, dau_{0}", m_h2_MC_dau0_2D, m_histoList_Tracks);
302 m_h2_track_dau0_2D_BP = (TH2F*)duplicateHistogram("h2trackdau02dBP", "p_{T} VS #theta, dau_{0} BP", m_h2_MC_dau0_2D_BP,
304 m_h2_track_dau0_2DMother = (TH2F*)duplicateHistogram("h2trackdau02DMother", "p_{T,mother} VS #theta_{mother}, dau_{0}",
306
307 m_h2_track_dau0_pVScostheta = (TH2F*)duplicateHistogram("h2trackdau0pVScostheta", "p VS cos(#theta), dau_{0}",
309
310
311 //track dau1
312 m_h1_track_dau1_d0 = (TH1F*)duplicateHistogram("h1trackdau1D0", "d0 dau_{1}", m_h1_MC_dau1_d0, m_histoList_Tracks);
313 m_h1_track_dau1_z0 = (TH1F*)duplicateHistogram("h1trackdau1Z0", "z0 dau_{1}", m_h1_MC_dau1_z0, m_histoList_Tracks);
314 m_h1_track_dau1_RMother = (TH1F*)duplicateHistogram("h1trackdau1RMother", "p, R mother", m_h1_MC_dau1_RMother, m_histoList_Tracks);
315 m_h3_track_dau1 = (TH3F*)duplicateHistogram("h3trackdau1", "entry per track dau_{1}", m_h3_MC_dau1, m_histoList_Tracks);
316 m_h1_track_dau1_pt = (TH1F*)duplicateHistogram("h1trackdau1Pt", "p_{T} dau_{1}", m_h1_MC_dau1_pt, m_histoList_Tracks);
317 m_h1_track_dau1_pz = (TH1F*)duplicateHistogram("h1trackdau1Pz", "p_{z} dau_{1}", m_h1_MC_dau1_pz, m_histoList_Tracks);
318 m_h1_track_dau1_p = (TH1F*)duplicateHistogram("h1trackdau1P", "p dau_{1}", m_h1_MC_dau1_p, m_histoList_Tracks);
319 m_h1_track_dau1_theta = (TH1F*)duplicateHistogram("h1trackdau1Theta", "#theta dau_{1}", m_h1_MC_dau1_theta, m_histoList_Tracks);
320 m_h1_track_dau1_costheta = (TH1F*)duplicateHistogram("h1trackdau1CosTheta", "cos#theta dau_{1}", m_h1_MC_dau1_costheta,
322 m_h1_track_dau1_Mother_cosAngle = (TH1F*)duplicateHistogram("h1trackdau1MothercosAngle", "#alpha_{mother,p}",
324 m_h1_track_dau1_phi = (TH1F*)duplicateHistogram("h1trackdau1Phi", "#phi dau_{1}", m_h1_MC_dau1_phi, m_histoList_Tracks);
325 m_h1_track_dau1_phi_BW = (TH1F*)duplicateHistogram("h1trackdau1PhiBW", "#phi dau_{1}", m_h1_MC_dau1_phi_BW, m_histoList_Tracks);
326 m_h1_track_dau1_phi_barrel = (TH1F*)duplicateHistogram("h1trackdau1Phibarrel", "#phi dau_{1}", m_h1_MC_dau1_phi_barrel,
328 m_h1_track_dau1_phi_FW = (TH1F*)duplicateHistogram("h1trackdau1PhiFW", "#phi dau_{1}", m_h1_MC_dau1_phi_FW, m_histoList_Tracks);
329
330 m_h1_track_dau1_phiMother_total = (TH1F*)duplicateHistogram("h1trackdau1PhiMothertotal", "dau_{1}, #phi_{mother}",
332 m_h1_track_dau1_phiMother_BW = (TH1F*)duplicateHistogram("h1trackdau1PhiMotherBW", "dau_{1}, #phi_{mother}, BW",
334 m_h1_track_dau1_phiMother_barrel = (TH1F*)duplicateHistogram("h1trackdau1PhiMotherbarrel", "dau_{1}, #phi_{mother}, barrel",
336 m_h1_track_dau1_phiMother_FW = (TH1F*)duplicateHistogram("h1trackdau1PhiMotherFW", "dau_{1}, #phi_{mother}, FW",
338
339 m_h1_track_dau1_thetaMother = (TH1F*)duplicateHistogram("h1trackdau1ThetaMother", "#theta_{mother} dau_{1}",
341 m_h1_track_dau1_ptMother = (TH1F*)duplicateHistogram("h1trackdau1PtMother", "p_{T,mother} dau_{1}", m_h1_MC_dau1_ptMother,
343
344 m_h2_track_dau1_2D = (TH2F*)duplicateHistogram("h2trackdau12D", "p_{T} VS #theta, dau_{1}", m_h2_MC_dau1_2D, m_histoList_Tracks);
345 m_h2_track_dau1_2D_BP = (TH2F*)duplicateHistogram("h2trackdau12dBP", "p_{T} VS #theta, p BDAU_{1}", m_h2_MC_dau1_2D_BP,
347 m_h2_track_dau1_2DMother = (TH2F*)duplicateHistogram("h2trackdau12DMother", "p_{T,mother} VS #theta_{mother}, dau_{1}",
349
350 m_h2_track_dau1_pVScostheta = (TH2F*)duplicateHistogram("h2trackdau1pVScostheta", "p VS cos(#theta), dau_{1}",
352
353 //V0
354 m_h1_V0_RMother = (TH1F*)duplicateHistogram("h1V0RMother", "mother, R mother", m_h1_MC_Mother_RMother, m_histoList_Tracks);
355 m_h3_V0 = (TH3F*)duplicateHistogram("h3V0", "entry per V0", m_h3_MC_Mother, m_histoList_Tracks);
356 m_h1_V0_pt = (TH1F*)duplicateHistogram("h1V0Pt", "p_{T} mother", m_h1_MC_Mother_pt, m_histoList_Tracks);
357 m_h1_V0_pz = (TH1F*)duplicateHistogram("h1V0Pz", "p_{z} mother", m_h1_MC_Mother_pz, m_histoList_Tracks);
358 m_h1_V0_p = (TH1F*)duplicateHistogram("h1V0P", "p mother", m_h1_MC_Mother_p, m_histoList_Tracks);
359 m_h1_V0_theta = (TH1F*)duplicateHistogram("h1V0Theta", "#theta mother", m_h1_MC_Mother_theta, m_histoList_Tracks);
360 m_h1_V0_costheta = (TH1F*)duplicateHistogram("h1V0CosTheta", "cos#theta mother", m_h1_MC_Mother_costheta, m_histoList_Tracks);
361 m_h1_V0_phi = (TH1F*)duplicateHistogram("h1V0Phi", "#phi mother", m_h1_MC_Mother_phi, m_histoList_Tracks);
362 m_h1_V0_phi_BW = (TH1F*)duplicateHistogram("h1V0PhiBW", "#phi mother", m_h1_MC_Mother_phi_BW, m_histoList_Tracks);
364 m_h1_V0_phi_FW = (TH1F*)duplicateHistogram("h1V0PhiFW", "#phi mother", m_h1_MC_Mother_phi_FW, m_histoList_Tracks);
365
366 m_h2_V0_Mother_2D = (TH2F*)duplicateHistogram("h2V0Mother2D", "p_{T} VS #theta, mother", m_h2_MC_Mother_2D, m_histoList_Tracks);
367 m_h2_V0_Mother_2D_BP = (TH2F*)duplicateHistogram("h2V0Mother2dBP", "p_{T} VS #theta, mother BP", m_h2_MC_Mother_2D_BP,
369
370 m_h2_V0_Mother_pVScostheta = (TH2F*)duplicateHistogram("h2V0MotherpVScostheta", "p VS cos(#theta), mother",
372
373
374 //------------------------------------------------------------------//
375 // RECO TRACKS //
376 //------------------------------------------------------------------//
377
378 //RecoTrack dau0
379 m_h1_RecoTrack_dau0_d0 = (TH1F*)duplicateHistogram("h1RecoTrackdau0D0", "d0 dau_{0}", m_h1_MC_dau0_d0, m_histoList_RecoTracks);
380 m_h1_RecoTrack_dau0_z0 = (TH1F*)duplicateHistogram("h1RecoTrackdau0Z0", "z0 dau_{0}", m_h1_MC_dau0_z0, m_histoList_RecoTracks);
381 m_h1_RecoTrack_dau0_RMother = (TH1F*)duplicateHistogram("h1RecoTrackdau0RMother", "dau_{0}, R mother", m_h1_MC_dau0_RMother,
383 m_h3_RecoTrack_dau0 = (TH3F*)duplicateHistogram("h3RecoTrackdau0", "entry per RecoTrack dau_{0}", m_h3_MC_dau0,
385 m_h1_RecoTrack_dau0_pt = (TH1F*)duplicateHistogram("h1RecoTrackdau0Pt", "p_{T} dau_{0}", m_h1_MC_dau0_pt, m_histoList_RecoTracks);
386 m_h1_RecoTrack_dau0_pz = (TH1F*)duplicateHistogram("h1RecoTrackdau0Pz", "p_{z} dau_{0}", m_h1_MC_dau0_pz, m_histoList_RecoTracks);
387 m_h1_RecoTrack_dau0_p = (TH1F*)duplicateHistogram("h1RecoTrackdau0P", "p dau_{0}", m_h1_MC_dau0_p, m_histoList_RecoTracks);
388 m_h1_RecoTrack_dau0_theta = (TH1F*)duplicateHistogram("h1RecoTrackdau0Theta", "#theta dau_{0}", m_h1_MC_dau0_theta,
390 m_h1_RecoTrack_dau0_costheta = (TH1F*)duplicateHistogram("h1RecoTrackdau0CosTheta", "cos#theta dau_{0}", m_h1_MC_dau0_costheta,
392 m_h1_RecoTrack_dau0_Mother_cosAngle = (TH1F*)duplicateHistogram("h1RecoTrackdau0MothercosAngle", "#alpha_{mother,dau_{0}}",
394 m_h1_RecoTrack_dau0_phi = (TH1F*)duplicateHistogram("h1RecoTrackdau0Phi", "#phi dau_{0}", m_h1_MC_dau0_phi, m_histoList_RecoTracks);
395 m_h1_RecoTrack_dau0_phi_BW = (TH1F*)duplicateHistogram("h1RecoTrackdau0PhiBW", "#phi dau_{0}", m_h1_MC_dau0_phi_BW,
397 m_h1_RecoTrack_dau0_phi_barrel = (TH1F*)duplicateHistogram("h1RecoTrackdau0Phibarrel", "#phi dau_{0}", m_h1_MC_dau0_phi_barrel,
399 m_h1_RecoTrack_dau0_phi_FW = (TH1F*)duplicateHistogram("h1RecoTrackdau0PhiFW", "#phi dau_{0}", m_h1_MC_dau0_phi_FW,
401
402 m_h1_RecoTrack_dau0_phiMother_total = (TH1F*)duplicateHistogram("h1RecoTrackdau0PhiMothertotal", "dau_{0}, #phi_{mother}",
404 m_h1_RecoTrack_dau0_phiMother_BW = (TH1F*)duplicateHistogram("h1RecoTrackdau0PhiMotherBW", "dau_{0}, #phi_{mother}, BW",
406 m_h1_RecoTrack_dau0_phiMother_barrel = (TH1F*)duplicateHistogram("h1RecoTrackdau0PhiMotherbarrel", "dau_{0}, #phi_{mother}, barrel",
408 m_h1_RecoTrack_dau0_phiMother_FW = (TH1F*)duplicateHistogram("h1RecoTrackdau0PhiMotherFW", "dau_{0}, #phi_{mother}, FW",
410
411 m_h1_RecoTrack_dau0_thetaMother = (TH1F*)duplicateHistogram("h1RecoTrackdau0ThetaMother", "#theta_{mother} dau_{0}",
413 m_h1_RecoTrack_dau0_ptMother = (TH1F*)duplicateHistogram("h1RecoTrackdau0PtMother", "p_{T,mother} dau_{0}", m_h1_MC_dau0_pt,
415
416 m_h2_RecoTrack_dau0_2D = (TH2F*)duplicateHistogram("h2RecoTrackdau02D", "p_{T} VS #theta, dau_{0}", m_h2_MC_dau0_2D,
418 m_h2_RecoTrack_dau0_2D_BP = (TH2F*)duplicateHistogram("h2RecoTrackdau02dBP", "p_{T} VS #theta, dau_{0} BP", m_h2_MC_dau0_2D_BP,
420 m_h2_RecoTrack_dau0_2DMother = (TH2F*)duplicateHistogram("h2RecoTrackdau02DMother", "p_{T,mother} VS #theta_{mother}, dau_{0}",
422
423 m_h2_RecoTrack_dau0_pVScostheta = (TH2F*)duplicateHistogram("h2RecoTrackdau0pVscostheta", "p VS cos(#theta), dau_{0}",
425
426 //RecoTrack dau1
427 m_h1_RecoTrack_dau1_d0 = (TH1F*)duplicateHistogram("h1RecoTrackdau1D0", "d0 dau_{1}", m_h1_MC_dau1_d0, m_histoList_RecoTracks);
428 m_h1_RecoTrack_dau1_z0 = (TH1F*)duplicateHistogram("h1RecoTrackdau1Z0", "z0 dau_{1}", m_h1_MC_dau1_z0, m_histoList_RecoTracks);
429 m_h1_RecoTrack_dau1_RMother = (TH1F*)duplicateHistogram("h1RecoTrackdau1RMother", "dau_{1}, R mother", m_h1_MC_dau1_RMother,
431 m_h3_RecoTrack_dau1 = (TH3F*)duplicateHistogram("h3RecoTrackdau1", "entry per RecoTrack dau_{1}", m_h3_MC_dau1,
433 m_h1_RecoTrack_dau1_pt = (TH1F*)duplicateHistogram("h1RecoTrackdau1Pt", "p_{T} dau_{1}", m_h1_MC_dau1_pt, m_histoList_RecoTracks);
434 m_h1_RecoTrack_dau1_pz = (TH1F*)duplicateHistogram("h1RecoTrackdau1Pz", "p_{z} dau_{1}", m_h1_MC_dau1_pz, m_histoList_RecoTracks);
435 m_h1_RecoTrack_dau1_p = (TH1F*)duplicateHistogram("h1RecoTrackdau1P", "p dau_{1}", m_h1_MC_dau1_p, m_histoList_RecoTracks);
436 m_h1_RecoTrack_dau1_theta = (TH1F*)duplicateHistogram("h1RecoTrackdau1Theta", "#theta dau_{1}", m_h1_MC_dau1_theta,
438 m_h1_RecoTrack_dau1_costheta = (TH1F*)duplicateHistogram("h1RecoTrackdau1CosTheta", "cos#theta dau_{1}", m_h1_MC_dau1_costheta,
440 m_h1_RecoTrack_dau1_Mother_cosAngle = (TH1F*)duplicateHistogram("h1RecoTrackdau1MothercosAngle", "#alpha_{mother,p}",
442 m_h1_RecoTrack_dau1_phi = (TH1F*)duplicateHistogram("h1RecoTrackdau1Phi", "#phi dau_{1}", m_h1_MC_dau1_phi, m_histoList_RecoTracks);
443 m_h1_RecoTrack_dau1_phi_BW = (TH1F*)duplicateHistogram("h1RecoTrackdau1PhiBW", "#phi dau_{1}", m_h1_MC_dau1_phi_BW,
445 m_h1_RecoTrack_dau1_phi_barrel = (TH1F*)duplicateHistogram("h1RecoTrackdau1Phibarrel", "#phi dau_{1}", m_h1_MC_dau1_phi_barrel,
447 m_h1_RecoTrack_dau1_phi_FW = (TH1F*)duplicateHistogram("h1RecoTrackdau1PhiFW", "#phi dau_{1}", m_h1_MC_dau1_phi_FW,
449
450 m_h1_RecoTrack_dau1_phiMother_total = (TH1F*)duplicateHistogram("h1RecoTrackdau1PhiMothertotal", "dau_{1}, #phi_{mother}",
452 m_h1_RecoTrack_dau1_phiMother_BW = (TH1F*)duplicateHistogram("h1RecoTrackdau1PhiMotherBW", "dau_{1}, #phi_{mother}, BW",
454 m_h1_RecoTrack_dau1_phiMother_barrel = (TH1F*)duplicateHistogram("h1RecoTrackdau1PhiMotherbarrel", "dau_{1}, #phi_{mother}, barrel",
456 m_h1_RecoTrack_dau1_phiMother_FW = (TH1F*)duplicateHistogram("h1RecoTrackdau1PhiMotherFW", "dau_{1}, #phi_{mother}, FW",
458
459 m_h1_RecoTrack_dau1_thetaMother = (TH1F*)duplicateHistogram("h1RecoTrackdau1ThetaMother", "#theta_{mother} dau_{1}",
461 m_h1_RecoTrack_dau1_ptMother = (TH1F*)duplicateHistogram("h1RecoTrackdau1PtMother", "p_{T,mother} dau_{1}", m_h1_MC_dau1_pt,
463
464 m_h2_RecoTrack_dau1_2D = (TH2F*)duplicateHistogram("h2RecoTrackdau12D", "p_{T} VS #theta, dau_{1}", m_h2_MC_dau1_2D,
466 m_h2_RecoTrack_dau1_2D_BP = (TH2F*)duplicateHistogram("h2RecoTrackdau12dBP", "p_{T} VS #theta, p BP", m_h2_MC_dau1_2D_BP,
468 m_h2_RecoTrack_dau1_2DMother = (TH2F*)duplicateHistogram("h2RecoTrackdau12DMother", "p_{T,mother} VS #theta_{mother}, dau_{1}",
470
471 m_h2_RecoTrack_dau1_pVScostheta = (TH2F*)duplicateHistogram("h2RecoTrackdau1pVscostheta", "p VS cos(#theta), dau_{1}",
473
474 //RecoTrack Mother
475 m_h1_RecoTrack_Mother_RMother = (TH1F*)duplicateHistogram("h1RecoTrack_MotherRMother", "mother, R mother", m_h1_MC_Mother_RMother,
477 m_h3_RecoTrack_Mother = (TH3F*)duplicateHistogram("h3RecoTrack_Mother", "entry per RecoTrack_Mother", m_h3_MC_Mother,
479 m_h1_RecoTrack_Mother_pt = (TH1F*)duplicateHistogram("h1RecoTrack_MotherPt", "p_{T} mother", m_h1_MC_dau0_pt,
481 m_h1_RecoTrack_Mother_pz = (TH1F*)duplicateHistogram("h1RecoTrack_MotherPz", "p_{z} mother", m_h1_MC_dau0_pz,
483 m_h1_RecoTrack_Mother_p = (TH1F*)duplicateHistogram("h1RecoTrack_MotherP", "p mother", m_h1_MC_dau0_p, m_histoList_RecoTracks);
484 m_h1_RecoTrack_Mother_theta = (TH1F*)duplicateHistogram("h1RecoTrack_MotherTheta", "#theta mother", m_h1_MC_dau0_theta,
486 m_h1_RecoTrack_Mother_costheta = (TH1F*)duplicateHistogram("h1RecoTrack_MotherCosTheta", "cos#theta mother", m_h1_MC_dau0_costheta,
488 m_h1_RecoTrack_Mother_phi = (TH1F*)duplicateHistogram("h1RecoTrack_MotherPhi", "#phi mother", m_h1_MC_dau0_phi,
490 m_h1_RecoTrack_Mother_phi_BW = (TH1F*)duplicateHistogram("h1RecoTrack_MotherPhiBW", "#phi mother", m_h1_MC_dau0_phi_BW,
492 m_h1_RecoTrack_Mother_phi_barrel = (TH1F*)duplicateHistogram("h1RecoTrack_MotherPhibarrel", "#phi mother", m_h1_MC_dau0_phi_barrel,
494 m_h1_RecoTrack_Mother_phi_FW = (TH1F*)duplicateHistogram("h1RecoTrack_MotherPhiFW", "#phi mother", m_h1_MC_dau0_phi_FW,
496
497 m_h2_RecoTrack_Mother_2D = (TH2F*)duplicateHistogram("h2RecoTrack_Mother2D", "p_{T} VS #theta, mother", m_h2_MC_Mother_2D,
499 m_h2_RecoTrack_Mother_2D_BP = (TH2F*)duplicateHistogram("h2RecoTrack_Mother2dBP", "p_{T} VS #theta, mother BP",
501
502 m_h2_RecoTrack_Mother_pVScostheta = (TH2F*)duplicateHistogram("h2RecoTrackMotherpVscostheta", "p VS cos(#theta), mother",
504
505}
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.
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113

◆ isK_Short()

bool isK_Short ( const MCParticle the_mcParticle)
private

determine if the MCParticle is a K-short

Definition at line 1265 of file EffPlotsModule.cc.

1266{
1267
1268 bool isK_S0 = false;
1269 if (abs(the_mcParticle.getPDG()) == Const::Kshort.getPDGCode())
1270 isK_S0 = true;
1271
1272 bool twoChargedProngs = false;
1273
1274 if (the_mcParticle.getDaughters().size() == 2 &&
1275 ((the_mcParticle.getDaughters()[0]->getPDG() == Const::pion.getPDGCode()
1276 && the_mcParticle.getDaughters()[1]->getPDG() == -Const::pion.getPDGCode()) ||
1277 (the_mcParticle.getDaughters()[0]->getPDG() == -Const::pion.getPDGCode()
1278 && the_mcParticle.getDaughters()[1]->getPDG() == Const::pion.getPDGCode())))
1279 twoChargedProngs = true;
1280
1281 return (isK_S0 && twoChargedProngs);
1282
1283}
int getPDGCode() const
PDG code.
Definition: Const.h:473
static const ParticleType Kshort
K^0_S particle.
Definition: Const.h:677
std::vector< Belle2::MCParticle * > getDaughters() const
Get vector of all daughter particles, empty vector if none.
Definition: MCParticle.cc:52

◆ isLambda0()

bool isLambda0 ( const MCParticle the_mcParticle)
private

determine if the MCParticle is a Lambda0

Definition at line 1285 of file EffPlotsModule.cc.

1286{
1287
1288 bool isLambda = false;
1289 if (abs(the_mcParticle.getPDG()) == Const::Lambda.getPDGCode())
1290 isLambda = true;
1291
1292 bool twoChargedProngs = false;
1293
1294 if (the_mcParticle.getDaughters().size() == 2 &&
1295 ((the_mcParticle.getDaughters()[0]->getPDG() == Const::pion.getPDGCode()
1296 && the_mcParticle.getDaughters()[1]->getPDG() == -Const::proton.getPDGCode()) ||
1297 (the_mcParticle.getDaughters()[0]->getPDG() == -Const::pion.getPDGCode()
1298 && the_mcParticle.getDaughters()[1]->getPDG() == Const::proton.getPDGCode()) ||
1299 (the_mcParticle.getDaughters()[0]->getPDG() == Const::proton.getPDGCode()
1300 && the_mcParticle.getDaughters()[1]->getPDG() == -Const::pion.getPDGCode()) ||
1301 (the_mcParticle.getDaughters()[0]->getPDG() == -Const::proton.getPDGCode()
1302 && the_mcParticle.getDaughters()[1]->getPDG() == Const::pion.getPDGCode())))
1303 twoChargedProngs = true;
1304
1305 return (isLambda && twoChargedProngs);
1306
1307}
static const ParticleType Lambda
Lambda particle.
Definition: Const.h:679

◆ nMatchedDaughters()

int nMatchedDaughters ( const MCParticle the_mcParticle)
private

get the number of matched daughters of the MCParticle

Definition at line 1309 of file EffPlotsModule.cc.

1310{
1311
1312 int nMatchedDau = 0;
1313
1314 std::vector< MCParticle* > MCPart_dau = the_mcParticle.getDaughters();
1315
1316 bool first = false;
1317 bool second = false;
1318
1319 RelationVector<Track> Tracks_fromMCParticle_0 = DataStore::getRelationsWithObj<Track>(MCPart_dau[0]);
1320 if (Tracks_fromMCParticle_0.size() > 0)
1321 first = true;
1322
1323 RelationVector<Track> Tracks_fromMCParticle_1 = DataStore::getRelationsWithObj<Track>(MCPart_dau[1]);
1324 if (Tracks_fromMCParticle_1.size() > 0)
1325 second = true;
1326
1327
1328 if (first)
1329 nMatchedDau++;
1330
1331 if (second)
1332 nMatchedDau++;
1333
1334
1335 return nMatchedDau;
1336
1337}

◆ 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}

◆ setLogConfig()

void setLogConfig ( const LogConfig logConfig)
inlineinherited

Set the log system configuration.

Definition at line 230 of file Module.h.

230{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 214 of file Module.h.

214{ m_name = name; };

◆ setParamList()

void setParamList ( const ModuleParamList params)
inlineprotectedinherited

Replace existing parameter list.

Definition at line 501 of file Module.h.

501{ 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}
Class for logging debug, info and error messages.
Definition: LogSystem.h:46
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:191
static LogSystem & Instance()
Static method to get a reference to the LogSystem instance.
Definition: LogSystem.cc:31
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 935 of file EffPlotsModule.cc.

936{
937 //------------------------------------------------------------------//
938 // EFFICIENCIES //
939 //------------------------------------------------------------------//
940
941 //dau0
942 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",
943 "efficiency VS d0, dau_{0}", m_histoList_Efficiencies);
944 if (h_eff_dau0_d0->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_d0");
945
946 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",
947 "efficiency VS z0, dau_{0}", m_histoList_Efficiencies);
948 if (h_eff_dau0_z0->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_z0");
949
951 "h_eff_dau0_RMother", "efficiency VS R_{mother}, dau_{0}", m_histoList_Efficiencies);
952 if (h_eff_dau0_RMother->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_RMother");
953
955 "h_eff_dau0_thetaMother", "efficiency VS #theta_{mother}, dau_{0}", m_histoList_Efficiencies);
956 if (h_eff_dau0_thetaMother->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_thetaMother");
957
959 m_h1_track_dau0_phiMother_total, "h_eff_dau0_phiMother_total", "efficiency VS #phi_{mother}, dau_{0}", m_histoList_Efficiencies);
960 if (h_eff_dau0_phiMother_total->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phiMother_total");
961
963 "h_eff_dau0_phiMother_BW", "efficiency VS #phi_{mother}, dau_{0} BW", m_histoList_Efficiencies);
964 if (h_eff_dau0_phiMother_BW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phiMother_BW");
965
967 m_h1_track_dau0_phiMother_barrel, "h_eff_dau0_phiMother_barrel", "efficiency VS #phi_{mother}, dau_{0} barrel",
969 if (h_eff_dau0_phiMother_barrel->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phiMother_barrel");
970
972 "h_eff_dau0_phiMother_FW", "efficiency VS #phi_{mother}, dau_{0} FW", m_histoList_Efficiencies);
973 if (h_eff_dau0_phiMother_FW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phiMother_FW");
974
975 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",
976 "efficiency VS #phi_{dau_{0}}, dau_{0}", m_histoList_Efficiencies);
977 if (h_eff_dau0_phi_total->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phi_total");
978
979 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",
980 "efficiency VS #phi_{dau_{0}}, dau_{0} BW", m_histoList_Efficiencies);
981 if (h_eff_dau0_phi_BW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phi_BW");
982
984 "h_eff_dau0_phi_barrel", "efficiency VS #phi_{dau_{0}}, dau_{0} barrel", m_histoList_Efficiencies);
985 if (h_eff_dau0_phi_barrel->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phi_barrel");
986
987 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",
988 "efficiency VS #phi_{dau_{0}}, dau_{0} FW", m_histoList_Efficiencies);
989 if (h_eff_dau0_phi_FW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau0_phi_FW");
990
992 "h2_effMap_dau0_pVScostheta", "efficiency map, p_{CM} VS cos(#theta)_{CM} dau_{0}", m_histoList_Efficiencies);
993 if (h2_effMap_dau0_pVScostheta->GetEntries() == 0) B2WARNING("Empty histogram h2_effMap_dau0_pVScostheta");
994
995 //dau1
996 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",
998 if (h_eff_dau1_d0->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_d0");
999
1000 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",
1002 if (h_eff_dau1_z0->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_z0");
1003
1005 "h_eff_dau1_RMother", "efficiency VS R_{mother}, p", m_histoList_Efficiencies);
1006 if (h_eff_dau1_RMother->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_RMother");
1007
1009 "h_eff_dau1_thetaMother", "efficiency VS #theta_{mother}, p", m_histoList_Efficiencies);
1010 if (h_eff_dau1_thetaMother->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_thetaMother");
1011
1013 m_h1_track_dau1_phiMother_total, "h_eff_dau1_phiMother_total", "efficiency VS #phi_{mother}, p", m_histoList_Efficiencies);
1014 if (h_eff_dau1_phiMother_total->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phiMother_total");
1015
1017 "h_eff_dau1_phiMother_BW", "efficiency VS #phi_{mother}, p BW", m_histoList_Efficiencies);
1018 if (h_eff_dau1_phiMother_BW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phiMother_BW");
1019
1021 m_h1_track_dau1_phiMother_barrel, "h_eff_dau1_phiMother_barrel", "efficiency VS #phi_{mother}, p barrel", m_histoList_Efficiencies);
1022 if (h_eff_dau1_phiMother_barrel->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phiMother_barrel");
1023
1025 "h_eff_dau1_phiMother_FW", "efficiency VS #phi_{mother}, p FW", m_histoList_Efficiencies);
1026 if (h_eff_dau1_phiMother_FW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phiMother_FW");
1027
1028 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",
1029 "efficiency VS #phi_{p}, p", m_histoList_Efficiencies);
1030 if (h_eff_dau1_phi_total->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phi_total");
1031
1032 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",
1033 "efficiency VS #phi_{p}, p BW", m_histoList_Efficiencies);
1034 if (h_eff_dau1_phi_BW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phi_BW");
1035
1037 "h_eff_dau1_phi_barrel", "efficiency VS #phi_{p}, p barrel", m_histoList_Efficiencies);
1038 if (h_eff_dau1_phi_barrel->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phi_barrel");
1039
1040 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",
1041 "efficiency VS #phi_{p}, p FW", m_histoList_Efficiencies);
1042 if (h_eff_dau1_phi_FW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_dau1_phi_FW");
1043
1045 "h2_effMap_dau1_pVScostheta", "efficiency map, p_{CM} VS cos(#theta)_{CM} dau_{1}", m_histoList_Efficiencies);
1046 if (h2_effMap_dau1_pVScostheta->GetEntries() == 0) B2WARNING("Empty histogram h2_effMap_dau1_pVScostheta");
1047
1048 //mother
1050 "h_eff_Mother_RMother", "efficiency VS R_{mother}, mother", m_histoList_Efficiencies);
1051 if (h_eff_Mother_RMother->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_RMother");
1052
1053 TH1F* h_eff_Mother_theta = effPlot1D(m_h1_MC_Mother_theta, m_h1_RecoTrack_Mother_theta, m_h1_V0_theta, "h_eff_Mother_theta",
1054 "efficiency VS #theta_{mother}, mother", m_histoList_Efficiencies);
1055 if (h_eff_Mother_theta->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_theta");
1056
1057 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",
1058 "efficiency VS #phi_{mother}, mother", m_histoList_Efficiencies);
1059 if (h_eff_Mother_phi_total->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_phi_total");
1060
1062 "h_eff_Mother_phi_BW", "efficiency VS #phi_{mother}, mother BW", m_histoList_Efficiencies);
1063 if (h_eff_Mother_phiMother_BW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_phiMother_BW");
1064
1066 "h_eff_Mother_phi_barrel", "efficiency VS #phi_{mother}, mother barrel", m_histoList_Efficiencies);
1067 if (h_eff_Mother_phiMother_barrel->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_phiMother_barrel");
1068
1070 "h_eff_Mother_phi_FW", "efficiency VS #phi_{mother}, mother FW", m_histoList_Efficiencies);
1071 if (h_eff_Mother_phiMother_FW->GetEntries() == 0) B2WARNING("Empty histogram h_eff_Mother_phiMother_FW");
1072
1073 TH2F* h2_effMap_Mother_pVScostheta = effPlot2D(m_h2_MC_Mother_pVScostheta, m_h2_RecoTrack_Mother_pVScostheta,
1074 m_h2_V0_Mother_pVScostheta, "h2_effMap_Mother_pVScostheta", "efficiency map, p_{CM} VS cos(#theta)_{CM} mother",
1076 if (h2_effMap_Mother_pVScostheta->GetEntries() == 0) B2WARNING("Empty histogram h2_effMap_Mother_pVScostheta");
1077
1078 //eff_V0Finder [ = eff_mother / (eff_dau0 * eff_dau1)]
1079 TH1F* h_eff_V0Finder_RMother_withGeoAcc = V0FinderEff(h_eff_dau0_RMother, h_eff_dau1_RMother, h_eff_Mother_RMother,
1080 "h_eff_V0Finder_RMother_withGeoAcc", "efficiency VS R_{mother}, V0Finder", m_histoList_Efficiencies);
1081 if (h_eff_V0Finder_RMother_withGeoAcc->GetEntries() == 0) B2WARNING("Empty histogram h_eff_V0Finder_RMother_withGeoAcc");
1082
1083 TH1F* h_eff_V0Finder_theta_withGeoAcc = V0FinderEff(h_eff_dau0_thetaMother, h_eff_dau1_thetaMother, h_eff_Mother_theta,
1084 "h_eff_V0Finder_theta_withGeoAcc", "efficiency VS #theta_{mother}, V0Finder", m_histoList_Efficiencies);
1085 if (h_eff_V0Finder_theta_withGeoAcc->GetEntries() == 0) B2WARNING("Empty histogram h_eff_V0Finder_theta_withGeoAcc");
1086
1087 TH1F* h_eff_V0Finder_phi_total_withGeoAcc = V0FinderEff(h_eff_dau0_phiMother_total, h_eff_dau1_phiMother_total,
1088 h_eff_Mother_phi_total, "h_eff_V0Finder_phi_total_withGeoAcc", "efficiency VS #phi_{mother}, V0Finder", m_histoList_Efficiencies);
1089 if (h_eff_V0Finder_phi_total_withGeoAcc->GetEntries() == 0) B2WARNING("Empty histogram h_eff_V0Finder_phi_total_withGeoAcc");
1090
1091 TH1F* h_eff_V0Finder_phiMother_BW_withGeoAcc = V0FinderEff(h_eff_dau0_phiMother_BW, h_eff_dau1_phiMother_BW,
1092 h_eff_Mother_phiMother_BW, "h_eff_V0Finder_phi_BW_withGeoAcc", "efficiency VS #phi_{mother}, V0Finder BW",
1094 if (h_eff_V0Finder_phiMother_BW_withGeoAcc->GetEntries() == 0) B2WARNING("Empty histogram h_eff_V0Finder_phiMother_BW_withGeoAcc");
1095
1096 TH1F* h_eff_V0Finder_phiMother_barrel_withGeoAcc = V0FinderEff(h_eff_dau0_phiMother_barrel, h_eff_dau1_phiMother_barrel,
1097 h_eff_Mother_phiMother_barrel, "h_eff_V0Finder_phi_barrel_withGeoAcc", "efficiency VS #phi_{mother}, V0Finder barrel",
1099 if (h_eff_V0Finder_phiMother_barrel_withGeoAcc->GetEntries() == 0)
1100 B2WARNING("Empty histogram h_eff_V0Finder_phiMother_barrel_withGeoAcc");
1101
1102 TH1F* h_eff_V0Finder_phiMother_FW_withGeoAcc = V0FinderEff(h_eff_dau0_phiMother_FW, h_eff_dau1_phiMother_FW,
1103 h_eff_Mother_phiMother_FW, "h_eff_V0Finder_phi_FW_withGeoAcc", "efficiency VS #phi_{mother}, V0Finder FW",
1105 if (h_eff_V0Finder_phiMother_FW_withGeoAcc->GetEntries() == 0) B2WARNING("Empty histogram h_eff_V0Finder_phiMother_FW_withGeoAcc");
1106
1107
1108 //-------------------------------------------------------------------------//
1109 // GEOMETRICAL ACCETTANCE //
1110 //-------------------------------------------------------------------------//
1111
1113 //dau0
1114 TH1F* h_dau0_geoAcc_theta = geoAcc1D(m_h1_MC_dau0_theta, m_h1_RecoTrack_dau0_theta, "h_dau0_geoAcc_theta",
1115 "geometrical acceptance VS #theta_{dau_{0}}, dau_{0}", m_histoList_GA);
1116 if (h_dau0_geoAcc_theta->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_theta");
1117
1118 TH1F* h_dau0_geoAcc_phi = geoAcc1D(m_h1_MC_dau0_phi, m_h1_RecoTrack_dau0_phi, "h_dau0_geoAcc_phi",
1119 "geometrical acceptance VS #phi_{dau_{0}}, dau_{0}", m_histoList_GA);
1120 if (h_dau0_geoAcc_phi->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_phi");
1121
1122 TH1F* h_dau0_geoAcc_pt = geoAcc1D(m_h1_MC_dau0_pt, m_h1_RecoTrack_dau0_pt, "h_dau0_geoAcc_pt",
1123 "geometrical acceptance VS p_{T,dau_{0}}, dau_{0}", m_histoList_GA);
1124 if (h_dau0_geoAcc_pt->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_pt");
1125
1126 TH1F* h_dau0_geoAcc_thetaMother = geoAcc1D(m_h1_MC_dau0_thetaMother, m_h1_RecoTrack_dau0_thetaMother, "h_dau0_geoAcc_thetaMother",
1127 "geometrical acceptance VS #theta_{mother}, dau_{0}", m_histoList_GA);
1128 if (h_dau0_geoAcc_thetaMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_thetaMother");
1129
1131 "h_dau0_geoAcc_phiMother", "geometrical acceptance VS #phi_{mother}, dau_{0}", m_histoList_GA);
1132 if (h_dau0_geoAcc_phiMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_phiMother");
1133
1134 TH1F* h_dau0_geoAcc_ptMother = geoAcc1D(m_h1_MC_dau0_ptMother, m_h1_RecoTrack_dau0_ptMother, "h_dau0_geoAcc_ptMother",
1135 "geometrical acceptance VS #p_{T,mother}, dau_{0}", m_histoList_GA);
1136 if (h_dau0_geoAcc_ptMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau0_geoAcc_ptMother");
1137
1138 //dau1
1139 TH1F* h_dau1_geoAcc_theta = geoAcc1D(m_h1_MC_dau1_theta, m_h1_RecoTrack_dau1_theta, "h_dau1_geoAcc_theta",
1140 "geometrical acceptance VS #theta_{p}, p", m_histoList_GA);
1141 if (h_dau1_geoAcc_theta->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_theta");
1142
1143 TH1F* h_dau1_geoAcc_phi = geoAcc1D(m_h1_MC_dau1_phi, m_h1_RecoTrack_dau1_phi, "h_dau1_geoAcc_phi",
1144 "geometrical acceptance VS #phi_{p}, p", m_histoList_GA);
1145 if (h_dau1_geoAcc_phi->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_phi");
1146
1147 TH1F* h_dau1_geoAcc_pt = geoAcc1D(m_h1_MC_dau1_pt, m_h1_RecoTrack_dau1_pt, "h_dau1_geoAcc_pt",
1148 "geometrical acceptance VS p_{T,p}, p", m_histoList_GA);
1149 if (h_dau1_geoAcc_pt->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_pt");
1150
1151 TH1F* h_dau1_geoAcc_thetaMother = geoAcc1D(m_h1_MC_dau1_thetaMother, m_h1_RecoTrack_dau1_thetaMother, "h_dau1_geoAcc_thetaMother",
1152 "geometrical acceptance VS #theta_{mother}, p", m_histoList_GA);
1153 if (h_dau1_geoAcc_thetaMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_thetaMother");
1154
1156 "h_dau1_geoAcc_phiMother", "geometrical acceptance VS #phi_{mother}, p", m_histoList_GA);
1157 if (h_dau1_geoAcc_phiMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_phiMother");
1158
1159 TH1F* h_dau1_geoAcc_ptMother = geoAcc1D(m_h1_MC_dau1_ptMother, m_h1_RecoTrack_dau1_ptMother, "h_dau1_geoAcc_ptMother",
1160 "geometrical acceptance VS #p_{T,mother}, p", m_histoList_GA);
1161 if (h_dau1_geoAcc_ptMother->GetEntries() == 0) B2WARNING("Empty histogram h_dau1_geoAcc_ptMother");
1162
1163 //mother
1164 TH1F* h_Mother_geoAcc_theta = geoAcc1D(m_h1_MC_Mother_theta, m_h1_RecoTrack_Mother_theta, "h_Mother_geoAcc_theta",
1165 "geometrical acceptance VS #theta_{mother}, mother", m_histoList_GA);
1166 if (h_Mother_geoAcc_theta->GetEntries() == 0) B2WARNING("Empty histogram h_Mother_geoAcc_theta");
1167
1168 TH1F* h_Mother_geoAcc_phi = geoAcc1D(m_h1_MC_Mother_phi, m_h1_RecoTrack_Mother_phi, "h_Mother_geoAcc_phi",
1169 "geometrical acceptance VS #phi_{mother}, mother", m_histoList_GA);
1170 if (h_Mother_geoAcc_phi->GetEntries() == 0) B2WARNING("Empty histogram h_Mother_geoAcc_phi");
1171
1172 TH1F* h_Mother_geoAcc_pt = geoAcc1D(m_h1_MC_Mother_pt, m_h1_RecoTrack_Mother_pt, "h_Mother_geoAcc_pt",
1173 "geometrical acceptance VS p_{T,mother}, mother", m_histoList_GA);
1174 if (h_Mother_geoAcc_pt->GetEntries() == 0) B2WARNING("Empty histogram h_Mother_geoAcc_pt");
1175
1176 //2D
1177 TH2F* h2_dau0_geoAcc2D = geoAcc2D(m_h2_MC_dau0_2D, m_h2_RecoTrack_dau0_2D, "h2_dau0_geoAcc2D",
1178 "geometrical acceptance dau_{0}, p_{T,dau_{0}} VS #theta_{dau_{0}}", m_histoList_GA);
1179 if (h2_dau0_geoAcc2D->GetEntries() == 0) B2WARNING("Empty histogram h2_dau0_geoAcc2D");
1180
1181 TH2F* h2_dau1_geoAcc2D = geoAcc2D(m_h2_MC_dau1_2D, m_h2_RecoTrack_dau1_2D, "h2_dau1_geoAcc2D",
1182 "geometrical acceptance p, p_{T,p} VS #theta_{p}", m_histoList_GA);
1183 if (h2_dau1_geoAcc2D->GetEntries() == 0) B2WARNING("Empty histogram h2_dau1_geoAcc2D");
1184
1185 TH2F* h2_Mother_geoAcc2D = geoAcc2D(m_h2_MC_Mother_2D, m_h2_RecoTrack_Mother_2D, "h2_Mother_geoAcc2D",
1186 "geometrical acceptance mother, p_{T,mother} VS #theta_{mother}", m_histoList_GA);
1187 if (h2_Mother_geoAcc2D->GetEntries() == 0) B2WARNING("Empty histogram h2_Mother_geoAcc2D");
1188
1189 TH2F* h2_dau0Mother_geoAcc2D = geoAcc2D(m_h2_MC_dau0_2DMother, m_h2_RecoTrack_dau0_2DMother, "h2_dau0Mother_geoAcc2D",
1190 "geometrical acceptance dau_{0}, p_{T,mother} VS #theta_{mother}", m_histoList_GA);
1191 if (h2_dau0Mother_geoAcc2D->GetEntries() == 0) B2WARNING("Empty histogram h2_dau0Mother_geoAcc2D");
1192
1193 TH2F* h2_dau1Mother_geoAcc2D = geoAcc2D(m_h2_MC_dau1_2DMother, m_h2_RecoTrack_dau1_2DMother, "h2_dau1Mother_geoAcc2D",
1194 "geometrical acceptance p, p_{T,mother} VS #theta_{mother}", m_histoList_GA);
1195 if (h2_dau1Mother_geoAcc2D->GetEntries() == 0) B2WARNING("Empty histogram h2_dau1Mother_geoAcc2D");
1196
1197 //particles coming from inside the Beam Pipe
1198 TH2F* h2_dau0_geoAcc2D_BP = geoAcc2D(m_h2_MC_dau0_2D_BP, m_h2_RecoTrack_dau0_2D_BP, "h2_dau0_geoAcc2D_BP",
1199 "geometrical acceptance dau_{0}, p_{T,dau_{0}} VS #theta_{dau_{0}}, BP", m_histoList_GA);
1200 if (h2_dau0_geoAcc2D_BP->GetEntries() == 0) B2WARNING("Empty histogram h2_dau0_geoAcc2D_BP");
1201
1202 TH2F* h2_dau1_geoAcc2D_BP = geoAcc2D(m_h2_MC_dau1_2D_BP, m_h2_RecoTrack_dau1_2D_BP, "h2_dau1_geoAcc2D_BP",
1203 "geometrical acceptance p, p_{T,p} VS #theta_{p}, BP", m_histoList_GA);
1204 if (h2_dau1_geoAcc2D_BP->GetEntries() == 0) B2WARNING("Empty histogram h2_dau1_geoAcc2D_BP");
1205
1206 TH2F* h2_Mother_geoAcc2D_BP = geoAcc2D(m_h2_MC_Mother_2D_BP, m_h2_RecoTrack_Mother_2D_BP, "h2_Mother_geoAcc2D_BP",
1207 "geometrical acceptance mother, p_{T,mother} VS #theta_{mother}, BP", m_histoList_GA);
1208 if (h2_Mother_geoAcc2D_BP->GetEntries() == 0) B2WARNING("Empty histogram h2_Mother_geoAcc2D_BP");
1209 }
1210
1211 //---------------------------------------------------------------------------------
1212
1213 //write histograms on the output root file
1214 if (m_rootFilePtr != nullptr) {
1215 m_rootFilePtr->cd();
1216
1217 TIter nextHMC(m_histoList_MCParticles);
1218 TIter nextHTC(m_histoList_RecoTracks);
1219 TIter nextHT(m_histoList_Tracks);
1220 TIter nextHEff(m_histoList_Efficiencies);
1221 TIter nextHGA(m_histoList_GA);
1222 TIter nextHCheck(m_histoList_check);
1223
1224 TObject* obj;
1225
1226 if (m_allHistograms) {
1227 TDirectory* MCdir = m_rootFilePtr->mkdir("MCParticles");
1228 MCdir->cd();
1229 while ((obj = nextHMC()))
1230 obj->Write("", BIT(2), 0);
1231
1232 TDirectory* TCdir = m_rootFilePtr->mkdir("RecoTracks");
1233 TCdir->cd();
1234 while ((obj = nextHTC()))
1235 obj->Write("", BIT(2), 0);
1236
1237 TDirectory* Trdir = m_rootFilePtr->mkdir("Tracks");
1238 Trdir->cd();
1239 while ((obj = nextHT()))
1240 obj->Write("", BIT(2), 0);
1241
1242 TDirectory* check = m_rootFilePtr->mkdir("check");
1243 check->cd();
1244 while ((obj = nextHCheck()))
1245 obj->Write("", BIT(2), 0);
1246 }
1247
1248 TDirectory* Effdir = m_rootFilePtr->mkdir("Efficiencies");
1249 Effdir->cd();
1250 while ((obj = nextHEff()))
1251 obj->Write("", BIT(2), 0);
1252
1254 TDirectory* geoAcc = m_rootFilePtr->mkdir("geoAccettance");
1255 geoAcc->cd();
1256 while ((obj = nextHGA()))
1257 obj->Write("", BIT(2), 0);
1258 }
1259
1260
1261 m_rootFilePtr->Close();
1262 }
1263}
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 = (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 521 of file Module.h.

◆ m_description

std::string m_description
privateinherited

The description of the module.

Definition at line 511 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 518 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 514 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 516 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 508 of file Module.h.

◆ m_package

std::string m_package
privateinherited

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

Definition at line 510 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 512 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 519 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 509 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: