AnalysisDUT.h 4.3 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
17
#include <TCanvas.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TProfile2D.h>
18
19
20
21
22
23
#include <iostream>
#include "core/module/Module.hpp"

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

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

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

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

39
        // Histograms
40
        TH2F *hClusterMapAssoc, *hHitMapAssoc;
41
        TProfile2D *hClusterSizeMapAssoc, *hClusterChargeMapAssoc;
42
43
        TProfile *hClusterSizevsColAssoc, *hClusterSizevsRowAssoc;
        TProfile *hClusterChargevsColAssoc, *hClusterChargevsRowAssoc;
44

45
46
        TH1F* hPixelRawValueAssoc;
        TProfile2D* hPixelRawValueMapAssoc;
47
48

        TH1F* associatedTracksVersusTime;
49
50
        TH1F *residualsX, *residualsY, *residualsPos;
        TH2F* residualsPosVsresidualsTime;
51
52
53

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

58
        TH1F* clusterChargeAssoc;
59
        TH1F* clusterSeedChargeAssoc;
60
        TH1F* clusterSizeAssoc;
61
        TH1F* clusterSizeAssocNorm;
62
63
        TH1F* clusterWidthRowAssoc;
        TH1F* clusterWidthColAssoc;
64

65
66
        TH1F* hCutHisto;

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

72
73
        TH1F* hTrackCorrelationX;
        TH1F* hTrackCorrelationY;
74
75
        TH1F* hTrackCorrelationPos;
        TH2F* hTrackCorrelationPosVsCorrelationTime;
76
        TH1F* hTrackCorrelationTime;
77
        TH1F* hTrackZPosDUT;
78
        TH1F* residualsTime;
79
        TH2F* residualsTimeVsTot;
80
81
        TH2F* residualsTimeVsCol;
        TH2F* residualsTimeVsRow;
82
83
84
        TH2F* residualsTimeVsTime;
        TH2F* residualsTimeVsSignal;
        TH2F* hAssociatedTracksGlobalPosition;
85
        TH2F* hAssociatedTracksLocalPosition;
Lennart Huth's avatar
Lennart Huth committed
86
        TH2F* hUnassociatedTracksGlobalPosition;
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112

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

        TH2F* pxTimeMinusSeedTime_vs_pxCharge_2px_up;
        TH2F* pxTimeMinusSeedTime_vs_pxCharge_2px_down;
        TH2F* pxTimeMinusSeedTime_vs_pxCharge_2px_left;
        TH2F* pxTimeMinusSeedTime_vs_pxCharge_2px_right;
        TH2F* pxTimeMinusSeedTime_vs_pxCharge_2px_upleft;
        TH2F* pxTimeMinusSeedTime_vs_pxCharge_2px_upright;
        TH2F* pxTimeMinusSeedTime_vs_pxCharge_2px_downleft;
        TH2F* pxTimeMinusSeedTime_vs_pxCharge_2px_downright;

        TProfile2D* hMap_pxTimeMinusSeedTime_trackPos;
        TProfile2D* hMap_pxTimeMinusSeedTime_clsPos;
        TProfile2D* hMap_pxTimeMinusSeedTime_clsPos_evenOddCol;
        TProfile2D* hMap_pxTimeMinusSeedTime_clsPos_2px;
        TProfile2D* hMap_pxTimeMinusSeedTime_clsPos_2px_evenOddCol;
        TProfile2D* hMap_pxTimeMinusSeedTime_clsPos_2px_smallDeltaT;
        TProfile2D* hMap_pxTimeMinusSeedTime_clsPos_2px_largeDeltaT;

        TProfile2D* hMapLargeClusters;

113
        // Member variables
114
        double m_timeCutFrameEdge;
115
        double chi2ndofCut;
116
        bool useClosestCluster;
117
        int nTimeBins;
118
        double timeBinning;
Katharina Dort's avatar
Katharina Dort committed
119
        int num_tracks;
120
121
122
    };
} // namespace corryvreckan

123
#endif // CORRYVRECKAN_DUT_ANALYSIS_H