Commit 94915411 authored by Simon Spannagel's avatar Simon Spannagel
Browse files

Retire AnalysisCLICpix

parent 328a9028
Pipeline #1129397 passed with stages
in 19 minutes and 23 seconds
This diff is collapsed.
#ifndef AnalysisCLICpix_H
#define AnalysisCLICpix_H 1
#include <TCanvas.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TProfile2D.h>
#include <iostream>
#include <sstream>
#include "core/module/Module.hpp"
namespace corryvreckan {
/** @ingroup Modules
*/
class AnalysisCLICpix : public Module {
public:
// Constructors and destructors
AnalysisCLICpix(Configuration config, std::shared_ptr<Detector> detector);
// Functions
void initialise();
StatusCode run(std::shared_ptr<Clipboard> clipboard);
void finalise();
private:
std::shared_ptr<Detector> m_detector;
bool checkMasked(double, double);
void fillClusterHistos(std::shared_ptr<ClusterVector>);
bool checkProximity(Track*, std::shared_ptr<TrackVector>);
void fillResponseHistos(double, double, Cluster*);
// Cluster/pixel histograms
TH2F* hHitPixels;
TH1F* hColumnHits;
TH1F* hRowHits;
TH1F* hClusterSizeAll;
TH1F* hClusterChargeAll;
TH1F* hClustersPerEvent;
TH1F* hClustersVersusEventNo;
TH1F* hClusterWidthRow;
TH1F* hClusterWidthCol;
// Track histograms
TH1F* hGlobalTrackDifferenceX;
TH1F* hGlobalTrackDifferenceY;
TH1F* hGlobalResidualsX;
TH1F* hGlobalResidualsY;
TH1F* hAbsoluteResiduals;
TH2F* hGlobalResidualsXversusX;
TH2F* hGlobalResidualsXversusY;
TH2F* hGlobalResidualsYversusY;
TH2F* hGlobalResidualsYversusX;
TH2F* hGlobalResidualsXversusColWidth;
TH2F* hGlobalResidualsXversusRowWidth;
TH2F* hGlobalResidualsYversusColWidth;
TH2F* hGlobalResidualsYversusRowWidth;
TH1F* hTrackInterceptRow;
TH1F* hTrackInterceptCol;
TH2F* hAbsoluteResidualMap;
TH2F* hXresidualVersusYresidual;
TH1F* hAssociatedClustersPerEvent;
TH1F* hAssociatedClustersVersusEventNo;
TH1F* hAssociatedClustersVersusTriggerNo;
TH1F* hAssociatedClusterRow;
TH1F* hAssociatedClusterColumn;
TH1F* hFrameEfficiency;
TH1F* hFrameTracks;
TH1F* hFrameTracksAssociated;
TH1F* hClusterSizeAssociated;
TH1F* hClusterWidthRowAssociated;
TH1F* hClusterWidthColAssociated;
TH1F* hClusterChargeAssociated;
TH1F* hClusterChargeAssociated1pix;
TH1F* hClusterChargeAssociated2pix;
TH1F* hClusterChargeAssociated3pix;
TH1F* hClusterChargeAssociated4pix;
TH1F* hPixelResponseX;
TH1F* hPixelResponseGlobalX;
TH1F* hPixelResponseXOddCol;
TH1F* hPixelResponseXEvenCol;
TH1F* hPixelResponseY;
TH1F* hPixelResponseGlobalY;
TH1F* hPixelResponseYOddCol;
TH1F* hPixelResponseYEvenCol;
TH2F* hEtaDistributionX;
TH2F* hEtaDistributionY;
TH1F* hResidualsLocalRow2pix;
TH1F* hResidualsLocalCol2pix;
TH1F* hClusterChargeRow2pix;
TH1F* hClusterChargeCol2pix;
TH1F* hPixelTOTRow2pix;
TH1F* hPixelTOTCol2pix;
TH1F* hClusterChargeRatioRow2pix;
TH1F* hClusterChargeRatioCol2pix;
// Maps
TH2F* hTrackIntercepts;
TH2F* hTrackInterceptsAssociated;
TH2F* hGlobalClusterPositions;
TH2F* hGlobalAssociatedClusterPositions;
TH2F* hTrackInterceptsPixel;
TH2F* hTrackInterceptsPixelAssociated;
TH2F* hTrackInterceptsChip;
TH2F* hTrackInterceptsChipAssociated;
TH2F* hTrackInterceptsChipUnassociated;
TH2F* hTrackInterceptsChipLost;
TH2F* hPixelEfficiencyMap;
TH2F* hChipEfficiencyMap;
TH2F* hGlobalEfficiencyMap;
TH2F* hInterceptClusterSize1;
TH2F* hInterceptClusterSize2;
TH2F* hInterceptClusterSize3;
TH2F* hInterceptClusterSize4;
TProfile2D* hPixelToTMap;
TH2F* hMapClusterSizeAssociated;
int m_nBinsX;
int m_nBinsY;
std::map<int, TH1F*> hMapClusterChargeAssociated1pix;
// Member variables
int m_eventNumber;
int m_triggerNumber;
std::map<int, double> m_hitPixels;
double m_associationCut;
double m_proximityCut;
int m_lostHits;
bool timepix3Telescope;
};
} // namespace corryvreckan
#endif // AnalysisCLICpix_H
# Define module and return the generated name as MODULE_NAME
CORRYVRECKAN_DUT_MODULE(MODULE_NAME)
CORRYVRECKAN_DETECTOR_TYPE(${MODULE_NAME} "CLICpix")
# Add source files to library
CORRYVRECKAN_MODULE_SOURCES(${MODULE_NAME}
AnalysisCLICpix.cpp
)
# Provide standard install target
CORRYVRECKAN_MODULE_INSTALL(${MODULE_NAME})
# AnalysisCLICpix
**Maintainer**: Daniel Hynds (<daniel.hynds@cern.ch>)
**Module Type**: *DUT*
**Detector Type**: *CLICpix*
**Status**: Outdated
### Description
This module associates CLICpix2 DUT clusters to tracks using a spatial cut (device type not checked). A significant number of analysis plots are produced.
### Parameters
* `association_cut`: Maximum distance between a track and cluster for them to be associated. Units of mm. Default value is `50um`.
* `proximity_cut`: Maximum distance apart two tracks are for them to be 'close' to each other. If at the CLICpix plane there are two tracks close to each other, the DUT cluster is not associated with either track. Units of mm. Default value is `0.5um`.
* `timepix3_telescope`: Boolean to set whether the Timepix3 telescope is being used. Default value is `false`.
### Plots produced
The following plots are produced: (Quite many of them are not filled currently!)
* 2D hitmap
* Column hits histogram
* Row hits histogram
* Cluster size histogram
* Cluster charge histogram
* Clusters per event histogram
* Clusters vs event number
* Cluster width histogram (rows, Y-axis)
* Cluster width histogram (columns, X-axis)
* Global track difference in X
* Global track difference in Y
* Global residuals in X
* Global residuals in Y
* Absolute residuals
* Global residuals in X vs X
* Global residuals in X vs Y
* Global residuals in Y vs X
* Global residuals in Y vs Y
* Global residuals in X vs column width
* Global residuals in X vs row width
* Global residuals in Y vs column width
* Global residuals in Y vs row width
* Track intercept in rows
* Track intercept in columns
* Absolute residual map histogram
* X residual vs Y residual
* Associated clusters per event histogram
* Associated clusters vs event number
* Associated clusters vs trigger number
* Associated cluster row
* Associated cluster column
* Frame efficiency histogram
* Frame tracks
* Associated frame tracks
* Associated cluster size
* Associated cluster width (row)
* Associated cluster width (column)
* Associated 1-pixel cluster charge
* Associated 2-pixel cluster charge
* Associated 3-pixel cluster charge
* Associated 4-pixel cluster charge
* Pixel response in X
* Pixel response in X in global coordinates
* Pixel response in X for odd columns
* Pixel response in X for even columns
* Pixel response in Y
* Pixel response in Y in global coordinates
* Pixel response in Y for odd columns
* Pixel response in Y for even columns
* 2D eta distribution in X
* 2D eta distribution in Y
* Local residual for rows for 2-pixel clusters
* Local residual for columns for 2-pixel clusters
* Cluster charge for rows for 2-pixel clusters
* Cluster charge for columns for 2-pixel clusters
* Pixel ToT for rows for 2-pixel clusters
* Pixel ToT for columns for 2-pixel clusters
* Cluster charge ratio for rows for 2-pixel clusters
* Cluster charge ratio for rows for 2-pixel clusters
* Local residuals for rows for 2-pixel clusters
* 2D track intercepts
* 2D associated track intercepts
* 2D cluster positions in global coordinates
* 2D associated cluster positions in global coordinates
* 2D track-pixel intercepts
* 2D track-associated pixel intercepts
* 2D track-chip intercepts
* 2D track-associated chip intercepts
* 2D track-unassociated chip intercepts
* 2D track-chip intercepts lost
* 2D pixel efficiency
* 2D chip efficiency
* 2D global efficiency
* 2D intercepts for cluster size of 1-pixel
* 2D intercepts for cluster size of 2-pixel
* 2D intercepts for cluster size of 3-pixel
* 2D intercepts for cluster size of 4-pixel
* 2D Associated cluster size map
### Usage
```toml
[CLICpixAnalysis]
association_cut = 0.005mm
proximity_cut = 0.005mm
timepix3Telescope = true
```
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment