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

The module studies VXD hits from overlapping sensors of a same VXD layer. More...

#include <OverlapResidualsModule.h>

Inheritance diagram for OverlapResidualsModule:
Collaboration diagram for OverlapResidualsModule:

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

 OverlapResidualsModule ()
 Constructor.
 
void initialize () override
 Register input and output data.
 
void event () override
 Compute the difference of coordinate residuals between two hits in overlapping sensors of a same VXD layer.
 
void defineHisto () override
 Histogram definitions such as TH1(), TH2(), TNtuple(), TTree().... More...
 
virtual void beginRun () override
 Function to process begin_run record.
 
virtual void endRun () override
 Function to process end_run record.
 
virtual void terminate () override
 Function to terminate module.
 
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

bool m_ExpertLevel
 Expert level switch.
 
std::string m_recoTracksStoreArrayName {"RecoTracks"}
 StoreArray name of the input and output RecoTracks.
 
StoreArray< PXDClusterm_pxdcluster
 Array storing PXD clusters.
 
StoreArray< SVDClusterm_svdcluster
 Array storing SVD clusters.
 
TH1F * h_U_DeltaRes = nullptr
 Histogram of VXD ( PXD + SVD ) differences of u-coordinate residuals.
 
TH1F * h_V_DeltaRes = nullptr
 Histogram of VXD ( PXD + SVD ) differences of v-coordinate residuals.
 
TH1F * h_U_DeltaRes_PXD = nullptr
 Histogram of PXD u-coordinate differences of residuals.
 
TH1F * h_U_DeltaRes_PXD_Lyr1 = nullptr
 Histogram of PXD layer-1 u-coordinate differences of residuals.
 
TH1F * h_U_DeltaRes_PXD_Lyr2 = nullptr
 Histogram of PXD layer-2 u-coordinate differences of residuals.
 
TH1F * h_V_DeltaRes_PXD = nullptr
 Histogram of PXD v-coordinate differences of residuals.
 
TH1F * h_V_DeltaRes_PXD_Lyr1 = nullptr
 Histogram of PXD layer-1 v-coordinate differences of residuals.
 
TH1F * h_V_DeltaRes_PXD_Lyr2 = nullptr
 Histogram of PXD layer-2 v-coordinate differences of residuals.
 
TH1F * h_U_DeltaRes_SVD = nullptr
 Histogram of SVD u-coordinate differences of residuals.
 
TH1F * h_U_DeltaRes_SVD_Lyr3 = nullptr
 Histogram of SVD layer-3 u-coordinate differences of residuals.
 
TH1F * h_U_DeltaRes_SVD_Lyr4 = nullptr
 Histogram of SVD layer-4 u-coordinate differences of residuals.
 
TH1F * h_U_DeltaRes_SVD_Lyr5 = nullptr
 Histogram of SVD layer-5 u-coordinate differences of residuals.
 
TH1F * h_U_DeltaRes_SVD_Lyr6 = nullptr
 Histogram of SVD layer-6 u-coordinate differences of residuals.
 
TH1F * h_V_DeltaRes_SVD = nullptr
 Histogram of SVD v-coordinate differences of residuals.
 
TH1F * h_V_DeltaRes_SVD_Lyr3 = nullptr
 Histogram of SVD layer-3 v-coordinate differences of residuals.
 
TH1F * h_V_DeltaRes_SVD_Lyr4 = nullptr
 Histogram of SVD layer-4 v-coordinate differences of residuals.
 
TH1F * h_V_DeltaRes_SVD_Lyr5 = nullptr
 Histogram of SVD layer-5 v-coordinate differences of residuals.
 
TH1F * h_V_DeltaRes_SVD_Lyr6 = nullptr
 Histogram of SVD layer-6 v-coordinate differences of residuals.
 
TH2F * h_DeltaResUPhi_Lyr6 = nullptr
 2D histogram of DeltaRes_u vs phi of VXD overlaps for layer 6
 
TH2F * h_DeltaResUPhi_Lyr5 = nullptr
 2D histogram of DeltaRes_u vs phi of VXD overlaps for layer 5
 
TH2F * h_DeltaResUPhi_Lyr4 = nullptr
 2D histogram of DeltaRes_u vs phi of VXD overlaps for layer 4
 
TH2F * h_DeltaResUPhi_Lyr3 = nullptr
 2D histogram of DeltaRes_u vs phi of VXD overlaps for layer 3
 
TH2F * h_DeltaResUPhi_Lyr2 = nullptr
 2D histogram of DeltaRes_u vs phi of VXD overlaps for layer 2
 
TH2F * h_DeltaResUPhi_Lyr1 = nullptr
 2D Histogram of DeltaRes_u vs phi of VXD overlaps for layer 1
 
TH2F * h_DeltaResUz_Lyr6 = nullptr
 2D histogram of DeltaRes_u vs z of VXD overlaps for layer 6
 
TH2F * h_DeltaResUz_Lyr5 = nullptr
 2D histogram of DeltaRes_u vs z of VXD overlaps for layer 5
 
TH2F * h_DeltaResUz_Lyr4 = nullptr
 2D histogram of DeltaRes_u vs z of VXD overlaps for layer 4
 
TH2F * h_DeltaResUz_Lyr3 = nullptr
 2D histogram of DeltaRes_u vs z of VXD overlaps for layer 3
 
TH2F * h_DeltaResUz_Lyr2 = nullptr
 2D histogram of DeltaRes_u vs z of VXD overlaps for layer 2
 
TH2F * h_DeltaResUz_Lyr1 = nullptr
 2D histogram of DeltaRes_u vs z of VXD overlaps for layer 1
 
TH2F * h_DeltaResVz_Lyr6 = nullptr
 2D histogram of DeltaRes_v vs z of VXD overlaps for layer 6
 
TH2F * h_DeltaResVz_Lyr5 = nullptr
 2D histogram of DeltaRes_v vs z of VXD overlaps for layer 5
 
TH2F * h_DeltaResVz_Lyr4 = nullptr
 2D histogram of DeltaRes_v vs z of VXD overlaps for layer 4
 
TH2F * h_DeltaResVz_Lyr3 = nullptr
 2D histogram of DeltaRes_v vs z of VXD overlaps for layer 3
 
TH2F * h_DeltaResVz_Lyr2 = nullptr
 2D histogram of DeltaRes_v vs z of VXD overlaps for layer 2
 
TH2F * h_DeltaResVz_Lyr1 = nullptr
 2D histogram of DeltaRes_v vs z of VXD overlaps for layer 1
 
TH2F * h_DeltaResVPhi_Lyr6 = nullptr
 2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 6
 
TH2F * h_DeltaResVPhi_Lyr5 = nullptr
 2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 5
 
TH2F * h_DeltaResVPhi_Lyr4 = nullptr
 2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 4
 
TH2F * h_DeltaResVPhi_Lyr3 = nullptr
 2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 3
 
TH2F * h_DeltaResVPhi_Lyr2 = nullptr
 2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 2
 
TH2F * h_DeltaResVPhi_Lyr1 = nullptr
 2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 1
 
TH1F * h_SVDstrips_Mult = nullptr
 Histogram of SVD strips multiplicity.
 
TH1F * h_U_Cl1Cl2_DeltaRes [5] = {nullptr}
 Histogram of SVD differences of u-coordinate residuals grouped by clusters sizes.
 
TH1F * h_V_Cl1Cl2_DeltaRes [5] = {nullptr}
 Histogram of SVD differences of v-coordinate residuals grouped by clusters sizes.
 
TH2F * h_Lyr6 [17][6] = {{nullptr}}
 Sensor hit-map for layer 6 from reconstructed u and v coordinates.
 
TH2F * h_Lyr5 [13][5] = {{nullptr}}
 Sensor hit-map for layer 5 from reconstructed u and v coordinates.
 
TH2F * h_Lyr4 [11][4] = {{nullptr}}
 Sensor hit-map for layer 4 from reconstructed u and v coordinates.
 
TH2F * h_Lyr3 [8][3] = {{nullptr}}
 Sensor hit-map for layer 3 from reconstructed u and v coordinates.
 
TH2F * h_Lyr2 [13][3] = {{nullptr}}
 Sensor hit-map for layer 2 from reconstructed u and v coordinates.
 
TH2F * h_Lyr1 [9][3] = {{nullptr}}
 Sensor hit-map for layer 1 from reconstructed u and v coordinates.
 
TTree * t_PXD = nullptr
 Tree containing global information on PXD overlaps.
 
TTree * t_SVD_U = nullptr
 Tree containing global information on SVD u-coordinate overlaps.
 
TTree * t_SVD_V = nullptr
 Tree containing global information on SVD v-coordinate overlaps.
 
float deltaResU_PXD = 0
 tree t_PXD branch deltaResU/F
 
float intResU_PXD = 0
 tree t_PXD branch intResU_PXD/F
 
float intResV_PXD = 0
 tree t_PXD branch intResV/PXD/F
 
float intU_PXD = 0
 tree t_PXD branch intU_PXD/F
 
float intV_PXD = 0
 tree t_PXD branch intV_PXD/F
 
float intPhi_PXD = 0
 tree t_PXD branch intPhi_PXD/F
 
float intZ_PXD = 0
 tree t_PXD branch intZ_PXD/F
 
float extResU_PXD = 0
 tree t_PXD branch extResU_PXD/F
 
float extResV_PXD = 0
 tree t_PXD branch extResV_PXD/F
 
float extU_PXD = 0
 tree t_PXD branch extU_PXD/F
 
float extV_PXD = 0
 tree t_PXD branch extV_PXD/F
 
float extPhi_PXD = 0
 tree t_PXD branch extPhi/PXD/F
 
float extZ_PXD = 0
 tree t_PXD branch extZ_PXD/F
 
unsigned int intLayer_PXD = 0
 tree t_PXD branch intLayer_PXD/i
 
unsigned int intLadder_PXD = 0
 tree t_PXD branch intLadder_PXD/i
 
unsigned int intSensor_PXD = 0
 tree t_PXD branch intSensor_PXD/i
 
unsigned int extLayer_PXD = 0
 tree t_PXD branch extLayer_PXD/i
 
unsigned int extLadder_PXD = 0
 tree t_PXD branch extLadder_PXD/i
 
unsigned int extSensor_PXD = 0
 tree t_PXD branch extSensor_PXD/i
 
float svdDeltaRes_U = 0
 U difference between external and internal residual.
 
float svdClCharge_U_int = 0
 U internal cluster charge.
 
float svdClSNR_U_int = 0
 U internal cluster SNR.
 
float svdClTime_U_int = 0
 U internal cluster time.
 
float svdRes_U_int = 0
 U internal residual computed by genfit.
 
float svdClIntStrPos_U_int = 0
 U internal cluster interstrip position.
 
float svdClPos_U_int = 0
 U internal cluster position.
 
float svdClPosErr_U_int = 0
 U internal cluster position error.
 
float svdTruePos_U_int = -99
 U internal true position.
 
float svdClPhi_U_int = 0
 U internal cluster global phi.
 
float svdClZ_U_int = 0
 U internal cluster global Z.
 
float svdTrkd0 = 0
 d0 of the track
 
float svdTrkz0 = 0
 z0 of the track
 
float svdTrkpT = 0
 pT of the track
 
float svdTrkpCM = 0
 pCM of the track
 
float svdTrkTraversedLength_U_int = 0
 U internal traversed length of the track in the sensor.
 
float svdTrkPos_U_int = 0
 U internal track position.
 
float svdTrkPosOS_U_int = 0
 U internal track position on the other side.
 
float svdTrkPosErr_U_int = 0
 U internal track position error.
 
float svdTrkPosErrOS_U_int = 0
 U internal track position error on the other side.
 
float svdTrkQoP_U_int = 0
 U internal track q/p.
 
float svdTrkPrime_U_int = 0
 U internal tan of incident angle projected on u,w.
 
float svdTrkPrimeOS_U_int = 0
 U internal tan of incident angle projected on v/u,w (other side)
 
float svdTrkPosUnbiased_U_int = 0
 U internal unbiased track position.
 
float svdTrkPosErrUnbiased_U_int = 0
 U internal unbiased track position error.
 
float svdTrkQoPUnbiased_U_int = 0
 U internal unbiased track q/p.
 
float svdTrkPrimeUnbiased_U_int = 0
 U internal unbiased tan of incident angle projected on u,w.
 
float svdClCharge_U_ext = 0
 U external cluster charge.
 
float svdClSNR_U_ext = 0
 U external cluster SNR.
 
float svdClTime_U_ext = 0
 U external cluster time.
 
float svdRes_U_ext = 0
 U external residual computed by genfit.
 
float svdClIntStrPos_U_ext = 0
 U external cluster interstrip position.
 
float svdClPos_U_ext = 0
 U external cluster position.
 
float svdClPosErr_U_ext = 0
 U external cluster position error.
 
float svdTruePos_U_ext = -99
 U external true position.
 
float svdClPhi_U_ext = 0
 U external cluster global phi.
 
float svdClZ_U_ext = 0
 U external cluster global Z.
 
float svdTrkTraversedLength_U_ext = 0
 U external traversed length of the track in the sensor.
 
float svdTrkPos_U_ext = 0
 U external track position.
 
float svdTrkPosOS_U_ext = 0
 U external track position on the other side.
 
float svdTrkPosErr_U_ext = 0
 U external track position error.
 
float svdTrkPosErrOS_U_ext = 0
 U external track position error on the other side.
 
float svdTrkQoP_U_ext = 0
 U external track q/p.
 
float svdTrkPrime_U_ext = 0
 U external tan of incident angle projected on u,w.
 
float svdTrkPrimeOS_U_ext = 0
 U external tan of incident angle projected on v/u,w (other side)
 
float svdTrkPosUnbiased_U_ext = 0
 U external unbiased track position.
 
float svdTrkPosErrUnbiased_U_ext = 0
 U external unbiased track position error.
 
float svdTrkQoPUnbiased_U_ext = 0
 U external unbiased track q/p.
 
float svdTrkPrimeUnbiased_U_ext = 0
 U external unbiased tan of incident angle projected on u,w.
 
int svdTrkPXDHits = 0
 number of PXD hits on the track
 
int svdTrkSVDHits = 0
 number of PXD hits on the track
 
int svdTrkCDCHits = 0
 number of PXD hits on the track
 
unsigned int svdLayer_U_int = 0
 U internal layer.
 
unsigned int svdLadder_U_int = 0
 U internal ladder.
 
unsigned int svdSensor_U_int = 0
 U internal sensor.
 
unsigned int svdSize_U_int = 0
 U internal size.
 
unsigned int svdLayer_U_ext = 0
 U external layer.
 
unsigned int svdLadder_U_ext = 0
 U external ladder.
 
unsigned int svdSensor_U_ext = 0
 U external sensor.
 
unsigned int svdSize_U_ext = 0
 U external size.
 
std::vector< float > svdStripCharge_U_int
 U internal charge of the strips of the cluster.
 
std::vector< float > svdStrip6Samples_U_int
 U internal 6 samples of the strips of the cluster. More...
 
std::vector< float > svdStripTime_U_int
 U internal time of the strips of the cluster.
 
std::vector< float > svdStripPosition_U_int
 U internal position of the strips of the cluster.
 
std::vector< float > svdStripCharge_U_ext
 U external charge of the strips of the cluster.
 
std::vector< float > svdStrip6Samples_U_ext
 U external 6 samples of the strips of the cluster. More...
 
std::vector< float > svdStripTime_U_ext
 U external time of the strips of the cluster.
 
std::vector< float > svdStripPosition_U_ext
 U external position of the strips of the cluster.
 
float svdDeltaRes_V = 0
 V difference between external and internal residual.
 
float svdClCharge_V_int = 0
 V internal cluster charge.
 
float svdClSNR_V_int = 0
 V internal cluster SNR.
 
float svdClTime_V_int = 0
 V internal cluster time.
 
float svdRes_V_int = 0
 V internal residual computed by genfit.
 
float svdClIntStrPos_V_int = 0
 V internal cluster interstrip position.
 
float svdClPos_V_int = 0
 V internal cluster position.
 
float svdClPosErr_V_int = 0
 V internal cluster position error.
 
float svdTruePos_V_int = -99
 V internal true position.
 
float svdClPhi_V_int = 0
 V internal cluster global phi.
 
float svdClZ_V_int = 0
 V internal cluster global Z.
 
float svdTrkTraversedLength_V_int = 0
 V internal traversed length of the track in the sensor.
 
float svdTrkPos_V_int = 0
 V internal track position.
 
float svdTrkPosOS_V_int = 0
 V internal track position on the other side.
 
float svdTrkPosErr_V_int = 0
 V internal track position error.
 
float svdTrkPosErrOS_V_int = 0
 V internal track position error on the other side.
 
float svdTrkQoP_V_int = 0
 V internal track q/p.
 
float svdTrkPrime_V_int = 0
 V internal tan of incident angle projected on u,w.
 
float svdTrkPrimeOS_V_int = 0
 V internal tan of incident angle projected on v/u,w (other side)
 
float svdTrkPosUnbiased_V_int = 0
 V internal unbiased track position.
 
float svdTrkPosErrUnbiased_V_int = 0
 V internal unbiased track position error.
 
float svdTrkQoPUnbiased_V_int = 0
 V internal unbiased track q/p.
 
float svdTrkPrimeUnbiased_V_int = 0
 V internal unbiased tan of incident angle projected on u,w.
 
float svdClCharge_V_ext = 0
 V external cluster charge.
 
float svdClSNR_V_ext = 0
 V external cluster SNR.
 
float svdClTime_V_ext = 0
 V external cluster time.
 
float svdRes_V_ext = 0
 V external residual computed by genfit.
 
float svdClIntStrPos_V_ext = 0
 V external cluster interstrip position.
 
float svdClPos_V_ext = 0
 V external cluster position.
 
float svdClPosErr_V_ext = 0
 V external cluster position error.
 
float svdTruePos_V_ext = -99
 V external true position.
 
float svdClPhi_V_ext = 0
 V external cluster global phi.
 
float svdClZ_V_ext = 0
 V external cluster global Z.
 
float svdTrkTraversedLength_V_ext = 0
 V external traversed length of the track in the sensor.
 
float svdTrkPos_V_ext = 0
 V external track position.
 
float svdTrkPosOS_V_ext = 0
 V external track position on the other side.
 
float svdTrkPosErr_V_ext = 0
 V external track position error.
 
float svdTrkPosErrOS_V_ext = 0
 V external track position error on the other side.
 
float svdTrkQoP_V_ext = 0
 V external track q/p.
 
float svdTrkPrime_V_ext = 0
 V external tan of incident angle projected on u,w.
 
float svdTrkPrimeOS_V_ext = 0
 V external tan of incident angle projected on v/u,w (other side)
 
float svdTrkPosUnbiased_V_ext = 0
 V external unbiased track position.
 
float svdTrkPosErrUnbiased_V_ext = 0
 V external unbiased track position error.
 
float svdTrkQoPUnbiased_V_ext = 0
 V external unbiased track q/p.
 
float svdTrkPrimeUnbiased_V_ext = 0
 V external unbiased tan of incident angle projected on u,w.
 
unsigned int svdLayer_V_int = 0
 V internal layer.
 
unsigned int svdLadder_V_int = 0
 V internal ladder.
 
unsigned int svdSensor_V_int = 0
 V internal sensor.
 
unsigned int svdSize_V_int = 0
 V internal size.
 
unsigned int svdLayer_V_ext = 0
 V external layer.
 
unsigned int svdLadder_V_ext = 0
 V external ladder.
 
unsigned int svdSensor_V_ext = 0
 V external sensor.
 
unsigned int svdSize_V_ext = 0
 V external size.
 
std::vector< float > svdStripCharge_V_int
 V internal charge of the strips of the cluster.
 
std::vector< float > svdStrip6Samples_V_int
 V internal 6 samples of the strips of the cluster. More...
 
std::vector< float > svdStripTime_V_int
 V internal time of the strips of the cluster.
 
std::vector< float > svdStripPosition_V_int
 V internal position of the strips of the cluster.
 
std::vector< float > svdStripCharge_V_ext
 V external charge of the strips of the cluster.
 
std::vector< float > svdStrip6Samples_V_ext
 V external 6 samples of the strips of the cluster. More...
 
std::vector< float > svdStripTime_V_ext
 V external time of the strips of the cluster.
 
std::vector< float > svdStripPosition_V_ext
 V external position of the strips of the cluster.
 
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

The module studies VXD hits from overlapping sensors of a same VXD layer.

In particular, it computes residuals differences sensitive to possible detector misalignments.

Overlapping residuals

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

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.

◆ defineHisto()

void defineHisto ( )
overridevirtual

Histogram definitions such as TH1(), TH2(), TNtuple(), TTree()....

are supposed to be placed in this function

Reimplemented from HistoModule.

Definition at line 64 of file OverlapResidualsModule.cc.

65 {
66  //Create directory to store monitoring histograms
67  TDirectory* oldDir = gDirectory;
68  TDirectory* ResDir = oldDir->mkdir("Monitoring_VXDOverlaps");
69  ResDir->cd();
70  //Define histograms of residuals differences
71  h_U_DeltaRes = new TH1F("h_U_DeltaRes", "Histrogram of residual difference #Delta res_{u} for overlapping hits", 100, -1000, 1000);
72  h_U_DeltaRes->GetXaxis()->SetTitle("#Delta res_{u} (#mum)");
73  h_U_DeltaRes->GetYaxis()->SetTitle("counts");
74  h_V_DeltaRes = new TH1F("h_V_DeltaRes", "Histrogram of residual difference #Delta res_{v} for overlapping hits", 100, -1000, 1000);
75  h_V_DeltaRes->GetXaxis()->SetTitle("#Delta res_{v} (#mum)");
76  h_V_DeltaRes->GetYaxis()->SetTitle("counts");
77  h_U_DeltaRes_PXD = new TH1F("h_U_DeltaRes_PXD", "Histrogram of residual difference #Delta res_{u} for overlapping PXD hits", 100,
78  -1000, 1000);
79  h_U_DeltaRes_PXD->GetXaxis()->SetTitle("#Delta res_{u} (#mum)");
80  h_U_DeltaRes_PXD->GetYaxis()->SetTitle("counts");
81  h_U_DeltaRes_PXD_Lyr1 = new TH1F("h_U_DeltaRes_PXD_Lyr1",
82  "Layer1: histrogram of residual difference #Delta res_{u} for overlapping PXD hits", 100, -1000, 1000);
83  h_U_DeltaRes_PXD_Lyr1->GetXaxis()->SetTitle("#Delta res_{u} (#mum)");
84  h_U_DeltaRes_PXD_Lyr1->GetYaxis()->SetTitle("counts");
85  h_U_DeltaRes_PXD_Lyr2 = new TH1F("h_U_DeltaRes_PXD_Lyr2",
86  "Layer 2: hstrogram of residual difference #Delta res_{u} for overlapping PXD hits", 100, -1000, 1000);
87  h_U_DeltaRes_PXD_Lyr2->GetXaxis()->SetTitle("#Delta res_{u} (#mum)");
88  h_U_DeltaRes_PXD_Lyr2->GetYaxis()->SetTitle("counts");
89  h_V_DeltaRes_PXD = new TH1F("h_V_DeltaRes_PXD", "Histrogram of residual difference #Delta res_{v} for overlapping PXD hits", 100,
90  -1000, 1000);
91  h_V_DeltaRes_PXD->GetXaxis()->SetTitle("#Delta res_{v} (#mum)");
92  h_V_DeltaRes_PXD->GetYaxis()->SetTitle("counts");
93  h_V_DeltaRes_PXD_Lyr1 = new TH1F("h_V_DeltaRes_PXD_Lyr1",
94  "Layer 1: histrogram of residual difference #Delta res_{v} for overlapping PXD hits", 100, -1000, 1000);
95  h_V_DeltaRes_PXD_Lyr1->GetXaxis()->SetTitle("#Delta res_{v} (#mum)");
96  h_V_DeltaRes_PXD_Lyr1->GetYaxis()->SetTitle("counts");
97  h_V_DeltaRes_PXD_Lyr2 = new TH1F("h_V_DeltaRes_PXD_Lyr2",
98  "Layer 2: histrogram of residual difference #Delta res_{v} for overlapping PXD hits", 100, -1000, 1000);
99  h_V_DeltaRes_PXD_Lyr2->GetXaxis()->SetTitle("#Delta res_{v} (#mum)");
100  h_V_DeltaRes_PXD_Lyr2->GetYaxis()->SetTitle("counts");
101  h_U_DeltaRes_SVD = new TH1F("h_U_DeltaRes_SVD", "Histrogram of residual difference #Delta res_{u} for overlapping SVD hits", 100,
102  -1000, 1000);
103  h_U_DeltaRes_SVD->GetXaxis()->SetTitle("#Delta res_{u} (#mum)");
104  h_U_DeltaRes_SVD->GetYaxis()->SetTitle("counts");
105  h_U_DeltaRes_SVD_Lyr3 = new TH1F("h_U_DeltaRes_SVD_Lyr3",
106  "Layer 3: histrogram of residual difference #Delta res_{u} for overlapping SVD hits", 100, -1000, 1000);
107  h_U_DeltaRes_SVD_Lyr3->GetXaxis()->SetTitle("#Delta res_{u} (#mum)");
108  h_U_DeltaRes_SVD_Lyr3->GetYaxis()->SetTitle("counts");
109  h_U_DeltaRes_SVD_Lyr4 = new TH1F("h_U_DeltaRes_SVD_Lyr4",
110  "Layer 4: histrogram of residual difference #Delta res_{u} for overlapping SVD hits", 100, -1000, 1000);
111  h_U_DeltaRes_SVD_Lyr4->GetXaxis()->SetTitle("#Delta res_{u} (#mum)");
112  h_U_DeltaRes_SVD_Lyr4->GetYaxis()->SetTitle("counts");
113  h_U_DeltaRes_SVD_Lyr5 = new TH1F("h_U_DeltaRes_SVD_Lyr5",
114  "Layer 5: histrogram of residual difference #Delta res_{u} for overlapping SVD hits", 100, -1000, 1000);
115  h_U_DeltaRes_SVD_Lyr5->GetXaxis()->SetTitle("#Delta res_{u} (#mum)");
116  h_U_DeltaRes_SVD_Lyr5->GetYaxis()->SetTitle("counts");
117  h_U_DeltaRes_SVD_Lyr6 = new TH1F("h_U_DeltaRes_SVD_Lyr6",
118  "Layer 6: histrogram of residual difference #Delta res_{u} for overlapping SVD hits", 100, -1000, 1000);
119  h_U_DeltaRes_SVD_Lyr6->GetXaxis()->SetTitle("#Delta res_{u} (#mum)");
120  h_U_DeltaRes_SVD_Lyr6->GetYaxis()->SetTitle("counts");
121  h_V_DeltaRes_SVD = new TH1F("h_V_DeltaRes_SVD", "Histrogram of residual difference #Delta res_{v} for overlapping SVD hits", 100,
122  -1000, 1000);
123  h_V_DeltaRes_SVD->GetXaxis()->SetTitle("#Delta res_{v} (#mum)");
124  h_V_DeltaRes_SVD->GetYaxis()->SetTitle("counts");
125  h_V_DeltaRes_SVD_Lyr3 = new TH1F("h_V_DeltaRes_SVD_Lyr3",
126  "Layer 3: histrogram of residual difference #Delta res_{v} for overlapping SVD hits", 100, -1000, 1000);
127  h_V_DeltaRes_SVD_Lyr3->GetXaxis()->SetTitle("#Delta res_{v} (#mum)");
128  h_V_DeltaRes_SVD_Lyr3->GetYaxis()->SetTitle("counts");
129  h_V_DeltaRes_SVD_Lyr4 = new TH1F("h_V_DeltaRes_SVD_Lyr4",
130  "Layer 4: histrogram of residual difference #Delta res_{v} for overlapping SVD hits", 100, -1000, 1000);
131  h_V_DeltaRes_SVD_Lyr4->GetXaxis()->SetTitle("#Delta res_{v} (#mum)");
132  h_V_DeltaRes_SVD_Lyr4->GetYaxis()->SetTitle("counts");
133  h_V_DeltaRes_SVD_Lyr5 = new TH1F("h_V_DeltaRes_SVD_Lyr5",
134  "Layer 5: histrogram of residual difference #Delta res_{v} for overlapping SVD hits", 100, -1000, 1000);
135  h_V_DeltaRes_SVD_Lyr5->GetXaxis()->SetTitle("#Delta res_{v} (#mum)");
136  h_V_DeltaRes_SVD_Lyr5->GetYaxis()->SetTitle("counts");
137  h_V_DeltaRes_SVD_Lyr6 = new TH1F("h_V_DeltaRes_SVD_Lyr6",
138  "Layer 6: histrogram of residual difference #Delta res_{v} for overlapping SVD hits", 100, -1000, 1000);
139  h_V_DeltaRes_SVD_Lyr6->GetXaxis()->SetTitle("#Delta res_{v} (#mum)");
140  h_V_DeltaRes_SVD_Lyr6->GetYaxis()->SetTitle("counts");
141  h_SVDstrips_Mult = new TH1F("h_SVDstrips_Mult", "SVD strips multipicity for SVD clusters in overlapping sensors", 15, 0.5, 15.5);
142  h_SVDstrips_Mult->GetXaxis()->SetTitle("N. of SVD strips contributing to the cluster");
143  h_SVDstrips_Mult->GetYaxis()->SetTitle("counts");
144  //Define 2D histograms: difference of u-residuals vs phi of VXD overlaps for each layer (1 to 6)
145  h_DeltaResUPhi_Lyr1 = new TH2F("h_DeltaResUPhi_Lyr1", "Layer 1: #Delta res_{u} vs #phi", 200, -3.4, 3.4, 100, -200, 200);
146  h_DeltaResUPhi_Lyr1->GetXaxis()->SetTitle("#phi(rad)");
147  h_DeltaResUPhi_Lyr1->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
148  h_DeltaResUPhi_Lyr2 = new TH2F("h_DeltaResUPhi_Lyr2", "Layer 2: #Delta res_{u} vs #phi", 200, -3.4, 3.4, 100, -200, 200);
149  h_DeltaResUPhi_Lyr2->GetXaxis()->SetTitle("#phi(rad)");
150  h_DeltaResUPhi_Lyr2->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
151  h_DeltaResUPhi_Lyr3 = new TH2F("h_DeltaResUPhi_Lyr3", "Layer 3: #Delta res_{u} vs #phi", 200, -3.4, 3.4, 100, -1000, 1000);
152  h_DeltaResUPhi_Lyr3->GetXaxis()->SetTitle("#phi(rad)");
153  h_DeltaResUPhi_Lyr3->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
154  h_DeltaResUPhi_Lyr4 = new TH2F("h_DeltaResUPhi_Lyr4", "Layer 4: #Delta res_{u} vs #phi", 200, -3.4, 3.4, 100, -1000, 1000);
155  h_DeltaResUPhi_Lyr4->GetXaxis()->SetTitle("#phi(rad)");
156  h_DeltaResUPhi_Lyr4->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
157  h_DeltaResUPhi_Lyr5 = new TH2F("h_DeltaResUPhi_Lyr5", "Layer 5: #Delta res_{u} vs #phi", 200, -3.4, 3.4, 100, -1000, 1000);
158  h_DeltaResUPhi_Lyr5->GetXaxis()->SetTitle("#phi(rad)");
159  h_DeltaResUPhi_Lyr5->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
160  h_DeltaResUPhi_Lyr6 = new TH2F("h_DeltaResUPhi_Lyr6", "Layer 6: #Delta res_{u} vs #phi", 200, -3.4, 3.4, 100, -1000, 1000);
161  h_DeltaResUPhi_Lyr6->GetXaxis()->SetTitle("#phi(rad)");
162  h_DeltaResUPhi_Lyr6->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
163  //Define 2D histograms: difference of u-residuals vs z of VXD overlaps for each layer (1 to 6)
164  h_DeltaResUz_Lyr1 = new TH2F("h_DeltaResUz_Lyr1", "Layer 1: #Delta res_{u} vs z", 100, -4, 8, 100, -200, 200);
165  h_DeltaResUz_Lyr1->GetXaxis()->SetTitle("z (cm)");
166  h_DeltaResUz_Lyr1->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
167  h_DeltaResUz_Lyr2 = new TH2F("h_DeltaResUz_Lyr2", "Layer 2: #Delta res_{u} vs z", 100, -10, 15, 100, -200, 200);
168  h_DeltaResUz_Lyr2->GetXaxis()->SetTitle("z (cm)");
169  h_DeltaResUz_Lyr2->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
170  h_DeltaResUz_Lyr3 = new TH2F("h_DeltaResUz_Lyr3", "Layer 3: #Delta res_{u} vs z", 250, -15, 20, 100, -1000, 1000);
171  h_DeltaResUz_Lyr3->GetXaxis()->SetTitle("z (cm)");
172  h_DeltaResUz_Lyr3->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
173  h_DeltaResUz_Lyr4 = new TH2F("h_DeltaResUz_Lyr4", "Layer 4: #Delta res_{u} vs z", 250, -20, 25, 100, -1000, 1000);
174  h_DeltaResUz_Lyr4->GetXaxis()->SetTitle("z (cm)");
175  h_DeltaResUz_Lyr4->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
176  h_DeltaResUz_Lyr5 = new TH2F("h_DeltaResUz_Lyr5", "Layer 5: #Delta res_{u} vs z", 250, -25, 35, 100, -1000, 1000);
177  h_DeltaResUz_Lyr5->GetXaxis()->SetTitle("z (cm)");
178  h_DeltaResUz_Lyr5->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
179  h_DeltaResUz_Lyr6 = new TH2F("h_DeltaResUz_Lyr6", "Layer 6: #Delta res_{u} vs z", 250, -30, 45, 100, -1000, 1000);
180  h_DeltaResUz_Lyr6->GetXaxis()->SetTitle("z (cm)");
181  h_DeltaResUz_Lyr6->GetYaxis()->SetTitle("#Delta res_{u} (#mum)");
182  //Define 2D histograms: difference of u-residuals vs phi of VXD overlaps for each layer (1 to 6)
183  h_DeltaResVPhi_Lyr1 = new TH2F("h_DeltaResVPhi_Lyr1", "Layer 1: #Delta res_{v} vs #phi", 200, -3.4, 3.4, 100, -200, 200);
184  h_DeltaResVPhi_Lyr1->GetXaxis()->SetTitle("#phi(rad)");
185  h_DeltaResVPhi_Lyr1->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
186  h_DeltaResVPhi_Lyr2 = new TH2F("h_DeltaResVPhi_Lyr2", "Layer 2: #Delta res_{v} vs #phi", 200, -3.4, 3.4, 100, -200, 200);
187  h_DeltaResVPhi_Lyr2->GetXaxis()->SetTitle("#phi(rad)");
188  h_DeltaResVPhi_Lyr2->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
189  h_DeltaResVPhi_Lyr3 = new TH2F("h_DeltaResVPhi_Lyr3", "Layer 3: #Delta res_{v} vs #phi", 200, -3.4, 3.4, 100, -1000, 1000);
190  h_DeltaResVPhi_Lyr3->GetXaxis()->SetTitle("#phi(rad)");
191  h_DeltaResVPhi_Lyr3->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
192  h_DeltaResVPhi_Lyr4 = new TH2F("h_DeltaResVPhi_Lyr4", "Layer 4: #Delta res_{v} vs #phi", 200, -3.4, 3.4, 100, -1000, 1000);
193  h_DeltaResVPhi_Lyr4->GetXaxis()->SetTitle("#phi(rad)");
194  h_DeltaResVPhi_Lyr4->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
195  h_DeltaResVPhi_Lyr5 = new TH2F("h_DeltaResVPhi_Lyr5", "Layer 5: #Delta res_{v} vs #phi", 200, -3.4, 3.4, 100, -1000, 1000);
196  h_DeltaResVPhi_Lyr5->GetXaxis()->SetTitle("#phi(rad)");
197  h_DeltaResVPhi_Lyr5->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
198  h_DeltaResVPhi_Lyr6 = new TH2F("h_DeltaResVPhi_Lyr6", "Layer 6: #Delta res_{v} vs #phi", 200, -3.4, 3.4, 100, -1000, 1000);
199  h_DeltaResVPhi_Lyr6->GetXaxis()->SetTitle("#phi(rad)");
200  h_DeltaResVPhi_Lyr6->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
201  //Define 2D histograms: difference of v-residuals vs z of VXD overlaps for each layer (1 to 6)
202  h_DeltaResVz_Lyr1 = new TH2F("h_DeltaResVz_Lyr1", "Layer 1: #Delta res_{v} vs z", 100, -4, 8, 100, -200, 200);
203  h_DeltaResVz_Lyr1->GetXaxis()->SetTitle("z (cm)");
204  h_DeltaResVz_Lyr1->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
205  h_DeltaResVz_Lyr2 = new TH2F("h_DeltaResVz_Lyr2", "Layer 2: #Delta res_{v} vs z", 100, -10, 15, 100, -200, 200);
206  h_DeltaResVz_Lyr2->GetXaxis()->SetTitle("z (cm)");
207  h_DeltaResVz_Lyr2->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
208  h_DeltaResVz_Lyr3 = new TH2F("h_DeltaResVz_Lyr3", "Layer 3: #Delta res_{v} vs z", 250, -15, 20, 100, -1000, 1000);
209  h_DeltaResVz_Lyr3->GetXaxis()->SetTitle("z (cm)");
210  h_DeltaResVz_Lyr3->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
211  h_DeltaResVz_Lyr4 = new TH2F("h_DeltaResVz_Lyr4", "Layer 4: #Delta res_{v} vs z", 250, -20, 25, 100, -1000, 1000);
212  h_DeltaResVz_Lyr4->GetXaxis()->SetTitle("z (cm)");
213  h_DeltaResVz_Lyr4->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
214  h_DeltaResVz_Lyr5 = new TH2F("h_DeltaResVz_Lyr5", "Layer 5: #Delta res_{v} vs z", 250, -25, 35, 100, -1000, 1000);
215  h_DeltaResVz_Lyr5->GetXaxis()->SetTitle("z (cm)");
216  h_DeltaResVz_Lyr5->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
217  h_DeltaResVz_Lyr6 = new TH2F("h_DeltaResVz_Lyr6", "Layer 6: #Delta res_{v} vs z", 250, -30, 45, 100, -1000, 1000);
218  h_DeltaResVz_Lyr6->GetXaxis()->SetTitle("z (cm)");
219  h_DeltaResVz_Lyr6->GetYaxis()->SetTitle("#Delta res_{v} (#mum)");
220  //Restricting to SVD clusters sizes
221  for (int i = 1; i < 5; i++) {
222  //The name is the product of cluster sizes for 2 consecutive hits (maximum size considered is 2)
223  TString h_name_U = "h_U_Cl1Cl2_" + std::to_string(i);
224  TString h_name_V = "h_V_Cl1Cl2_" + std::to_string(i);
225  TString title_U = "#Delta res_{u}: SVDClusterSize_1 x SVDClusterSize_2 = " + std::to_string(i);
226  TString title_V = "#Delta res_{v}: SVDClusterSize_1 x SVDClusterSize_2 = " + std::to_string(i);
227  h_U_Cl1Cl2_DeltaRes[i] = new TH1F(h_name_U, title_U, 100, -1000, 1000);
228  h_U_Cl1Cl2_DeltaRes[i]->GetXaxis()->SetTitle("#Delta res_{u} (#mum)");
229  h_U_Cl1Cl2_DeltaRes[i]->GetYaxis()->SetTitle("counts");
230  h_V_Cl1Cl2_DeltaRes[i] = new TH1F(h_name_V, title_V, 100, -1000, 1000);
231  h_V_Cl1Cl2_DeltaRes[i]->GetXaxis()->SetTitle("#Delta res_{v} (#mum)");
232  h_V_Cl1Cl2_DeltaRes[i]->GetYaxis()->SetTitle("counts");
233  }
234 
235  //Special case of ExpertLevel option enabled
236  if (m_ExpertLevel) {
237  //Create directory to store PXD and SVD hitmaps for overlapping hits
238  TDirectory* HMDir = oldDir->mkdir("HitMaps_VXDOverlaps");
239  HMDir->cd();
240  //Define 2D sensor hit-maps for reconstructed hits
241  for (int i = 1; i <= 5; i++) {
242  for (int j = 1; j <= 16; j++) {
243  TString h_name = "h_6" + std::to_string(j) + std::to_string(i);
244  TString title = "Layer:Ladder:Sensor = 6:" + std::to_string(j) + ":" + std::to_string(i);
245  h_Lyr6[j][i] = new TH2F(h_name, title, 100, -2.88, 2.88, 100, -6.14, 6.14);
246  h_Lyr6[j][i]->GetXaxis()->SetTitle("u (cm)");
247  h_Lyr6[j][i]->GetYaxis()->SetTitle("v (cm)");
248  }
249  }
250  for (int i = 1; i <= 4; i++) {
251  for (int j = 1; j <= 12; j++) {
252  TString h_name = "h_5" + std::to_string(j) + std::to_string(i);
253  TString title = "Layer:Ladder:Sensor = 5:" + std::to_string(j) + ":" + std::to_string(i);
254  h_Lyr5[j][i] = new TH2F(h_name, title, 100, -2.88, 2.88, 100, -6.14, 6.14);
255  h_Lyr5[j][i]->GetXaxis()->SetTitle("u (cm)");
256  h_Lyr5[j][i]->GetYaxis()->SetTitle("v (cm)");
257  }
258  }
259  for (int i = 1; i <= 3; i++) {
260  for (int j = 1; j <= 10; j++) {
261  TString h_name = "h_4" + std::to_string(j) + std::to_string(i);
262  TString title = "Layer:Ladder:Sensor = 4:" + std::to_string(j) + ":" + std::to_string(i);
263  h_Lyr4[j][i] = new TH2F(h_name, title, 100, -2.88, 2.88, 100, -6.14, 6.14);
264  h_Lyr4[j][i]->GetXaxis()->SetTitle("u (cm)");
265  h_Lyr4[j][i]->GetYaxis()->SetTitle("v (cm)");
266  }
267  }
268  for (int i = 1; i <= 2; i++) {
269  for (int j = 1; j <= 7; j++) {
270  TString h_name = "h_3" + std::to_string(j) + std::to_string(i);
271  TString title = "Layer:Ladder:Sensor = 3:" + std::to_string(j) + ":" + std::to_string(i);
272  h_Lyr3[j][i] = new TH2F(h_name, title, 100, -1.92, 1.92, 100, -6.14, 6.14);
273  h_Lyr3[j][i]->GetXaxis()->SetTitle("u (cm)");
274  h_Lyr3[j][i]->GetYaxis()->SetTitle("v (cm)");
275  }
276  }
277  for (int i = 1; i <= 2; i++) {
278  for (int j = 1; j <= 12; j++) {
279  TString h_name = "h_2" + std::to_string(j) + std::to_string(i);
280  TString title = "Layer:Ladder:Sensor = 2:" + std::to_string(j) + ":" + std::to_string(i);
281  h_Lyr2[j][i] = new TH2F(h_name, title, 100, -0.625, 0.625, 100, -3.072, 3.072);
282  h_Lyr2[j][i]->GetXaxis()->SetTitle("u (cm)");
283  h_Lyr2[j][i]->GetYaxis()->SetTitle("v (cm)");
284  }
285  }
286  for (int i = 1; i <= 2; i++) {
287  for (int j = 1; j <= 8; j++) {
288  TString h_name = "h_1" + std::to_string(j) + std::to_string(i);
289  TString title = "Layer:Ladder:Sensor = 1:" + std::to_string(j) + ":" + std::to_string(i);
290  h_Lyr1[j][i] = new TH2F(h_name, title, 100, -0.625, 0.625, 100, -2.24, 2.24);
291  h_Lyr1[j][i]->GetXaxis()->SetTitle("u (cm)");
292  h_Lyr1[j][i]->GetYaxis()->SetTitle("v (cm)");
293  }
294  }
295  //Create directory to store PXD and SVD trees
296  TDirectory* TreeDir = oldDir->mkdir("Trees_VXDOverlaps");
297  TreeDir->cd();
298  //Tree for PXD
299  t_PXD = new TTree("t_PXD", "Tree for PXD overlaps");
300  t_PXD->Branch("deltaResU_PXD", &deltaResU_PXD, "deltaResU_PXD/F");
301  t_PXD->Branch("intResU_PXD", &intResU_PXD, "intResU_PXD/F");
302  t_PXD->Branch("intResV_PXD", &intResV_PXD, "intResV_PXD/F");
303  t_PXD->Branch("intU_PXD", &intU_PXD, "intU_PXD/F");
304  t_PXD->Branch("intV_PXD", &intV_PXD, "intV_PXD/F");
305  t_PXD->Branch("intPhi_PXD", &intPhi_PXD, "intPhi_PXD/F");
306  t_PXD->Branch("intZ_PXD", &intZ_PXD, "intZ_PXD/F");
307  t_PXD->Branch("intLayer_PXD", &intLayer_PXD, "intLayer_PXD/i");
308  t_PXD->Branch("intLadder_PXD", &intLadder_PXD, "intLadder_PXD/i");
309  t_PXD->Branch("intSensor_PXD", &intSensor_PXD, "intSensor_PXD/i");
310  t_PXD->Branch("extResU_PXD", &extResU_PXD, "extResU_PXD/F");
311  t_PXD->Branch("extResV_PXD", &extResV_PXD, "extResV_PXD/F");
312  t_PXD->Branch("extU_PXD", &extU_PXD, "extU_PXD/F");
313  t_PXD->Branch("extV_PXD", &extV_PXD, "extV_PXD/F");
314  t_PXD->Branch("extPhi_PXD", &extPhi_PXD, "extPhi_PXD/F");
315  t_PXD->Branch("extZ_PXD", &extZ_PXD, "extZ_PXD/F");
316  t_PXD->Branch("extLayer_PXD", &extLayer_PXD, "extLayer_PXD/i");
317  t_PXD->Branch("extLadder_PXD", &extLadder_PXD, "extLadder_PXD/i");
318  t_PXD->Branch("extSensor_PXD", &extSensor_PXD, "extSensor_PXD/i");
319  //Tree for SVD u overlapping clusters
320  t_SVD_U = new TTree("t_SVD_U", "Tree for SVD u-overlaps");
321  t_SVD_U->Branch("svdDeltaRes", &svdDeltaRes_U, "svdDeltaRes/F");
322  t_SVD_U->Branch("svdTrkPXDHits", &svdTrkPXDHits, "svdTrkPXDHits/i");
323  t_SVD_U->Branch("svdTrkSVDHits", &svdTrkSVDHits, "svdTrkSVDHits/i");
324  t_SVD_U->Branch("svdTrkCDCHits", &svdTrkCDCHits, "svdTrkCDCHits/i");
325  t_SVD_U->Branch("svdTrkd0", &svdTrkd0, "svdTrkd0/F");
326  t_SVD_U->Branch("svdTrkz0", &svdTrkz0, "svdTrkz0/F");
327  t_SVD_U->Branch("svdTrkpT", &svdTrkpT, "svdTrkpT/F");
328  t_SVD_U->Branch("svdTrkpCM", &svdTrkpCM, "svdTrkpCM/F");
329  // Internal ladder variables
330  t_SVD_U->Branch("svdClSNR_int", &svdClSNR_U_int, "svdClSNR_int/F");
331  t_SVD_U->Branch("svdClCharge_int", &svdClCharge_U_int, "svdClCharge_int/F");
332  t_SVD_U->Branch("svdStripCharge_int", &svdStripCharge_U_int);
333  t_SVD_U->Branch("svdStrip6Samples_int", &svdStrip6Samples_U_int);
334  t_SVD_U->Branch("svdClTime_int", &svdClTime_U_int, "svdClTime_int/F");
335  t_SVD_U->Branch("svdStripTime_int", &svdStripTime_U_int);
336  t_SVD_U->Branch("svdStripPosition_int", &svdStripPosition_U_int);
337  t_SVD_U->Branch("svdRes_int", &svdRes_U_int, "svdRes_int/F");
338  t_SVD_U->Branch("svdClIntStrPos_int", &svdClIntStrPos_U_int, "svdClIntStrPos_int/F");
339  t_SVD_U->Branch("svdClPos_int", &svdClPos_U_int, "svdClPos_int/F");
340  t_SVD_U->Branch("svdClPosErr_int", &svdClPosErr_U_int, "svdClPosErr_int/F");
341  t_SVD_U->Branch("svdTruePos_int", &svdTruePos_U_int, "svdTruePos_int/F");
342  t_SVD_U->Branch("svdClPhi_int", &svdClPhi_U_int, "svdClPhi_int/F");
343  t_SVD_U->Branch("svdClZ_int", &svdClZ_U_int, "svdClZ_int/F");
344  t_SVD_U->Branch("svdTrkTraversedLength_int", &svdTrkTraversedLength_U_int, "svdTrkTraversedLength_int/F");
345  t_SVD_U->Branch("svdTrkPos_int", &svdTrkPos_U_int, "svdTrkPos_int/F");
346  t_SVD_U->Branch("svdTrkPosOS_int", &svdTrkPosOS_U_int, "svdTrkPosOS_int/F");
347  t_SVD_U->Branch("svdTrkPosErr_int", &svdTrkPosErr_U_int, "svdTrkPosErr_int/F");
348  t_SVD_U->Branch("svdTrkPosErrOS_int", &svdTrkPosErrOS_U_int, "svdTrkPosErrOS_int/F");
349  t_SVD_U->Branch("svdTrkQoP_int", &svdTrkQoP_U_int, "svdTrkQoP_int/F");
350  t_SVD_U->Branch("svdTrkPrime_int", &svdTrkPrime_U_int, "svdTrkPrime_int/F");
351  t_SVD_U->Branch("svdTrkPrimeOS_int", &svdTrkPrimeOS_U_int, "svdTrkPrimeOS_int/F");
352  t_SVD_U->Branch("svdTrkPosUnbiased_int", &svdTrkPosUnbiased_U_int, "svdTrkPosUnbiased_int/F");
353  t_SVD_U->Branch("svdTrkPosErrUnbiased_int", &svdTrkPosErrUnbiased_U_int, "svdTrkPosErrUnbiased_int/F");
354  t_SVD_U->Branch("svdTrkQoPUnbiased_int", &svdTrkQoPUnbiased_U_int, "svdTrkQoPUnbiased_int/F");
355  t_SVD_U->Branch("svdTrkPrimeUnbiased_int", &svdTrkPrimeUnbiased_U_int, "svdTrkPrimeUnbiased_int/F");
356  t_SVD_U->Branch("svdLayer_int", &svdLayer_U_int, "svdLayer_int/i");
357  t_SVD_U->Branch("svdLadder_int", &svdLadder_U_int, "svdLadder_int/i");
358  t_SVD_U->Branch("svdSensor_int", &svdSensor_U_int, "svdSensor_int/i");
359  t_SVD_U->Branch("svdSize_int", &svdSize_U_int, "svdSize_int/i");
360  // External ladder variables
361  t_SVD_U->Branch("svdClSNR_ext", &svdClSNR_U_ext, "svdClSNR_ext/F");
362  t_SVD_U->Branch("svdClCharge_ext", &svdClCharge_U_ext, "svdClCharge_ext/F");
363  t_SVD_U->Branch("svdStripCharge_ext", &svdStripCharge_U_ext);
364  t_SVD_U->Branch("svdStrip6Samples_ext", &svdStrip6Samples_U_ext);
365  t_SVD_U->Branch("svdClTime_ext", &svdClTime_U_ext, "svdClTime_ext/F");
366  t_SVD_U->Branch("svdStripTime_ext", &svdStripTime_U_ext);
367  t_SVD_U->Branch("svdStripPosition_ext", &svdStripPosition_U_ext);
368  t_SVD_U->Branch("svdRes_ext", &svdRes_U_ext, "svdRes_ext/F");
369  t_SVD_U->Branch("svdClIntStrPos_ext", &svdClIntStrPos_U_ext, "svdClIntStrPos_ext/F");
370  t_SVD_U->Branch("svdClPos_ext", &svdClPos_U_ext, "svdClPos_ext/F");
371  t_SVD_U->Branch("svdClPosErr_ext", &svdClPosErr_U_ext, "svdClPosErr_ext/F");
372  t_SVD_U->Branch("svdTruePos_ext", &svdTruePos_U_ext, "svdTruePos_ext/F");
373  t_SVD_U->Branch("svdClPhi_ext", &svdClPhi_U_ext, "svdClPhi_ext/F");
374  t_SVD_U->Branch("svdClZ_ext", &svdClZ_U_ext, "svdClZ_ext/F");
375  t_SVD_U->Branch("svdTrkTraversedLength_ext", &svdTrkTraversedLength_U_ext, "svdTrkTraversedLength_ext/F");
376  t_SVD_U->Branch("svdTrkPos_ext", &svdTrkPos_U_ext, "svdTrkPos_ext/F");
377  t_SVD_U->Branch("svdTrkPosOS_ext", &svdTrkPosOS_U_ext, "svdTrkPosOS_ext/F");
378  t_SVD_U->Branch("svdTrkPosErr_ext", &svdTrkPosErr_U_ext, "svdTrkPosErr_ext/F");
379  t_SVD_U->Branch("svdTrkPosErrOS_ext", &svdTrkPosErrOS_U_ext, "svdTrkPosErrOS_ext/F");
380  t_SVD_U->Branch("svdTrkQoP_ext", &svdTrkQoP_U_ext, "svdTrkQoP_ext/F");
381  t_SVD_U->Branch("svdTrkPrime_ext", &svdTrkPrime_U_ext, "svdTrkPrime_ext/F");
382  t_SVD_U->Branch("svdTrkPrimeOS_ext", &svdTrkPrimeOS_U_ext, "svdTrkPrimeOS_ext/F");
383  t_SVD_U->Branch("svdTrkPosUnbiased_ext", &svdTrkPosUnbiased_U_ext, "svdTrkPosUnbiased_ext/F");
384  t_SVD_U->Branch("svdTrkPosErrUnbiased_ext", &svdTrkPosErrUnbiased_U_ext, "svdTrkPosErrUnbiased_ext/F");
385  t_SVD_U->Branch("svdTrkQoPUnbiased_ext", &svdTrkQoPUnbiased_U_ext, "svdTrkQoPUnbiased_ext/F");
386  t_SVD_U->Branch("svdTrkPrimeUnbiased_ext", &svdTrkPrimeUnbiased_U_ext, "svdTrkPrimeUnbiased_ext/F");
387  t_SVD_U->Branch("svdLayer_ext", &svdLayer_U_ext, "svdLayer_ext/i");
388  t_SVD_U->Branch("svdLadder_ext", &svdLadder_U_ext, "svdLadder_ext/i");
389  t_SVD_U->Branch("svdSensor_ext", &svdSensor_U_ext, "svdSensor_ext/i");
390  t_SVD_U->Branch("svdSize_ext", &svdSize_U_ext, "svdSize_ext/i");
391  //Tree for SVD v overlapping clusters
392  t_SVD_V = new TTree("t_SVD_V", "Tree for SVD v-overlaps");
393  t_SVD_V->Branch("svdDeltaRes", &svdDeltaRes_V, "svdDeltaRes/F");
394  t_SVD_V->Branch("svdTrkPXDHits", &svdTrkPXDHits, "svdTrkPXDHits/i");
395  t_SVD_V->Branch("svdTrkSVDHits", &svdTrkSVDHits, "svdTrkSVDHits/i");
396  t_SVD_V->Branch("svdTrkCDCHits", &svdTrkCDCHits, "svdTrkCDCHits/i");
397  t_SVD_V->Branch("svdTrkd0", &svdTrkd0, "svdTrkd0/F");
398  t_SVD_V->Branch("svdTrkz0", &svdTrkz0, "svdTrkz0/F");
399  t_SVD_V->Branch("svdTrkpT", &svdTrkpT, "svdTrkpT/F");
400  t_SVD_V->Branch("svdTrkpCM", &svdTrkpCM, "svdTrkpCM/F");
401  // Internal ladder variables
402  t_SVD_V->Branch("svdClSNR_int", &svdClSNR_V_int, "svdClSNR_int/F");
403  t_SVD_V->Branch("svdClCharge_int", &svdClCharge_V_int, "svdClCharge_int/F");
404  t_SVD_V->Branch("svdStripCharge_int", &svdStripCharge_V_int);
405  t_SVD_V->Branch("svdStrip6Samples_int", &svdStrip6Samples_V_int);
406  t_SVD_V->Branch("svdClTime_int", &svdClTime_V_int, "svdClTime_int/F");
407  t_SVD_V->Branch("svdStripTime_int", &svdStripTime_V_int);
408  t_SVD_V->Branch("svdStripPosition_int", &svdStripPosition_V_int);
409  t_SVD_V->Branch("svdRes_int", &svdRes_V_int, "svdRes_int/F");
410  t_SVD_V->Branch("svdClIntStrPos_int", &svdClIntStrPos_V_int, "svdClIntStrPos_int/F");
411  t_SVD_V->Branch("svdClPos_int", &svdClPos_V_int, "svdClPos_int/F");
412  t_SVD_V->Branch("svdClPosErr_int", &svdClPosErr_V_int, "svdClPosErr_int/F");
413  t_SVD_V->Branch("svdTruePos_int", &svdTruePos_V_int, "svdTruePos_int/F");
414  t_SVD_V->Branch("svdClPhi_int", &svdClPhi_V_int, "svdClPhi_int/F");
415  t_SVD_V->Branch("svdClZ_int", &svdClZ_V_int, "svdClZ_int/F");
416  t_SVD_V->Branch("svdTrkTraversedLength_int", &svdTrkTraversedLength_V_int, "svdTrkTraversedLength_int/F");
417  t_SVD_V->Branch("svdTrkPos_int", &svdTrkPos_V_int, "svdTrkPos_int/F");
418  t_SVD_V->Branch("svdTrkPosOS_int", &svdTrkPosOS_V_int, "svdTrkPosOS_int/F");
419  t_SVD_V->Branch("svdTrkPosErr_int", &svdTrkPosErr_V_int, "svdTrkPosErr_int/F");
420  t_SVD_V->Branch("svdTrkPosErrOS_int", &svdTrkPosErrOS_V_int, "svdTrkPosErrOS_int/F");
421  t_SVD_V->Branch("svdTrkQoP_int", &svdTrkQoP_V_int, "svdTrkQoP_int/F");
422  t_SVD_V->Branch("svdTrkPrime_int", &svdTrkPrime_V_int, "svdTrkPrime_int/F");
423  t_SVD_V->Branch("svdTrkPrimeOS_int", &svdTrkPrimeOS_V_int, "svdTrkPrimeOS_int/F");
424  t_SVD_V->Branch("svdTrkPosUnbiased_int", &svdTrkPosUnbiased_V_int, "svdTrkPosUnbiased_int/F");
425  t_SVD_V->Branch("svdTrkPosErrUnbiased_int", &svdTrkPosErrUnbiased_V_int, "svdTrkPosErrUnbiased_int/F");
426  t_SVD_V->Branch("svdTrkQoPUnbiased_int", &svdTrkQoPUnbiased_V_int, "svdTrkQoPUnbiased_int/F");
427  t_SVD_V->Branch("svdTrkPrimeUnbiased_int", &svdTrkPrimeUnbiased_V_int, "svdTrkPrimeUnbiased_int/F");
428  t_SVD_V->Branch("svdLayer_int", &svdLayer_V_int, "svdLayer_int/i");
429  t_SVD_V->Branch("svdLadder_int", &svdLadder_V_int, "svdLadder_int/i");
430  t_SVD_V->Branch("svdSensor_int", &svdSensor_V_int, "svdSensor_int/i");
431  t_SVD_V->Branch("svdSize_int", &svdSize_V_int, "svdSize_int/i");
432  // External ladder variables
433  t_SVD_V->Branch("svdClSNR_ext", &svdClSNR_V_ext, "svdClSNR_ext/F");
434  t_SVD_V->Branch("svdClCharge_ext", &svdClCharge_V_ext, "svdClCharge_ext/F");
435  t_SVD_V->Branch("svdStripCharge_ext", &svdStripCharge_V_ext);
436  t_SVD_V->Branch("svdStrip6Samples_ext", &svdStrip6Samples_V_ext);
437  t_SVD_V->Branch("svdClTime_ext", &svdClTime_V_ext, "svdClTime_ext/F");
438  t_SVD_V->Branch("svdStripTime_ext", &svdStripTime_V_ext);
439  t_SVD_V->Branch("svdStripPosition_ext", &svdStripPosition_V_ext);
440  t_SVD_V->Branch("svdRes_ext", &svdRes_V_ext, "svdRes_ext/F");
441  t_SVD_V->Branch("svdClIntStrPos_ext", &svdClIntStrPos_V_ext, "svdClIntStrPos_ext/F");
442  t_SVD_V->Branch("svdClPos_ext", &svdClPos_V_ext, "svdClPos_ext/F");
443  t_SVD_V->Branch("svdClPosErr_ext", &svdClPosErr_V_ext, "svdClPosErr_ext/F");
444  t_SVD_V->Branch("svdTruePos_ext", &svdTruePos_V_ext, "svdTruePos_ext/F");
445  t_SVD_V->Branch("svdClPhi_ext", &svdClPhi_V_ext, "svdClPhi_ext/F");
446  t_SVD_V->Branch("svdClZ_ext", &svdClZ_V_ext, "svdClZ_ext/F");
447  t_SVD_V->Branch("svdTrkTraversedLength_ext", &svdTrkTraversedLength_V_ext, "svdTrkTraversedLength_ext/F");
448  t_SVD_V->Branch("svdTrkPos_ext", &svdTrkPos_V_ext, "svdTrkPos_ext/F");
449  t_SVD_V->Branch("svdTrkPosOS_ext", &svdTrkPosOS_V_ext, "svdTrkPosOS_ext/F");
450  t_SVD_V->Branch("svdTrkPosErr_ext", &svdTrkPosErr_V_ext, "svdTrkPosErr_ext/F");
451  t_SVD_V->Branch("svdTrkPosErrOS_ext", &svdTrkPosErrOS_V_ext, "svdTrkPosErrOS_ext/F");
452  t_SVD_V->Branch("svdTrkQoP_ext", &svdTrkQoP_V_ext, "svdTrkQoP_ext/F");
453  t_SVD_V->Branch("svdTrkPrime_ext", &svdTrkPrime_V_ext, "svdTrkPrime_ext/F");
454  t_SVD_V->Branch("svdTrkPrimeOS_ext", &svdTrkPrimeOS_V_ext, "svdTrkPrimeOS_ext/F");
455  t_SVD_V->Branch("svdTrkPosUnbiased_ext", &svdTrkPosUnbiased_V_ext, "svdTrkPosUnbiased_ext/F");
456  t_SVD_V->Branch("svdTrkPosErrUnbiased_ext", &svdTrkPosErrUnbiased_V_ext, "svdTrkPosErrUnbiased_ext/F");
457  t_SVD_V->Branch("svdTrkQoPUnbiased_ext", &svdTrkQoPUnbiased_V_ext, "svdTrkQoPUnbiased_ext/F");
458  t_SVD_V->Branch("svdTrkPrimeUnbiased_ext", &svdTrkPrimeUnbiased_V_ext, "svdTrkPrimeUnbiased_ext/F");
459  t_SVD_V->Branch("svdLayer_ext", &svdLayer_V_ext, "svdLayer_ext/i");
460  t_SVD_V->Branch("svdLadder_ext", &svdLadder_V_ext, "svdLadder_ext/i");
461  t_SVD_V->Branch("svdSensor_ext", &svdSensor_V_ext, "svdSensor_ext/i");
462  t_SVD_V->Branch("svdSize_ext", &svdSize_V_ext, "svdSize_ext/i");
463  }
464  //Go back to the default output directory
465  oldDir->cd();
466 }
float svdTrkQoP_V_int
V internal track q/p.
float svdTrkPosUnbiased_U_int
U internal unbiased track position.
TH2F * h_DeltaResVPhi_Lyr6
2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 6
float svdTrkQoP_U_int
U internal track q/p.
TH1F * h_V_DeltaRes_SVD
Histogram of SVD v-coordinate differences of residuals.
float svdRes_U_int
U internal residual computed by genfit.
float svdTrkPosErr_U_int
U internal track position error.
std::vector< float > svdStrip6Samples_V_ext
V external 6 samples of the strips of the cluster.
std::vector< float > svdStripPosition_U_ext
U external position of the strips of the cluster.
TH2F * h_DeltaResVz_Lyr1
2D histogram of DeltaRes_v vs z of VXD overlaps for layer 1
float svdTrkQoPUnbiased_V_ext
V external unbiased track q/p.
TH2F * h_DeltaResUz_Lyr3
2D histogram of DeltaRes_u vs z of VXD overlaps for layer 3
float svdTrkPos_U_ext
U external track position.
float svdTruePos_V_int
V internal true position.
float svdClPhi_V_ext
V external cluster global phi.
float extResV_PXD
tree t_PXD branch extResV_PXD/F
float svdTrkPosUnbiased_V_ext
V external unbiased track position.
TH1F * h_U_DeltaRes_SVD_Lyr4
Histogram of SVD layer-4 u-coordinate differences of residuals.
std::vector< float > svdStripCharge_U_ext
U external charge of the strips of the cluster.
unsigned int svdLayer_U_ext
U external layer.
float svdTrkPrimeUnbiased_U_int
U internal unbiased tan of incident angle projected on u,w.
float extResU_PXD
tree t_PXD branch extResU_PXD/F
TH2F * h_DeltaResUPhi_Lyr2
2D histogram of DeltaRes_u vs phi of VXD overlaps for layer 2
TH2F * h_DeltaResUPhi_Lyr5
2D histogram of DeltaRes_u vs phi of VXD overlaps for layer 5
TH2F * h_DeltaResUPhi_Lyr3
2D histogram of DeltaRes_u vs phi of VXD overlaps for layer 3
float svdTrkPos_V_int
V internal track position.
TH1F * h_U_DeltaRes_PXD_Lyr1
Histogram of PXD layer-1 u-coordinate differences of residuals.
float svdTrkTraversedLength_V_int
V internal traversed length of the track in the sensor.
TH2F * h_DeltaResUz_Lyr2
2D histogram of DeltaRes_u vs z of VXD overlaps for layer 2
float svdTrkPosOS_V_ext
V external track position on the other side.
float svdClTime_V_ext
V external cluster time.
float svdRes_V_ext
V external residual computed by genfit.
float svdTrkPosOS_U_ext
U external track position on the other side.
float svdTrkPosErrUnbiased_V_int
V internal unbiased track position error.
float svdTrkPrimeOS_U_int
U internal tan of incident angle projected on v/u,w (other side)
std::vector< float > svdStripTime_V_ext
V external time of the strips of the cluster.
TH2F * h_DeltaResUPhi_Lyr1
2D Histogram of DeltaRes_u vs phi of VXD overlaps for layer 1
unsigned int svdLadder_U_ext
U external ladder.
TH2F * h_DeltaResVz_Lyr4
2D histogram of DeltaRes_v vs z of VXD overlaps for layer 4
int svdTrkPXDHits
number of PXD hits on the track
TH1F * h_U_DeltaRes_PXD
Histogram of PXD u-coordinate differences of residuals.
unsigned int extLayer_PXD
tree t_PXD branch extLayer_PXD/i
TH2F * h_DeltaResVPhi_Lyr5
2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 5
float svdTrkQoP_V_ext
V external track q/p.
float svdClIntStrPos_V_ext
V external cluster interstrip position.
std::vector< float > svdStrip6Samples_U_ext
U external 6 samples of the strips of the cluster.
float svdClSNR_V_int
V internal cluster SNR.
float svdTrkPrimeUnbiased_V_ext
V external unbiased tan of incident angle projected on u,w.
unsigned int svdLadder_V_ext
V external ladder.
TH2F * h_Lyr1[9][3]
Sensor hit-map for layer 1 from reconstructed u and v coordinates.
float svdClSNR_U_ext
U external cluster SNR.
unsigned int svdLadder_U_int
U internal ladder.
float svdClSNR_V_ext
V external cluster SNR.
unsigned int svdLayer_V_ext
V external layer.
float svdTrkQoPUnbiased_U_int
U internal unbiased track q/p.
float svdTrkPrimeUnbiased_U_ext
U external unbiased tan of incident angle projected on u,w.
TH2F * h_DeltaResVPhi_Lyr3
2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 3
TH2F * h_DeltaResVPhi_Lyr4
2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 4
TH1F * h_V_DeltaRes_PXD_Lyr1
Histogram of PXD layer-1 v-coordinate differences of residuals.
float extU_PXD
tree t_PXD branch extU_PXD/F
float svdTrkTraversedLength_U_ext
U external traversed length of the track in the sensor.
float extPhi_PXD
tree t_PXD branch extPhi/PXD/F
float svdClZ_U_int
U internal cluster global Z.
float svdTruePos_U_int
U internal true position.
TH2F * h_DeltaResVz_Lyr3
2D histogram of DeltaRes_v vs z of VXD overlaps for layer 3
float svdRes_U_ext
U external residual computed by genfit.
unsigned int extLadder_PXD
tree t_PXD branch extLadder_PXD/i
unsigned int svdSensor_V_int
V internal sensor.
float svdTruePos_V_ext
V external true position.
float svdClPos_U_int
U internal cluster position.
TH1F * h_U_DeltaRes_SVD_Lyr6
Histogram of SVD layer-6 u-coordinate differences of residuals.
TTree * t_SVD_V
Tree containing global information on SVD v-coordinate overlaps.
TH1F * h_V_DeltaRes_PXD
Histogram of PXD v-coordinate differences of residuals.
unsigned int intLayer_PXD
tree t_PXD branch intLayer_PXD/i
float svdClPosErr_U_ext
U external cluster position error.
TTree * t_SVD_U
Tree containing global information on SVD u-coordinate overlaps.
std::vector< float > svdStripCharge_V_int
V internal charge of the strips of the cluster.
float svdClCharge_U_int
U internal cluster charge.
float svdClCharge_U_ext
U external cluster charge.
std::vector< float > svdStrip6Samples_V_int
V internal 6 samples of the strips of the cluster.
TH2F * h_DeltaResUPhi_Lyr6
2D histogram of DeltaRes_u vs phi of VXD overlaps for layer 6
float svdClTime_U_int
U internal cluster time.
TH2F * h_DeltaResUz_Lyr5
2D histogram of DeltaRes_u vs z of VXD overlaps for layer 5
float svdTrkPosUnbiased_V_int
V internal unbiased track position.
float svdClIntStrPos_U_int
U internal cluster interstrip position.
float svdTrkQoPUnbiased_V_int
V internal unbiased track q/p.
float svdClTime_U_ext
U external cluster time.
std::vector< float > svdStripCharge_U_int
U internal charge of the strips of the cluster.
unsigned int svdLadder_V_int
V internal ladder.
unsigned int svdSize_V_int
V internal size.
TH2F * h_DeltaResVz_Lyr5
2D histogram of DeltaRes_v vs z of VXD overlaps for layer 5
unsigned int svdLayer_V_int
V internal layer.
float svdTrkPosErr_V_ext
V external track position error.
float svdTrkPrime_U_ext
U external tan of incident angle projected on u,w.
float svdDeltaRes_V
V difference between external and internal residual.
TH1F * h_U_Cl1Cl2_DeltaRes[5]
Histogram of SVD differences of u-coordinate residuals grouped by clusters sizes.
float svdTrkPosErrUnbiased_U_ext
U external unbiased track position error.
TH2F * h_DeltaResVz_Lyr6
2D histogram of DeltaRes_v vs z of VXD overlaps for layer 6
float extV_PXD
tree t_PXD branch extV_PXD/F
float svdTrkPosOS_U_int
U internal track position on the other side.
float svdTrkQoPUnbiased_U_ext
U external unbiased track q/p.
TH2F * h_Lyr4[11][4]
Sensor hit-map for layer 4 from reconstructed u and v coordinates.
TH1F * h_V_DeltaRes_SVD_Lyr6
Histogram of SVD layer-6 v-coordinate differences of residuals.
unsigned int svdSensor_V_ext
V external sensor.
int svdTrkCDCHits
number of PXD hits on the track
float svdClPosErr_V_int
V internal cluster position error.
TH1F * h_V_DeltaRes_SVD_Lyr3
Histogram of SVD layer-3 v-coordinate differences of residuals.
TH1F * h_V_Cl1Cl2_DeltaRes[5]
Histogram of SVD differences of v-coordinate residuals grouped by clusters sizes.
float svdTrkPosErr_U_ext
U external track position error.
float svdTrkPrime_U_int
U internal tan of incident angle projected on u,w.
float svdRes_V_int
V internal residual computed by genfit.
float svdTrkPrimeOS_V_ext
V external tan of incident angle projected on v/u,w (other side)
TH1F * h_V_DeltaRes_PXD_Lyr2
Histogram of PXD layer-2 v-coordinate differences of residuals.
TH1F * h_U_DeltaRes_SVD_Lyr5
Histogram of SVD layer-5 u-coordinate differences of residuals.
float svdTrkPosErr_V_int
V internal track position error.
TH1F * h_V_DeltaRes_SVD_Lyr5
Histogram of SVD layer-5 v-coordinate differences of residuals.
float svdClPosErr_V_ext
V external cluster position error.
float deltaResU_PXD
tree t_PXD branch deltaResU/F
TH2F * h_Lyr2[13][3]
Sensor hit-map for layer 2 from reconstructed u and v coordinates.
float svdDeltaRes_U
U difference between external and internal residual.
float intU_PXD
tree t_PXD branch intU_PXD/F
unsigned int extSensor_PXD
tree t_PXD branch extSensor_PXD/i
std::vector< float > svdStripPosition_V_ext
V external position of the strips of the cluster.
float svdClIntStrPos_V_int
V internal cluster interstrip position.
float svdTrkPosErrUnbiased_U_int
U internal unbiased track position error.
TH1F * h_V_DeltaRes_SVD_Lyr4
Histogram of SVD layer-4 v-coordinate differences of residuals.
float svdTrkPosErrUnbiased_V_ext
V external unbiased track position error.
std::vector< float > svdStripCharge_V_ext
V external charge of the strips of the cluster.
std::vector< float > svdStripTime_U_ext
U external time of the strips of the cluster.
TH2F * h_DeltaResUPhi_Lyr4
2D histogram of DeltaRes_u vs phi of VXD overlaps for layer 4
float intZ_PXD
tree t_PXD branch intZ_PXD/F
float svdClPos_V_ext
V external cluster position.
float svdTrkPosErrOS_V_int
V internal track position error on the other side.
std::vector< float > svdStripPosition_U_int
U internal position of the strips of the cluster.
bool m_ExpertLevel
Expert level switch.
unsigned int svdSensor_U_int
U internal sensor.
std::vector< float > svdStrip6Samples_U_int
U internal 6 samples of the strips of the cluster.
float svdClPosErr_U_int
U internal cluster position error.
float svdClIntStrPos_U_ext
U external cluster interstrip position.
float svdClTime_V_int
V internal cluster time.
TH2F * h_DeltaResVPhi_Lyr2
2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 2
TH1F * h_U_DeltaRes
Histogram of VXD ( PXD + SVD ) differences of u-coordinate residuals.
float svdTrkPrime_V_ext
V external tan of incident angle projected on u,w.
float svdTrkTraversedLength_U_int
U internal traversed length of the track in the sensor.
TH2F * h_DeltaResUz_Lyr4
2D histogram of DeltaRes_u vs z of VXD overlaps for layer 4
TH2F * h_Lyr5[13][5]
Sensor hit-map for layer 5 from reconstructed u and v coordinates.
TH1F * h_SVDstrips_Mult
Histogram of SVD strips multiplicity.
TH2F * h_DeltaResUz_Lyr6
2D histogram of DeltaRes_u vs z of VXD overlaps for layer 6
float extZ_PXD
tree t_PXD branch extZ_PXD/F
TH2F * h_Lyr3[8][3]
Sensor hit-map for layer 3 from reconstructed u and v coordinates.
float svdClZ_V_int
V internal cluster global Z.
float svdTrkPrime_V_int
V internal tan of incident angle projected on u,w.
float svdTrkTraversedLength_V_ext
V external traversed length of the track in the sensor.
float svdClCharge_V_ext
V external cluster charge.
unsigned int svdSize_U_int
U internal size.
TH2F * h_DeltaResVPhi_Lyr1
2D histogram of DeltaRes_v vs phi of VXD overlaps for layer 1
std::vector< float > svdStripTime_V_int
V internal time of the strips of the cluster.
float svdClPhi_U_int
U internal cluster global phi.
TH2F * h_DeltaResUz_Lyr1
2D histogram of DeltaRes_u vs z of VXD overlaps for layer 1
float svdClSNR_U_int
U internal cluster SNR.
unsigned int svdLayer_U_int
U internal layer.
float svdClCharge_V_int
V internal cluster charge.
unsigned int svdSensor_U_ext
U external sensor.
float intV_PXD
tree t_PXD branch intV_PXD/F
TH2F * h_Lyr6[17][6]
Sensor hit-map for layer 6 from reconstructed u and v coordinates.
std::vector< float > svdStripPosition_V_int
V internal position of the strips of the cluster.
float svdTrkPrimeOS_U_ext
U external tan of incident angle projected on v/u,w (other side)
unsigned int intSensor_PXD
tree t_PXD branch intSensor_PXD/i
std::vector< float > svdStripTime_U_int
U internal time of the strips of the cluster.
float svdTrkPrimeUnbiased_V_int
V internal unbiased tan of incident angle projected on u,w.
TH2F * h_DeltaResVz_Lyr2
2D histogram of DeltaRes_v vs z of VXD overlaps for layer 2
unsigned int intLadder_PXD
tree t_PXD branch intLadder_PXD/i
float svdClPos_V_int
V internal cluster position.
float svdTrkPos_V_ext
V external track position.
float svdClZ_U_ext
U external cluster global Z.
int svdTrkSVDHits
number of PXD hits on the track
float intPhi_PXD
tree t_PXD branch intPhi_PXD/F
float svdTrkPrimeOS_V_int
V internal tan of incident angle projected on v/u,w (other side)
float svdTrkPosErrOS_U_ext
U external track position error on the other side.
TTree * t_PXD
Tree containing global information on PXD overlaps.
float svdTrkPosErrOS_U_int
U internal track position error on the other side.
float svdTrkQoP_U_ext
U external track q/p.
float svdClZ_V_ext
V external cluster global Z.
float svdClPhi_V_int
V internal cluster global phi.
TH1F * h_V_DeltaRes
Histogram of VXD ( PXD + SVD ) differences of v-coordinate residuals.
float svdTrkPosOS_V_int
V internal track position on the other side.
unsigned int svdSize_V_ext
V external size.
float intResV_PXD
tree t_PXD branch intResV/PXD/F
TH1F * h_U_DeltaRes_SVD_Lyr3
Histogram of SVD layer-3 u-coordinate differences of residuals.
TH1F * h_U_DeltaRes_PXD_Lyr2
Histogram of PXD layer-2 u-coordinate differences of residuals.
float svdClPhi_U_ext
U external cluster global phi.
TH1F * h_U_DeltaRes_SVD
Histogram of SVD u-coordinate differences of residuals.
float svdClPos_U_ext
U external cluster position.
float svdTruePos_U_ext
U external true position.
float svdTrkPosErrOS_V_ext
V external track position error on the other side.
float svdTrkPosUnbiased_U_ext
U external unbiased track position.
float svdTrkPos_U_int
U internal track position.
unsigned int svdSize_U_ext
U external size.
float intResU_PXD
tree t_PXD branch intResU_PXD/F

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

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

Member Data Documentation

◆ svdStrip6Samples_U_ext

std::vector<float> svdStrip6Samples_U_ext
private

U external 6 samples of the strips of the cluster.

For the nth strip of a given cluster the samples are the 6 elements of indices 6*n to (6*n)+5

Definition at line 249 of file OverlapResidualsModule.h.

◆ svdStrip6Samples_U_int

std::vector<float> svdStrip6Samples_U_int
private

U internal 6 samples of the strips of the cluster.

For the nth strip of a given cluster the samples are the 6 elements of indices 6*n to (6*n)+5

Definition at line 245 of file OverlapResidualsModule.h.

◆ svdStrip6Samples_V_ext

std::vector<float> svdStrip6Samples_V_ext
private

V external 6 samples of the strips of the cluster.

For the nth strip of a given cluster the samples are the 6 elements of indices 6*n to (6*n)+5

Definition at line 311 of file OverlapResidualsModule.h.

◆ svdStrip6Samples_V_int

std::vector<float> svdStrip6Samples_V_int
private

V internal 6 samples of the strips of the cluster.

For the nth strip of a given cluster the samples are the 6 elements of indices 6*n to (6*n)+5

Definition at line 307 of file OverlapResidualsModule.h.


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