1 #include "antiNumuCCAnalysis.hxx" 2 #include "FiducialVolumeDefinition.hxx" 3 #include "Parameters.hxx" 4 #include "UseGlobalAltMomCorrection.hxx" 5 #include "antiNumuCCSelection.hxx" 6 #include "antiNumuCCMultiTrackSelection.hxx" 7 #include "antiNumuCCFGD2Selection.hxx" 8 #include "antiNumuCCMultiTrackFGD2Selection.hxx" 9 #include "CategoriesUtils.hxx" 10 #include "BasicUtils.hxx" 23 UseAnalysis(_numuCCAnalysis);
38 _whichFGD = ND::params().
GetParameterI(
"antiNumuCCAnalysis.Selections.whichFGD");
40 std::cout <<
"----------------------------------------------------" << std::endl;
41 std::cout <<
"WARNING: only for events with accum_level > 6 the vars in the output microtree will surely refer to the muon candidate in that FGD" << std::endl;
42 std::cout <<
"----------------------------------------------------" << std::endl;
46 fCCInclusive = ND::params().
GetParameterI(
"antiNumuCCAnalysis.Selections.CCInc");
57 void antiNumuCCAnalysis::DefineSelections(){
61 if(_whichFGD==1 || _whichFGD==3){
70 if (_whichFGD==2 || _whichFGD==3){
81 void antiNumuCCAnalysis::DefineMicroTrees(
bool addBase){
87 if (addBase) _numuCCAnalysis->DefineMicroTrees(addBase);
89 if (ND::params().GetParameterI(
"numuCCAnalysis.MicroTrees.AdditionalToyVars")){
90 AddToyVarF(output(), shmp_mom,
"second highest momentum positive track reconstructed momentum");
93 AddVarF(output(), shmp_mom,
"second highest momentum positive track reconstructed momentum");
99 void antiNumuCCAnalysis::DefineTruthTree(){
103 _numuCCAnalysis->DefineTruthTree();
108 void antiNumuCCAnalysis::FillMicroTrees(
bool addBase){
112 if (addBase) _numuCCAnalysis->FillMicroTrees(addBase);
114 if (!ND::params().GetParameterI(
"numuCCAnalysis.MicroTrees.AdditionalToyVars")){
116 output().
FillVar(shmp_mom,
box().SHMPtrack->Momentum);
122 void antiNumuCCAnalysis::FillToyVarsInMicroTrees(
bool addBase){
128 if (addBase) _numuCCAnalysis->FillToyVarsInMicroTrees(addBase);
130 if (ND::params().GetParameterI(
"numuCCAnalysis.MicroTrees.AdditionalToyVars")){
131 if (
box().SHMPtrack){
138 bool antiNumuCCAnalysis::CheckFillTruthTree(
const AnaTrueVertex& vtx){
145 if (_whichFGD == 1) fgdID = SubDetId::kFGD1;
146 if (_whichFGD == 2) fgdID = SubDetId::kFGD2;
147 if (_whichFGD == 3) fgdID = SubDetId::kFGD;
149 bool IsAntinu =
true;
153 bool antiNumuCCinFV = (anaUtils::GetReactionCC(vtx, fgdID, IsAntinu) == 1);
160 bool topoCCinFV = (topo == 0 || topo == 1 || topo == 2);
162 return (antiNumuCCinFV || topoCCinFV);
166 void antiNumuCCAnalysis::FillTruthTree(
const AnaTrueVertex& vtx){
170 bool IsAntinu =
true;
171 _numuCCAnalysis->FillTruthTreeBase(vtx,IsAntinu);
176 void antiNumuCCAnalysis::FillCategories(){
181 bool IsAntinu =
true;
void SetMinAccumCutLevelToSave(Int_t level)
Set the minimum accumulated cut level to save an event into the micro-tree.
int GetParameterI(std::string)
Get parameter. Value is returned as integer.
void AddPackage(const std::string &name, const std::string &version)
Add a package.
Int_t GetTopology(const AnaTrueVertex &trueVertex, const SubDetId::SubDetEnum det=SubDetId::kFGD1, bool IsAntinu=false)
Classify reaction topologies.
std::string GetSoftwareVersionFromPath(const std::string &path)
Get The software version from the path of the package.
bool Initialize()
[AnalysisAlgorithm_mandatory]
Representation of a true Monte Carlo vertex.
virtual const ToyBoxTracker & box(Int_t isel=-1) const
Returns the ToyBoxTracker.
void AddStandardAntiNumuCategories(const std::string &prefix="")
Add the standard categories only, given a prefix for their name.
SubDetEnum
Enumeration of all detector systems and subdetectors.
void FillCategories(AnaEventB *event, AnaTrack *track, const std::string &prefix, const SubDetId::SubDetEnum det=SubDetId::kFGD1, bool IsAntinu=false, bool useCATSAND=true)
Fill the track categories for color drawing.
AnaEvent & GetEvent()
Get a casted AnaEventC to AnaEvent.
void FillToyVar(Int_t index, Int_t var)
Fill a single analysis variable.
virtual bool Initialize()
[AnalysisAlgorithm_mandatory]
void FillVar(Int_t index, Float_t var)
Fill a single variable.
void AddSelection(const std::string &name, const std::string &title, SelectionBase *sel, Int_t presel=-1)
Add a user selection to the selection manager.