AnalysisDUT.h 3.47 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
41
        TH2F *hClusterMapAssoc, *hHitMapAssoc;
42
        TProfile2D *hClusterSizeMapAssoc, *hClusterChargeMapAssoc;
43
44
45
        TProfile *hClusterSizeVsColAssoc, *hClusterSizeVsRowAssoc;
        TProfile *hClusterChargeVsColAssoc, *hClusterChargeVsRowAssoc;
        TProfile *hSeedChargeVsColAssoc, *hSeedChargeVsRowAssoc;
46

47
48
        TH1F* hPixelRawValueAssoc;
        TProfile2D* hPixelRawValueMapAssoc;
49
50

        TH1F* associatedTracksVersusTime;
51
52
        TH1F *residualsX, *residualsY, *residualsPos;
        TH2F* residualsPosVsresidualsTime;
53
54
55

        TH1F *residualsX1pix, *residualsY1pix;
        TH1F *residualsX2pix, *residualsY2pix;
56
57
58
        TH1F *residualsX3pix, *residualsY3pix;
        TH1F *residualsX4pix, *residualsY4pix;
        TH1F *residualsXatLeast5pix, *residualsYatLeast5pix;
59

60
        TH1F* clusterChargeAssoc;
61
        TH1F* seedChargeAssoc;
62
        TH1F* clusterSizeAssoc;
63
        TH1F* clusterSizeAssocNorm;
64
65
        TH1F* clusterWidthRowAssoc;
        TH1F* clusterWidthColAssoc;
66

67
68
        TH1F* hCutHisto;

69
70
71
72
73
        TProfile2D *rmsxvsxmym, *rmsyvsxmym, *rmsxyvsxmym;
        TProfile2D *qvsxmym, *qMoyalvsxmym, *pxqvsxmym;
        TProfile2D* npxvsxmym;
        TH2F *npx1vsxmym, *npx2vsxmym, *npx3vsxmym, *npx4vsxmym;

74
75
        TH1F* hTrackCorrelationX;
        TH1F* hTrackCorrelationY;
76
77
        TH1F* hTrackCorrelationPos;
        TH2F* hTrackCorrelationPosVsCorrelationTime;
78
        TH1F* hTrackCorrelationTime;
79
        TH1F* hTrackZPosDUT;
80
        TH1F* residualsTime;
81
        TH2F* residualsTimeVsTot;
82
83
        TH2F* residualsTimeVsCol;
        TH2F* residualsTimeVsRow;
84
85
86
        TH2F* residualsTimeVsTime;
        TH2F* residualsTimeVsSignal;
        TH2F* hAssociatedTracksGlobalPosition;
87
        TH2F* hAssociatedTracksLocalPosition;
Lennart Huth's avatar
Lennart Huth committed
88
        TH2F* hUnassociatedTracksGlobalPosition;
89
90
91
92
93
94
95

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

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

106
#endif // CORRYVRECKAN_DUT_ANALYSIS_H