Belle II Software  release-08-01-10
SVDROIFinderAnalysisModule Class Reference

This module performs the analysis of the SVD data reduction module performances
More...

#include <SVDROIFinderAnalysisModule.h>

Inheritance diagram for SVDROIFinderAnalysisModule:
Collaboration diagram for SVDROIFinderAnalysisModule:

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

 SVDROIFinderAnalysisModule ()
 Constructor of the module. More...
 
 ~SVDROIFinderAnalysisModule ()
 Destructor of the module.
 
void initialize () override
 Initializes the Module. More...
 
void beginRun () override
 Initializations at the begin of the run.
 
void event () override
 Event loop.
 
void endRun () override
 Executed at the end of the run.
 
void terminate () override
 Termination action.
 
virtual std::vector< std::string > getFileNames (bool outputFiles)
 Return a list of output filenames for this modules. More...
 
const std::string & getName () const
 Returns the name of the module. More...
 
const std::string & getType () const
 Returns the type of the module (i.e. More...
 
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. More...
 
void setPropertyFlags (unsigned int propertyFlags)
 Sets the flags for the module properties. More...
 
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. More...
 
void if_value (const std::string &expression, const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 Add a condition to the module. More...
 
void if_false (const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 A simplified version to add a condition to the module. More...
 
void if_true (const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 A simplified version to set the condition of the module. More...
 
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. More...
 
std::shared_ptr< PathgetConditionPath () const
 Returns the path of the last true condition (if there is at least one, else reaturn a null pointer). More...
 
Module::EAfterConditionPath getAfterConditionPath () const
 What to do after the conditional path is finished. More...
 
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. More...
 
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. More...
 
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. More...
 
std::shared_ptr< PathElementclone () const override
 Create an independent copy of this module. More...
 
std::shared_ptr< boost::python::list > getParamInfoListPython () const
 Returns a python list of all parameters. More...
 

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. More...
 
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. More...
 
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. More...
 
void setType (const std::string &type)
 Set the module type. More...
 
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. More...
 
template<typename T >
void addParam (const std::string &name, T &paramVariable, const std::string &description)
 Adds a new enforced parameter to the module. More...
 
void setReturnValue (int value)
 Sets the return value for this module as integer. More...
 
void setReturnValue (bool value)
 Sets the return value for this module as bool. More...
 
void setParamList (const ModuleParamList &params)
 Replace existing parameter list.
 

Private Member Functions

std::list< ModulePtrgetModules () const override
 no submodules, return empty list
 
std::string getPathString () const override
 return the module name.
 
void setParamPython (const std::string &name, const boost::python::object &pyObj)
 Implements a method for setting boost::python objects. More...
 
void setParamPythonDict (const boost::python::dict &dictionary)
 Implements a method for reading the parameter values from a boost::python dictionary. More...
 

Private Attributes

StoreArray< SVDShaperDigitm_shapers
 shaper digits sotre array
 
StoreArray< ROIidm_ROIs
 rois store array
 
StoreArray< RecoTrackm_trackList
 reco track store array
 
StoreArray< SVDInterceptm_SVDIntercepts
 svd intercept store array
 
StoreArray< MCParticlem_mcParticles
 mc particle store array
 
bool m_isSimulation
 true if the module is run on simulated events
 
std::string m_shapersName
 SVDShaperDigits name.
 
std::string m_recoTrackListName
 Track list name.
 
std::string m_SVDInterceptListName
 Intercept list name.
 
std::string m_ROIListName
 ROI list name.
 
TFile * m_rootFilePtr
 pointer at root file used for storing infos for debugging and validating purposes
 
std::string m_rootFileName
 root file name
 
bool m_writeToRoot
 if true, a rootFile named by m_rootFileName will be filled with info
 
int m_rootEvent
 event number
 
Double_t pt [6] = {0.05, 0.15, 0.25, 0.4, 0.75, 1.5}
 bin edges (in pt = transverse momentum)
 
Double_t ptErr [6] = { 0.05, 0.05, 0.05, 0.1, 0.25, 0.5}
 bin widths (transverse momentum)
 
TGraphErrors * m_gEff2
 efficiency graph
 
TGraphErrors * m_gEff
 efficiency graph
 
TH1F * m_h1DigitsPerParticle
 number of digits per particle
 
TH1F * m_h1RecoTracksPerParticle
 number of reco tracks per particle
 
TH1F * m_h1digiIn
 digits contained in ROI histogram
 
TH1F * m_h1digiOut2
 lost digit: ROI exist with right vxdID
 
TH1F * m_h1digiOut3
 lost digit: ROI exist with wrong vxdID
 
TH1F * m_h1digiOut4
 lost digit: ROI does not exist, intercept with right vxdID
 
TH1F * m_h1digiOut5
 lost digit: ROI does not exist, intercept with wrong vxdID
 
TH1F * m_h1TrackOneDigiIn
 tracks with at least digit contained in ROI
 
TH1F * m_h1nnotINtrack2
 tracks with lost digit: ROI exist with right vxdID
 
TH1F * m_h1nnotINtrack3
 lost digit: ROI exist with wrong vxdID
 
TH1F * m_h1nnotINtrack4
 lost digit: ROI does not exist, intercept with right vxdID
 
TH1F * m_h1nnotINtrack5
 lost digit: ROI does not exist, intercept with wrong vxdID
 
TH1F * m_h1Track
 denominator track

 
TH1F * m_h1Track_pt
 denominator track pT
 
TH1F * m_h1Track_phi
 denominator track phi
 
TH1F * m_h1Track_lambda
 denominator track lambda
 
TH1F * m_h1Track_cosTheta
 denominator track cosTheta
 
TH1F * m_h1Track_pVal
 denominator track pVal
 
TH1F * m_h1Track_nSVDhits
 denominator track pVal
 
TH1F * m_h1Track_nCDChits
 denominator track pVal
 
TH1F * m_h1INtrack1
 track with no intercept

 
TH1F * m_h1INtrack1_pt
 track with no intercept pT
 
TH1F * m_h1INtrack1_phi
 track with no intercept phi
 
TH1F * m_h1INtrack1_lambda
 track with no intercept lambda
 
TH1F * m_h1INtrack1_cosTheta
 track with no intercept costheta
 
TH1F * m_h1INtrack1_pVal
 denominator track pVal
 
TH1F * m_h1INtrack1_nSVDhits
 denominator track pVal
 
TH1F * m_h1INtrack1_nCDChits
 denominator track pVal
 
TH1F * m_h1notINtrack5
 track with no intercept

 
TH1F * m_h1notINtrack5_pt
 track with no intercept pT
 
TH1F * m_h1notINtrack5_phi
 track with no intercept phi
 
TH1F * m_h1notINtrack5_lambda
 track with no intercept lambda
 
TH1F * m_h1notINtrack5_cosTheta
 track with no intercept costheta
 
TH1F * m_h1notINtrack5_pVal
 denominator track pVal
 
TH1F * m_h1notINtrack5_nSVDhits
 denominator track pVal
 
TH1F * m_h1notINtrack5_nCDChits
 denominator track pVal
 
TH1F * m_h1PullU
 distribution of U pulls for PDXDigits contained in a ROI
 
TH1F * m_h1PullV
 distribution of V pulls for PDXDigits contained in a ROI
 
TH2F * m_h2sigmaUphi
 distribution of sigmaU VS phi for PDXDigits contained in a ROI
 
TH2F * m_h2sigmaVphi
 distribution of sigmaV VS phi for PDXDigits contained in a ROI
 
TH1F * m_h1ResidU
 distribution of U resid for SVDShaperDigits contained in a ROI
 
TH1F * m_h1ResidV
 distribution of V resid for SVDShaperDigits contained in a ROI
 
TH1F * m_h1SigmaU
 distribution of sigmaU for SVDShaperDigits contained in a ROI
 
TH1F * m_h1SigmaV
 distribution of sigmaV for SVDShaperDigits contained in a ROI
 
TH1F * m_h1GlobalTime
 distribution of global time for PDXDigits contained in a ROI
 
TH2F * m_h2sigmaUphi_out2
 distribution of sigmaU VS phi for PDXDigits not contained in a ROI
 
TH2F * m_h2sigmaVphi_out2
 distribution of sigmaV VS phi for PDXDigits not contained in a ROI
 
TH1F * m_h1ResidU_out2
 distribution of U resid for SVDShaperDigits not contained in a ROI
 
TH1F * m_h1ResidV_out2
 distribution of V resid for SVDShaperDigits not contained in a ROI
 
TH1F * m_h1SigmaU_out2
 distribution of sigmaU for SVDShaperDigits not contained in a ROI
 
TH1F * m_h1SigmaV_out2
 distribution of sigmaV for SVDShaperDigits not contained in a ROI
 
TH1F * m_h1GlobalTime_out2
 distribution of global time for PDXDigits not contained in a ROI
 
TH2F * m_h2sigmaUphi_out3
 distribution of sigmaU VS phi for PDXDigits not contained in a ROI
 
TH2F * m_h2sigmaVphi_out3
 distribution of sigmaV VS phi for PDXDigits not contained in a ROI
 
TH1F * m_h1ResidU_out3
 distribution of U resid for SVDShaperDigits not contained in a ROI
 
TH1F * m_h1ResidV_out3
 distribution of V resid for SVDShaperDigits not contained in a ROI
 
TH1F * m_h1SigmaU_out3
 distribution of sigmaU for SVDShaperDigits not contained in a ROI
 
TH1F * m_h1SigmaV_out3
 distribution of sigmaV for SVDShaperDigits not contained in a ROI
 
TH1F * m_h1GlobalTime_out3
 distribution of global time for PDXDigits not contained in a ROI
 
TH2F * m_h2sigmaUphi_out4
 distribution of sigmaU VS phi for PDXDigits not contained in a ROI
 
TH2F * m_h2sigmaVphi_out4
 distribution of sigmaV VS phi for PDXDigits not contained in a ROI
 
TH1F * m_h1SigmaU_out4
 distribution of sigmaU for SVDShaperDigits not contained in a ROI
 
TH1F * m_h1SigmaV_out4
 distribution of sigmaV for SVDShaperDigits not contained in a ROI
 
TH1F * m_h1GlobalTime_out4
 distribution of global time for PDXDigits not contained in a ROI
 
TH1F * m_h1GlobalTime_out5
 distribution of global time for PDXDigits not contained in a ROI
 
TH2F * m_h2ROIbottomLeft
 bottom left corner coordinates
 
TH2F * m_h2ROItopRight
 top right corner coordinates
 
TH2F * m_h2ROIuMinMax
 min VS max of the U coordinate
 
TH2F * m_h2ROIvMinMax
 min VS max of the V coordinate
 
TH1F * m_h1totROIs
 distribution of number of all ROIs
 
TH1F * m_h1okROIs
 distribution of number of ROIs containin a SVDShaperDigit
 
TH1F * m_h1totUstrips
 distribution of number of u strips of all ROIs
 
TH1F * m_h1totVstrips
 distribution of number of v strips of all ROIs
 
TH1F * m_h1effPerTrack
 efficiency per track
 
double m_globalTime
 global hit time
 
double m_coorU
 intercept U coordinate
 
double m_coorV
 intercept V coordinate
 
double m_sigmaU
 intercept U stat error
 
double m_sigmaV
 intercept V stat error
 
int m_vxdID
 VXD ID.
 
double m_coormc
 true intercept coordinate
 
int m_idmc
 true intercept U id

 
int m_vxdIDmc
 true intercept VXD id

 
double m_pTmc
 transverse momentum
 
double m_momXmc
 true p along X
 
double m_momYmc
 true p along Y
 
double m_momZmc
 true p along Z
 
double m_thetamc
 true theta
 
double m_costhetamc
 true cos theta
 
double m_phimc
 true phi
 
double m_lambdamc
 true lambda = pi/2 - theta
 
unsigned int Ntrack
 nuner of tracks with svd digits
 
unsigned int NtrackHit
 nuner of tracks with hits
 
unsigned int n_notINtrack2
 nuner of tracks with no digits in ROI (correct vxdID)
 
unsigned int n_notINtrack3
 nuner of tracks with no digits in ROI (wrong vxdID)
 
unsigned int n_notINtrack4
 nuner of tracks with no ROI (intercept with correct vxdID)
 
unsigned int n_notINtrack5
 nuner of tracks with no ROI (intercept with wrong vxdID)
 
unsigned int n_rois
 numner of rois
 
unsigned int n_OKrois
 good rois (simulation)
 
unsigned int m_nGoodROIs
 good rois (data)
 
unsigned int n_intercepts
 number of intercepts
 
unsigned int n_tracks
 number of tracks
 
unsigned int n_tracksWithDigits
 number of tracks with digits
 
unsigned int n_tracksWithDigitsInROI
 number of tracks with digits in ROI
 
unsigned int n_svdDigit
 number of svd digits
 
unsigned int n_svdDigitInROI
 number of svd digits in ROIs
 
unsigned int n_notINdigit2
 number of lost digits: no hit, correct vxdID
 
unsigned int n_notINdigit3
 number of lost digits: no hit, wrong vxdID
 
unsigned int n_notINdigit4
 number of lost digits: no ROI, intercepts with correct vxdID
 
unsigned int n_notINdigit5
 number of lost digits: no ROI, intercepts with wrong vxdID
 
unsigned int nsvdDigit [6]
 number of svd digits in bins of pt
 
unsigned int nsvdDigitInROI [6]
 number of svd digits inside ROI in bins of pt
 
unsigned int nnotINdigit2 [6]
 number of lost digits in bins of pt: no hit, correct vxdID
 
unsigned int nnotINdigit3 [6]
 number of lost digits in bins of pt: no hit, wrong vxdID
 
unsigned int nnotINdigit4 [6]
 number of lost digits in bins of pt: no ROI, intercepts with correct vxdID
 
unsigned int nnotINdigit5 [6]
 number of lost digits in bins of pt: no ROI, intercepts with wrong vxdID
 
unsigned int TrackOneDigiIn [6]
 tracks with one digit in, in pT bins
 
unsigned int nnotINtrack2 [6]
 tracks, inefficiency #2, in pT bins
 
unsigned int nnotINtrack3 [6]
 tracks, inefficiency #3, in pT bins
 
unsigned int nnotINtrack4 [6]
 tracks, inefficiency #4, in pT bins
 
unsigned int nnotINtrack5 [6]
 tracks, inefficiency #5, in pT bins
 
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.
 

Detailed Description

This module performs the analysis of the SVD data reduction module performances

Definition at line 34 of file SVDROIFinderAnalysisModule.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.

Constructor & Destructor Documentation

◆ SVDROIFinderAnalysisModule()

Constructor of the module.

Usual parameter handling.

Definition at line 34 of file SVDROIFinderAnalysisModule.cc.

34  : Module()
37  , m_ROIListName()
38  , m_rootFilePtr(nullptr)
39  , m_rootFileName("")
40  , m_writeToRoot(false)
41  , m_rootEvent(-1)
42  //efficiency graphs
43  , m_gEff2(nullptr)
44  , m_gEff(nullptr)
45  , m_h1DigitsPerParticle(nullptr)
46  , m_h1RecoTracksPerParticle(nullptr)
47  , m_h1digiIn(nullptr)
48  , m_h1digiOut2(nullptr)
49  , m_h1digiOut3(nullptr)
50  , m_h1digiOut4(nullptr)
51  , m_h1digiOut5(nullptr)
52  //tracks with no digit in ROI
53  , m_h1TrackOneDigiIn(nullptr)
54  , m_h1nnotINtrack2(nullptr)
55  , m_h1nnotINtrack3(nullptr)
56  , m_h1nnotINtrack4(nullptr)
57  , m_h1nnotINtrack5(nullptr)
58  //all tracks
59  , m_h1Track(nullptr)
60  , m_h1Track_pt(nullptr)
61  , m_h1Track_phi(nullptr)
62  , m_h1Track_lambda(nullptr)
63  , m_h1Track_cosTheta(nullptr)
64  , m_h1Track_pVal(nullptr)
65  , m_h1Track_nSVDhits(nullptr)
66  , m_h1Track_nCDChits(nullptr)
67  //tracks with at least one digit in ROI
68  , m_h1INtrack1(nullptr)
69  , m_h1INtrack1_pt(nullptr)
70  , m_h1INtrack1_phi(nullptr)
71  , m_h1INtrack1_lambda(nullptr)
72  , m_h1INtrack1_cosTheta(nullptr)
73  , m_h1INtrack1_pVal(nullptr)
74  , m_h1INtrack1_nSVDhits(nullptr)
75  , m_h1INtrack1_nCDChits(nullptr)
76  //tracks with no intercept
77  , m_h1notINtrack5(nullptr)
78  , m_h1notINtrack5_pt(nullptr)
79  , m_h1notINtrack5_phi(nullptr)
80  , m_h1notINtrack5_lambda(nullptr)
81  , m_h1notINtrack5_cosTheta(nullptr)
82  , m_h1notINtrack5_pVal(nullptr)
83  , m_h1notINtrack5_nSVDhits(nullptr)
84  , m_h1notINtrack5_nCDChits(nullptr)
85  //digits inside ROI
86  , m_h1PullU(nullptr)
87  , m_h1PullV(nullptr)
88  , m_h2sigmaUphi(nullptr)
89  , m_h2sigmaVphi(nullptr)
90  , m_h1ResidU(nullptr)
91  , m_h1ResidV(nullptr)
92  , m_h1SigmaU(nullptr)
93  , m_h1SigmaV(nullptr)
94  , m_h1GlobalTime(nullptr)
95  //digits outside2 ROI
96  , m_h2sigmaUphi_out2(nullptr)
97  , m_h2sigmaVphi_out2(nullptr)
98  , m_h1ResidU_out2(nullptr)
99  , m_h1ResidV_out2(nullptr)
100  , m_h1SigmaU_out2(nullptr)
101  , m_h1SigmaV_out2(nullptr)
102  , m_h1GlobalTime_out2(nullptr)
103  //digits outside3 ROI
104  , m_h2sigmaUphi_out3(nullptr)
105  , m_h2sigmaVphi_out3(nullptr)
106  , m_h1ResidU_out3(nullptr)
107  , m_h1ResidV_out3(nullptr)
108  , m_h1SigmaU_out3(nullptr)
109  , m_h1SigmaV_out3(nullptr)
110  , m_h1GlobalTime_out3(nullptr)
111  //digits outside4 ROI
112  , m_h2sigmaUphi_out4(nullptr)
113  , m_h2sigmaVphi_out4(nullptr)
114  , m_h1SigmaU_out4(nullptr)
115  , m_h1SigmaV_out4(nullptr)
116  , m_h1GlobalTime_out4(nullptr)
117  //digits outside5 ROI
118  , m_h1GlobalTime_out5(nullptr)
119 
120  //ROI stuff
121  , m_h2ROIbottomLeft(nullptr)
122  , m_h2ROItopRight(nullptr)
123  , m_h2ROIuMinMax(nullptr)
124  , m_h2ROIvMinMax(nullptr)
125  , m_h1totROIs(nullptr)
126  , m_h1okROIs(nullptr)
127  , m_h1totUstrips(nullptr)
128  , m_h1totVstrips(nullptr)
129 
130  , m_h1effPerTrack(nullptr)
131 
132  //variables
133  , m_globalTime(0.)
134  , m_coorU(0.)
135  , m_coorV(0.)
136  , m_sigmaU(0.)
137  , m_sigmaV(0.)
138  , m_vxdID(-1)
139 
140  , m_coormc(0.)
141  , m_idmc(-1)
142  , m_vxdIDmc(-1)
143  , m_pTmc(0.)
144  , m_momXmc(0.)
145  , m_momYmc(0.)
146  , m_momZmc(0.)
147  , m_thetamc(0.)
148  , m_costhetamc(0.)
149  , m_phimc(0.)
150  , m_lambdamc(0.)
151 
152  , Ntrack(0)
153  , NtrackHit(0)
154  , n_notINtrack2(0)
155  , n_notINtrack3(0)
156  , n_notINtrack4(0)
157  , n_notINtrack5(0)
158 
159  , n_rois(0)
160  , n_OKrois(0)
161  , m_nGoodROIs(0)
162  , n_intercepts(0)
163  , n_tracks(0)
164  , n_tracksWithDigits(0)
166 
167 
168  , n_svdDigit(0)
169  , n_svdDigitInROI(0)
170  , n_notINdigit2(0)
171  , n_notINdigit3(0)
172  , n_notINdigit4(0)
173  , n_notINdigit5(0)
174 
175  //vectors
176  , nsvdDigit{0}
177  , nsvdDigitInROI{0}
178  , nnotINdigit2{0}
179  , nnotINdigit3{0}
180  , nnotINdigit4{0}
181  , nnotINdigit5{0}
182  , TrackOneDigiIn{0}
183  , nnotINtrack2{0}
184  , nnotINtrack3{0}
185  , nnotINtrack4{0}
186  , nnotINtrack5{0}
187 
188 {
189  //Set module properties
190  setDescription("This module performs the analysis of the SVDROIFinder module output");
191 
192  addParam("isSimulation", m_isSimulation,
193  "set true if you want to evaluate efficiency on simulation", bool(true));
194  addParam("writeToRoot", m_writeToRoot,
195  "set true if you want to save the informations in a root file named by parameter 'rootFileName'", bool(true));
196 
197  addParam("rootFileName", m_rootFileName,
198  "fileName used for . Will be ignored if parameter 'writeToRoot' is false (standard)",
199  std::string("svdDataRedAnalysis"));
200 
201  addParam("recoTrackListName", m_recoTrackListName,
202  "name of the input collection of RecoTracks", std::string(""));
203 
204  addParam("shapers", m_shapersName,
205  "name of the input collection of SVDShaperDigits", std::string(""));
206 
207  addParam("SVDInterceptListName", m_SVDInterceptListName,
208  "name of the list of interceptions", std::string(""));
209 
210  addParam("ROIListName", m_ROIListName,
211  "name of the list of ROIs", std::string(""));
212 
213  m_rootEvent = 0;
214 }
void setDescription(const std::string &description)
Sets the description of the module.
Definition: Module.cc:214
Module()
Constructor.
Definition: Module.cc:30
unsigned int nnotINtrack3[6]
tracks, inefficiency #3, in pT bins
TH1F * m_h1SigmaU_out4
distribution of sigmaU for SVDShaperDigits not contained in a ROI
TH1F * m_h1GlobalTime_out3
distribution of global time for PDXDigits not contained in a ROI
TH1F * m_h1GlobalTime_out4
distribution of global time for PDXDigits not contained in a ROI
TH1F * m_h1notINtrack5_nCDChits
denominator track pVal
unsigned int nsvdDigit[6]
number of svd digits in bins of pt
TH1F * m_h1ResidU_out2
distribution of U resid for SVDShaperDigits not contained in a ROI
TH1F * m_h1INtrack1
track with no intercept
TH1F * m_h1nnotINtrack2
tracks with lost digit: ROI exist with right vxdID
TH2F * m_h2sigmaVphi_out2
distribution of sigmaV VS phi for PDXDigits not contained in a ROI
TH1F * m_h1SigmaV_out4
distribution of sigmaV for SVDShaperDigits not contained in a ROI
TH1F * m_h1ResidV
distribution of V resid for SVDShaperDigits contained in a ROI
TH1F * m_h1nnotINtrack3
lost digit: ROI exist with wrong vxdID
TH1F * m_h1nnotINtrack5
lost digit: ROI does not exist, intercept with wrong vxdID
TH1F * m_h1nnotINtrack4
lost digit: ROI does not exist, intercept with right vxdID
unsigned int n_notINdigit2
number of lost digits: no hit, correct vxdID
unsigned int n_notINtrack4
nuner of tracks with no ROI (intercept with correct vxdID)
unsigned int n_intercepts
number of intercepts
TH1F * m_h1INtrack1_nCDChits
denominator track pVal
std::string m_recoTrackListName
Track list name.
TH1F * m_h1INtrack1_pt
track with no intercept pT
bool m_writeToRoot
if true, a rootFile named by m_rootFileName will be filled with info
TH1F * m_h1INtrack1_lambda
track with no intercept lambda
TH1F * m_h1SigmaV_out3
distribution of sigmaV for SVDShaperDigits not contained in a ROI
unsigned int nnotINtrack2[6]
tracks, inefficiency #2, in pT bins
TH1F * m_h1INtrack1_phi
track with no intercept phi
TH1F * m_h1PullV
distribution of V pulls for PDXDigits contained in a ROI
TH1F * m_h1ResidV_out2
distribution of V resid for SVDShaperDigits not contained in a ROI
TH1F * m_h1Track_pVal
denominator track pVal
TH1F * m_h1PullU
distribution of U pulls for PDXDigits contained in a ROI
TH1F * m_h1okROIs
distribution of number of ROIs containin a SVDShaperDigit
TH1F * m_h1Track_cosTheta
denominator track cosTheta
TH1F * m_h1INtrack1_nSVDhits
denominator track pVal
unsigned int nnotINdigit3[6]
number of lost digits in bins of pt: no hit, wrong vxdID
unsigned int nnotINtrack4[6]
tracks, inefficiency #4, in pT bins
unsigned int n_notINtrack2
nuner of tracks with no digits in ROI (correct vxdID)
TH1F * m_h1notINtrack5_phi
track with no intercept phi
unsigned int n_notINdigit3
number of lost digits: no hit, wrong vxdID
TH1F * m_h1Track_nCDChits
denominator track pVal
TH1F * m_h1digiOut5
lost digit: ROI does not exist, intercept with wrong vxdID
TH1F * m_h1Track_lambda
denominator track lambda
unsigned int nnotINdigit4[6]
number of lost digits in bins of pt: no ROI, intercepts with correct vxdID
unsigned int nnotINdigit2[6]
number of lost digits in bins of pt: no hit, correct vxdID
TH1F * m_h1notINtrack5_lambda
track with no intercept lambda
std::string m_SVDInterceptListName
Intercept list name.
TGraphErrors * m_gEff2
efficiency graph
TH1F * m_h1totROIs
distribution of number of all ROIs
TH1F * m_h1TrackOneDigiIn
tracks with at least digit contained in ROI
TH2F * m_h2sigmaUphi_out2
distribution of sigmaU VS phi for PDXDigits not contained in a ROI
TH1F * m_h1ResidU_out3
distribution of U resid for SVDShaperDigits not contained in a ROI
unsigned int n_svdDigit
number of svd digits
TH1F * m_h1digiOut4
lost digit: ROI does not exist, intercept with right vxdID
unsigned int nnotINtrack5[6]
tracks, inefficiency #5, in pT bins
unsigned int n_notINdigit5
number of lost digits: no ROI, intercepts with wrong vxdID
TH1F * m_h1GlobalTime
distribution of global time for PDXDigits contained in a ROI
TH2F * m_h2ROItopRight
top right corner coordinates
unsigned int nsvdDigitInROI[6]
number of svd digits inside ROI in bins of pt
unsigned int NtrackHit
nuner of tracks with hits
TH1F * m_h1SigmaU_out2
distribution of sigmaU for SVDShaperDigits not contained in a ROI
TH1F * m_h1notINtrack5_pVal
denominator track pVal
TH1F * m_h1SigmaV
distribution of sigmaV for SVDShaperDigits contained in a ROI
TH1F * m_h1digiOut2
lost digit: ROI exist with right vxdID
TH1F * m_h1GlobalTime_out2
distribution of global time for PDXDigits not contained in a ROI
TH1F * m_h1INtrack1_cosTheta
track with no intercept costheta
unsigned int n_tracksWithDigitsInROI
number of tracks with digits in ROI
TH2F * m_h2sigmaUphi_out4
distribution of sigmaU VS phi for PDXDigits not contained in a ROI
TH1F * m_h1RecoTracksPerParticle
number of reco tracks per particle
TH1F * m_h1SigmaU
distribution of sigmaU for SVDShaperDigits contained in a ROI
TH1F * m_h1GlobalTime_out5
distribution of global time for PDXDigits not contained in a ROI
unsigned int Ntrack
nuner of tracks with svd digits
unsigned int n_notINtrack5
nuner of tracks with no ROI (intercept with wrong vxdID)
TH1F * m_h1ResidV_out3
distribution of V resid for SVDShaperDigits not contained in a ROI
unsigned int nnotINdigit5[6]
number of lost digits in bins of pt: no ROI, intercepts with wrong vxdID
unsigned int n_tracksWithDigits
number of tracks with digits
TH1F * m_h1Track_nSVDhits
denominator track pVal
unsigned int n_notINdigit4
number of lost digits: no ROI, intercepts with correct vxdID
TH1F * m_h1ResidU
distribution of U resid for SVDShaperDigits contained in a ROI
TH1F * m_h1notINtrack5_nSVDhits
denominator track pVal
double m_lambdamc
true lambda = pi/2 - theta
TH1F * m_h1INtrack1_pVal
denominator track pVal
TH2F * m_h2sigmaVphi_out3
distribution of sigmaV VS phi for PDXDigits not contained in a ROI
TH1F * m_h1notINtrack5_pt
track with no intercept pT
TH2F * m_h2sigmaVphi_out4
distribution of sigmaV VS phi for PDXDigits not contained in a ROI
unsigned int n_OKrois
good rois (simulation)
unsigned int n_svdDigitInROI
number of svd digits in ROIs
bool m_isSimulation
true if the module is run on simulated events
TH1F * m_h1notINtrack5
track with no intercept
TH2F * m_h2sigmaUphi
distribution of sigmaU VS phi for PDXDigits contained in a ROI
TH2F * m_h2ROIbottomLeft
bottom left corner coordinates
TH1F * m_h1digiIn
digits contained in ROI histogram
TH2F * m_h2ROIvMinMax
min VS max of the V coordinate
TH1F * m_h1totUstrips
distribution of number of u strips of all ROIs
TH1F * m_h1SigmaV_out2
distribution of sigmaV for SVDShaperDigits not contained in a ROI
TH1F * m_h1DigitsPerParticle
number of digits per particle
std::string m_shapersName
SVDShaperDigits name.
TH1F * m_h1totVstrips
distribution of number of v strips of all ROIs
TH2F * m_h2sigmaVphi
distribution of sigmaV VS phi for PDXDigits contained in a ROI
TH2F * m_h2sigmaUphi_out3
distribution of sigmaU VS phi for PDXDigits not contained in a ROI
TFile * m_rootFilePtr
pointer at root file used for storing infos for debugging and validating purposes
unsigned int TrackOneDigiIn[6]
tracks with one digit in, in pT bins
TH2F * m_h2ROIuMinMax
min VS max of the U coordinate
double m_coormc
true intercept coordinate
unsigned int n_notINtrack3
nuner of tracks with no digits in ROI (wrong vxdID)
TH1F * m_h1SigmaU_out3
distribution of sigmaU for SVDShaperDigits not contained in a ROI
TH1F * m_h1digiOut3
lost digit: ROI exist with wrong vxdID
TH1F * m_h1notINtrack5_cosTheta
track with no intercept costheta
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

Member Function Documentation

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

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

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

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

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

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

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

Definition at line 134 of file Module.h.

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

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

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

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

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

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

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

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

◆ initialize()

void initialize ( void  )
overridevirtual

Initializes the Module.

Prepare the root file.

Reimplemented from Module.

Definition at line 221 of file SVDROIFinderAnalysisModule.cc.

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

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

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

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

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

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

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

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

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


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