AnalysisDUT.h 3.74 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
/**
 * @file
 * @brief Definition of module AnalysisDUT
 *
 * @copyright Copyright (c) 2017-2020 CERN and the Corryvreckan authors.
 * This software is distributed under the terms of the MIT License, copied verbatim in the file "LICENSE.md".
 * In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an
 * Intergovernmental Organization or submit itself to any jurisdiction.
 */

11
12
#ifndef CORRYVRECKAN_DUT_ANALYSIS_H
#define CORRYVRECKAN_DUT_ANALYSIS_H
13

14
15
16
#include <TCanvas.h>
#include <TH1F.h>
#include <TH2F.h>
17
#include <TProfile.h>
18
#include <TProfile2D.h>
19
20
21
22
23
24
#include <iostream>
#include "core/module/Module.hpp"

namespace corryvreckan {
    /** @ingroup Modules
     */
25
    class AnalysisDUT : public Module {
26
27
28

    public:
        // Constructors and destructors
29
        AnalysisDUT(Configuration& config, std::shared_ptr<Detector> detector);
30
        ~AnalysisDUT() {}
31
32

        // Functions
33
        void initialize() override;
34
        StatusCode run(const std::shared_ptr<Clipboard>& clipboard) override;
35
        void finalize(const std::shared_ptr<ReadonlyClipboard>& clipboard) override;
36
37

    private:
38
39
        std::shared_ptr<Detector> m_detector;

40
        // Histograms
Lennart Huth's avatar
Lennart Huth committed
41
42
        TH1F *trackCorrelationX_beforeCuts, *trackCorrelationY_beforeCuts, *trackCorrelationTime_beforeCuts;
        TH1F *trackCorrelationX_afterCuts, *trackCorrelationY_afterCuts, *trackCorrelationTime_afterCuts;
43

44
        TH2F *hClusterMapAssoc, *hHitMapAssoc;
45
        TProfile2D *hClusterSizeMapAssoc, *hClusterChargeMapAssoc;
46
        TProfile *hClusterSizeVsColAssoc, *hClusterSizeVsRowAssoc;
47
        TProfile *hClusterWidthColVsRowAssoc, *hClusterWidthRowVsRowAssoc;
48
49
        TProfile *hClusterChargeVsColAssoc, *hClusterChargeVsRowAssoc;
        TProfile *hSeedChargeVsColAssoc, *hSeedChargeVsRowAssoc;
50

51
52
        TH2F *hClusterChargeVsRowAssoc_2D, *hSeedChargeVsRowAssoc_2D;

53
54
        TH1F* hPixelRawValueAssoc;
        TProfile2D* hPixelRawValueMapAssoc;
55
56

        TH1F* associatedTracksVersusTime;
57
58
        TH1F *residualsX, *residualsY, *residualsPos;
        TH2F* residualsPosVsresidualsTime;
59
60
61

        TH1F *residualsX1pix, *residualsY1pix;
        TH1F *residualsX2pix, *residualsY2pix;
62
63
64
        TH1F *residualsX3pix, *residualsY3pix;
        TH1F *residualsX4pix, *residualsY4pix;
        TH1F *residualsXatLeast5pix, *residualsYatLeast5pix;
65

66
        TH1F* clusterChargeAssoc;
67
        TH1F* seedChargeAssoc;
68
        TH1F* clusterSizeAssoc;
69
        TH1F* clusterSizeAssocNorm;
70
71
        TH1F* clusterWidthRowAssoc;
        TH1F* clusterWidthColAssoc;
72

73
74
        TH1F* hCutHisto;

75
76
        TProfile2D *rmsxvsxmym, *rmsyvsxmym, *rmsxyvsxmym;
        TProfile2D *qvsxmym, *qMoyalvsxmym, *pxqvsxmym;
Lennart Huth's avatar
Lennart Huth committed
77
        TProfile2D *qvsxmym_1px, *qvsxmym_2px, *qvsxmym_3px, *qvsxmym_4px;
78
79
80
        TProfile2D* npxvsxmym;
        TH2F *npx1vsxmym, *npx2vsxmym, *npx3vsxmym, *npx4vsxmym;

81
        TH1F* hTrackZPosDUT;
82
        TH1F* residualsTime;
83
        TH2F* residualsTimeVsTot;
84
85
        TH2F* residualsTimeVsCol;
        TH2F* residualsTimeVsRow;
86
87
88
        TH2F* residualsTimeVsTime;
        TH2F* residualsTimeVsSignal;
        TH2F* hAssociatedTracksGlobalPosition;
89
        TH2F* hAssociatedTracksLocalPosition;
Lennart Huth's avatar
Lennart Huth committed
90
        TH2F* hUnassociatedTracksGlobalPosition;
91
92
93
94
95
96
97

        TH1F* pxTimeMinusSeedTime;
        TH2F* pxTimeMinusSeedTime_vs_pxCharge;
        TH2F* pxTimeMinusSeedTime_vs_pxCharge_2px;
        TH2F* pxTimeMinusSeedTime_vs_pxCharge_3px;
        TH2F* pxTimeMinusSeedTime_vs_pxCharge_4px;

98
        // Member variables
99
100
101
102
103
        double time_cut_frameedge_;
        double chi2_ndof_cut_;
        bool use_closest_cluster_;
        int n_timebins_;
        double time_binning_;
104
        bool correlations_;
105
        int num_tracks_;
106
107
108
    };
} // namespace corryvreckan

109
#endif // CORRYVRECKAN_DUT_ANALYSIS_H