HighLAND
numuCCAnalysis.hxx
1 #ifndef numuCCAnalysis_h
2 #define numuCCAnalysis_h
3 
4 #include "baseTrackerAnalysis.hxx"
5 #include "ND280AnalysisUtils.hxx"
6 
8  public:
10  virtual ~numuCCAnalysis(){}
11 
12  //---- These are mandatory functions
13  void DefineSelections();
14  void DefineCorrections();
15  void DefineMicroTrees(bool addBase=true);
16  void DefineTruthTree();
17 
18  void FillMicroTrees(bool addBase=true);
19  void FillToyVarsInMicroTrees(bool addBase=true);
20 
21  bool CheckFillTruthTree(const AnaTrueVertex& vtx);
22 
23  using baseAnalysis::FillTruthTree;
24  void FillTruthTree(const AnaTrueVertex& vtx);
25  using baseTrackerAnalysis::FillTruthTreeBase;
26  //--------------------
27 
28  void FillConfigTree();
29  bool Initialize();
30  void FillCategories();
31 
32  void Finalize();
33  //---- package-specific functions
34  void FillTruthTreeBase(const AnaTrueVertex& vtx, bool IsAntinu = false);
35  void SetFV();
36 
37 private:
38  Int_t _whichFGD; // 1 for FGD1 analysis, 2 for FGD2, 3 for both
39 
40  bool _saveMassWeights;
41 
42 public:
43 
44  enum enumStandardMicroTrees_numuCCAnalysis{
45  selmu_truemom = enumStandardMicroTreesLast_baseTrackerAnalysis+1,
46 
47  truelepton_nuErecQE,
48  // This is not the same as the category particle since
49  // particle corresponds to the pdg code of the true particle associated to the candidate muon (it would be selmu_pdg), while
50  // truelepton_pdg is the pdg code of the true lepton from the true vertex associated to the candidate
51  truelepton_pdg,
52  // truelepton_det, // eqivalent to detector but in different detector convention
53 
54  // ----
55  selmu_nuErecQE,
56  selmu_closest_tpc,
57  selmu_detectors,
58  selmu_truepos,
59  selmu_trueendpos,
60  selmu_truedir,
61  selmu_dir,
62  selmu_enddir,
63  selmu_pos,
64  selmu_endpos,
65  selmu_det,
66  selmu_ntpcs,
67  selmu_tpc_det,
68  selmu_tpc_nhits,
69  selmu_tpc_nnodes,
70  selmu_tpc_charge,
71  selmu_tpc_mom,
72  selmu_tpc_bfield_mom,
73  selmu_tpc_efield_mom,
74  selmu_tpc_emom,
75  selmu_tpc_truemom,
76  selmu_tpc_dedx_raw,
77  selmu_tpc_dedx_expmu,
78  selmu_tpc_dedx_exppi,
79  selmu_tpc_dedx_expele,
80  selmu_tpc_dedx_expp,
81  selmu_nfgds,
82  selmu_fgd_det,
83  selmu_fgd_x,
84  selmu_fgd_V11,
85  selmu_fgd_V33,
86  selmu_fgd_V55,
87  selmu_fgd_V77,
88  selmu_fgd_VLayer,
89  selmu_fgd_pullmu,
90 
91  selmu_necals,
92  selmu_ecal_det,
93 
94  selmu_ecal_nhits,
95  selmu_ecal_nnodes,
96  selmu_ecal_length,
97  selmu_ecal_showerstartpos,
98  selmu_ecal_showerendpos,
99  selmu_ecal_showerstartdir,
100  selmu_ecal_showerenddir,
101 
102  selmu_ecal_EMenergy,
103  selmu_ecal_edeposit,
104  selmu_ecal_IsShower,
105 
106  selmu_ecal_mipem,
107  selmu_ecal_mippion,
108  selmu_ecal_emhip,
109  selmu_ecal_containment,
110  selmu_ecal_trshval,
111  selmu_ecal_mostupstreamlayerhit,
112 
113  // SMRD vars
114  selmu_nsmrds,
115  selmu_smrd_det,
116  selmu_smrd_edeposit,
117  selmu_smrd_nhits,
118  selmu_smrd_nnodes,
119  selmu_smrd_dir,
120  selmu_smrd_enddir,
121 
122  selmu_mom,
123  selmu_costheta,
124  shmn_mom,
125  selmu_amom,
126  selmu_likemip,
127  selmu_likemu,
128  selmu_tpc_pullmu,
129  selmu_tpc_pullpi,
130  selmu_tpc_pullele,
131  selmu_tpc_pullp,
132  selmu_tpc_dedx,
133 
134  // (for xsTool)
135  truevtx_mass_component,
136 
137  enumStandardMicroTreesLast_numuCCAnalysis
138  };
139 
140  enum enumConfigTree_numuCCAnalysis{
141  nNucleonsFGD1 = enumConfigTreeLast_AnalysisAlgorithm+1,
142  nNucleonsFGD2scint,
143  nNucleonsFGD2water,
144  massWeight,
145 
146  enumConfigTreeLast_numuCCAnalysis
147  };
148 
149  enum enumSpecialTrees_numuCCAnalysis{
150  massWeightTree = OutputManager::enumSpecialTreesLast+1,
151  enumSpecialTreesLast_numuCCAnalysis
152  };
153 
154 
155 };
156 
157 #endif
void Finalize()
[AnalysisAlgorithm_optional]
bool Initialize()
[AnalysisAlgorithm_mandatory]
Representation of a true Monte Carlo vertex.
Definition: DataClasses.hxx:50