Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#ifndef ROOT_TrackingEfficiency
#define ROOT_TrackingEfficiency
///////////////////////////////////////////////////////////////////////////////
// //
// TrackingEfficiency //
// //
///////////////////////////////////////////////////////////////////////////////
#include "THaEvData.h"
#include "THaCutList.h"
#include "VarDef.h"
#include "VarType.h"
#include "TClonesArray.h"
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include "THaPhysicsModule.h"
#include "THcHodoscope.h"
#include "THaSpectrometer.h"
#include "THaTrack.h"
namespace hcana {
/** \brief TrackingEfficiency calculation.
*
* \ingroup PhysMods
*/
class TrackingEfficiency : public THaPhysicsModule {
public:
TrackingEfficiency(const char* name, const char* description, const char* hodname);
virtual ~TrackingEfficiency();
virtual Int_t Begin(THaRunBase* r = 0);
virtual Int_t End(THaRunBase* r = 0);
virtual EStatus Init(const TDatime& run_time);
virtual Int_t Process(const THaEvData&);
void Reset(Option_t* opt = "");
protected:
virtual Int_t ReadDatabase(const TDatime& date);
virtual Int_t DefineVariables(EMode mode = kDefine);
/* Int_t GetScinIndex(Int_t nPlane, Int_t nPaddle); */
// Data needed for efficiency calculation for one Hodoscope paddle
// Double_t* fZPos; //
// TString fName; // Name of hodoscope
// THcHodoscope* fHod; // Hodscope object
// THaSpectrometer* fSpectro; // Spectrometer object
// Long64_t fNevt;
//// Information about the hodoscopes that we get from the
//// THcHodoscope object
// Int_t fEffiTest;
// Int_t fNPlanes;
// THcScintillatorPlane** fPlanes;
// Double_t* fPosZ;
// Double_t* fSpacing;
// Double_t* fCenterFirst;
// Int_t* fNCounters;
//// Int_t* fHodoPlnContHit;
// Int_t* fHodoPosEffi;
// Int_t* fHodoNegEffi;
// Int_t* fHodoOrEffi;
// Int_t* fHodoAndEffi;
// Int_t* fStatTrk;
// Int_t* fStatTrkSum;
// Int_t* fStatAndSum;
// Double_t* fStatAndEff;
// Double_t fStatSlop;
// Double_t fHodoEff_CalEnergy_Cut;
// Double_t fMaxChisq;
// Double_t* fHodoSlop;
// Double_t fHodoEff_s1, fHodoEff_s2, fHodoEff_tof, fHodoEff_3_of_4, fHodoEff_4_of_4;
//// Arrays for accumulating statistics
// vector<vector<vector<Int_t>>> fHitShould;
// vector<vector<vector<Int_t>>> fStatAndHitDel;
// vector<vector<vector<Int_t>>> fStatTrkDel;
// vector<vector<Int_t>> fStatPosHit;
// vector<vector<Int_t>> fStatNegHit;
// vector<vector<Int_t>> fStatAndHit;
// vector<vector<Int_t>> fStatOrHit;
// vector<vector<Int_t>> fBothGood;
// vector<vector<Int_t>> fNegGood;
// vector<vector<Int_t>> fPosGood;
// Int_t* fHitPlane;
ClassDef(TrackingEfficiency, 0) // Hodoscope efficiency module
};
} // namespace hcana
#endif