Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F8309560
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
19 KB
Subscribers
None
View Options
diff --git a/src/Utils/StandardStacks.cxx b/src/Utils/StandardStacks.cxx
index e8758c8..7f799c6 100644
--- a/src/Utils/StandardStacks.cxx
+++ b/src/Utils/StandardStacks.cxx
@@ -1,392 +1,429 @@
#include "StandardStacks.h"
/// Fake stack functions
FakeStack::FakeStack(TH1* hist) {
- fTemplate = (TH1*)hist;
- fNDim = fTemplate->GetDimension();
+ fTemplate = (TH1*)hist;
+ fNDim = fTemplate->GetDimension();
+ fFakeType = "TH1";
+ fTGraphObject = NULL;
+ fTF1Object = NULL;
+}
+
+
+FakeStack::FakeStack(TF1* f){
+ fTemplate = NULL;
+ fNDim = 1;
+ fTF1Object = f;
+ fFakeType = "TF1";
+ fTGraphObject = NULL;
+}
+
+FakeStack::FakeStack(TGraph* gr){
+ fTemplate = NULL;
+ fNDim = 1;
+ fTGraphObject = gr;
+ fFakeType = "TGRAPH";
+ fTF1Object = NULL;
}
FakeStack::~FakeStack() {
- fTemplate = NULL;
- fNDim = 0;
+ fTemplate = NULL;
+ fNDim = 0;
+ fFakeType = "NULL";
+ fTF1Object = NULL;
+ fTGraphObject = NULL;
}
void FakeStack::Fill(double x, double y, double z, double weight) {
+ if (fTemplate){
if (fNDim == 1) fTemplate->Fill(x, y);
else if (fNDim == 2) ((TH2*)fTemplate)->Fill(x, y, z);
else if (fNDim == 3) ((TH3*)fTemplate)->Fill(x, y, z, weight);
+ }
+ if (fTGraphObject){
+ fTGraphObject->SetPoint( fTGraphObject->GetN(), x, y);
+ }
}
void FakeStack::Scale(double norm, std::string opt) {
- fTemplate->Scale(norm, opt.c_str());
+ if (fTemplate){ fTemplate->Scale(norm, opt.c_str()); }
+ if (fTGraphObject){
+ for (int i = 0; i < fTGraphObject->GetN(); i++){
+ const double* x = fTGraphObject->GetX();
+ const double* y = fTGraphObject->GetY();
+ fTGraphObject->SetPoint(i, x[i], y[i] * norm);
+ }
+ }
}
void FakeStack::Reset() {
- fTemplate->Reset();
+ if (fTemplate){ fTemplate->Reset(); }
}
void FakeStack::Write() {
- fTemplate->Write();
+ if (fTemplate){ fTemplate->Write(); }
+ if (fTF1Object){ fTF1Object->Write(); }
+ if (fTGraphObject){ fTGraphObject->Write(); }
}
/// TrueModeStack Functions
TrueModeStack::TrueModeStack(std::string name, std::string title, TH1* hist) {
fName = name;
fTitle = title;
// CC
AddMode(0, "CCQE", "CCQE", kBlue, 2, 1001);
AddMode(1, "CC2p2h", "2p2h", kRed, 2, 1001);
AddMode(2, "CC1piponp", "CC1#pi^{+} on p", kGreen, 2, 1001);
AddMode(3, "CC1pi0onn", "CC1#pi^{0} on n", kGreen + 3, 2, 1001);
AddMode(4, "CC1piponn", "CC1#pi^{+} on n", kGreen - 2, 2, 1001);
AddMode(5, "CCcoh", "CC coherent", kBlue, 2, 1001);
AddMode(6, "CC1gamma", "CC1#gamma", kMagenta, 2, 1001);
AddMode(7, "CCMultipi", "Multi #pi (1.3 < W < 2.0)", kYellow, 2, 1001);
AddMode(8, "CC1eta", "CC1#eta^{0} on n", kYellow - 2, 2, 1001);
AddMode(9, "CC1lamkp", "CC1#Lambda1K^{+}", kYellow - 6, 2, 1001);
AddMode(10, "CCDIS", "DIS (W > 2.0)", kRed, 2, 1001);
// NC
AddMode(11, "NC1pi0onn", "NC1#pi^{0} on n", kBlue, 2, 3004);
AddMode(12, "NC1pi0onp", "NC1#pi^{0} on p", kBlue + 3, 2, 3004);
AddMode(13, "NC1pimonn", "NC1#pi^{-} on n", kBlue - 2, 2, 3004);
AddMode(14, "NC1piponp", "NC1#pi^{+} on p", kBlue - 8, 2, 3004);
AddMode(15, "NCcoh", "NC Coherent", kBlue + 8, 2, 3004);
AddMode(16, "NC1gammaonn", "NC1#gamma on n", kMagenta, 2, 3004);
AddMode(17, "NC1gammaonp", "NC1#gamma on p", kMagenta - 10, 2, 3004);
AddMode(18, "NCMultipi", "Multi #pi (1.3 < W < 2.0)", kBlue - 10, 2, 3004);
AddMode(19, "NC1etaonn", "NC1#eta^{0} on n", kYellow - 2, 2, 3004);
AddMode(20, "NC1etaonp", "NC1#eta^{0} on p", kYellow - 4, 2, 3004);
AddMode(21, "NC1kamk0", "NC1#Lambda1K^{0} on n", kYellow - 6, 2, 3004);
AddMode(22, "NC1lamkp", "NC1#Lambda1K^{+}", kYellow - 10, 2, 3004);
AddMode(23, "NCDIS", "DIS (W > 2.0)", kRed, 2, 3004);
AddMode(24, "NCELonp", "NCEL on p", kBlack, 2, 3004);
AddMode(25, "NCELonn", "NCEL on n", kGray, 2, 3004);
AddMode(26, "NC2p2h", "NC 2p2h", kRed+1, 2, 3004);
// Undefined
AddMode(27, "UNDEFINED", "Undefined", kRed + 1, 2, 3000);
StackBase::SetupStack(hist);
};
int TrueModeStack::ConvertModeToIndex(int mode) {
// std::cout << "Converting Mode " << (mode) << std::endl;
switch (abs(mode)) {
case 1: return 0; // CCQE
case 2: return 1; // CC2p2h
case 11: return 2; // CC1piponp
case 12: return 3; // CC1pi0onn
case 13: return 4; // CC1piponn
case 16: return 5; // CCcoh
case 17: return 6; // CC1gamma
case 21: return 7; // CCMultipi
case 22: return 8; // CC1eta
case 23: return 9; // CC1lamkp
case 26: return 10; // CCDIS
case 31: return 11; // NC1pi0onn
case 32: return 12; // NC1pi0onp
case 33: return 13; // NC1pimonn
case 34: return 14; // NC1piponp
case 36: return 15; // NCcoh
case 38: return 16; // NC1gammaonn
case 39: return 17; // NC1gammaonp
case 41: return 18; // NC Multipi
case 42: return 19; // NC1etaonn
case 43: return 20; // NC1etaonp
case 44: return 21; // NC1kamk0
case 45: return 22; // NC1lamkp
case 46: return 23; // NCDIS
case 51: return 24; // NCEL on p
case 52: return 25; // NCEL on n
case 53: return 26; // NC 2p2h
default: return 27; // Undefined
}
};
void TrueModeStack::Fill(int mode, double x, double y, double z, double weight) {
StackBase::FillStack(ConvertModeToIndex(mode), x, y, z, weight);
};
void TrueModeStack::Fill(FitEvent* evt, double x, double y, double z, double weight) {
StackBase::FillStack(ConvertModeToIndex(evt->Mode), x, y, z, weight);
};
void TrueModeStack::Fill(BaseFitEvt* evt, double x, double y, double z, double weight) {
StackBase::FillStack(ConvertModeToIndex(evt->Mode), x, y, z, weight);
};
/// TrueModeStack Functions
NuNuBarTrueModeStack::NuNuBarTrueModeStack(std::string name, std::string title, TH1* hist) {
fName = name;
fTitle = title;
// Neutrino
// CC
AddMode(0, "NU_CCQE", "#nu CCQE", kBlue, 2, 1001);
AddMode(1, "NU_CC2p2h", "#nu 2p2h", kRed, 2, 1001);
AddMode(2, "NU_CC1piponp", "#nu CC1#pi^{+} on p", kGreen, 2, 1001);
AddMode(3, "NU_CC1pi0onn", "#nu CC1#pi^{0} on n", kGreen + 3, 2, 1001);
AddMode(4, "NU_CC1piponn", "#nu CC1#pi^{+} on n", kGreen - 2, 2, 1001);
AddMode(5, "NU_CCcoh", "#nu CC coherent", kBlue, 2, 1001);
AddMode(6, "NU_CC1gamma", "#nu CC1#gamma", kMagenta, 2, 1001);
AddMode(7, "NU_CCMultipi", "#nu Multi #pi (1.3 < W < 2.0)", kYellow, 2, 1001);
AddMode(8, "NU_CC1eta", "#nu CC1#eta^{0} on n", kYellow - 2, 2, 1001);
AddMode(9, "NU_CC1lamkp", "#nu CC1#Lambda1K^{+}", kYellow - 6, 2, 1001);
AddMode(10, "NU_CCDIS", "#nu DIS (W > 2.0)", kRed, 2, 1001);
// NC
AddMode(11, "NU_NC1pi0onn", "#nu NC1#pi^{0} on n", kBlue, 2, 3004);
AddMode(12, "NU_NC1pi0onp", "#nu NC1#pi^{0} on p", kBlue + 3, 2, 3004);
AddMode(13, "NU_NC1pimonn", "#nu NC1#pi^{-} on n", kBlue - 2, 2, 3004);
AddMode(14, "NU_NC1piponp", "#nu NC1#pi^{+} on p", kBlue - 8, 2, 3004);
AddMode(15, "NU_NCcoh", "#nu NC Coherent", kBlue + 8, 2, 3004);
AddMode(16, "NU_NC1gammaonn", "#nu NC1#gamma on n", kMagenta, 2, 3004);
AddMode(17, "NU_NC1gammaonp", "#nu NC1#gamma on p", kMagenta - 10, 2, 3004);
AddMode(18, "NU_NCMultipi", "#nu Multi #pi (1.3 < W < 2.0)", kBlue - 10, 2, 3004);
AddMode(19, "NU_NC1etaonn", "#nu NC1#eta^{0} on n", kYellow - 2, 2, 3004);
AddMode(20, "NU_NC1etaonp", "#nu NC1#eta^{0} on p", kYellow - 4, 2, 3004);
AddMode(21, "NU_NC1kamk0", "#nu NC1#Lambda1K^{0} on n", kYellow - 6, 2, 3004);
AddMode(22, "NU_NC1lamkp", "#nu NC1#Lambda1K^{+}", kYellow - 10, 2, 3004);
AddMode(23, "NU_NCDIS", "#nu DIS (W > 2.0)", kRed, 2, 3004);
AddMode(24, "NU_NCELonp", "#nu NCEL on p", kBlack, 2, 3004);
AddMode(25, "NU_NCELonn", "#nu NCEL on n", kGray, 2, 3004);
// Undefined
AddMode(26, "NU_UNDEFINED", "#nu Undefined", kRed + 2, 2, 3000);
// CC
AddMode(27, "ANTINU_CCQE", "#bar{#nu} CCQE", kBlue, 2, 1001);
AddMode(28, "ANTINU_CC2p2h", "#bar{#nu} 2p2h", kRed, 2, 1001);
AddMode(29, "ANTINU_CC1piponp", "#bar{#nu} CC1#pi^{+} on p", kGreen, 2, 1001);
AddMode(30, "ANTINU_CC1pi0onn", "#bar{#nu} CC1#pi^{0} on n", kGreen + 3, 2, 1001);
AddMode(31, "ANTINU_CC1piponn", "#bar{#nu} CC1#pi^{+} on n", kGreen - 2, 2, 1001);
AddMode(32, "ANTINU_CCcoh", "#bar{#nu} CC coherent", kBlue, 2, 1001);
AddMode(33, "ANTINU_CC1gamma", "#bar{#nu} CC1#gamma", kMagenta, 2, 1001);
AddMode(34, "ANTINU_CCMultipi", "#bar{#nu} Multi #pi (1.3 < W < 2.0)", kYellow, 2, 1001);
AddMode(35, "ANTINU_CC1eta", "#bar{#nu} CC1#eta^{0} on n", kYellow - 2, 2, 1001);
AddMode(36, "ANTINU_CC1lamkp", "#bar{#nu} CC1#Lambda1K^{+}", kYellow - 6, 2, 1001);
AddMode(37, "ANTINU_CCDIS", "#bar{#nu} DIS (W > 2.0)", kRed, 2, 1001);
// NC
AddMode(38, "ANTINU_NC1pi0onn", "#bar{#nu} NC1#pi^{0} on n", kBlue, 2, 3004);
AddMode(39, "ANTINU_NC1pi0onp", "#bar{#nu} NC1#pi^{0} on p", kBlue + 3, 2, 3004);
AddMode(40, "ANTINU_NC1pimonn", "#bar{#nu} NC1#pi^{-} on n", kBlue - 2, 2, 3004);
AddMode(41, "ANTINU_NC1piponp", "#bar{#nu} NC1#pi^{+} on p", kBlue - 8, 2, 3004);
AddMode(42, "ANTINU_NCcoh", "#bar{#nu} NC Coherent", kBlue + 8, 2, 3004);
AddMode(43, "ANTINU_NC1gammaonn", "#bar{#nu} NC1#gamma on n", kMagenta, 2, 3004);
AddMode(44, "ANTINU_NC1gammaonp", "#bar{#nu} NC1#gamma on p", kMagenta - 10, 2, 3004);
AddMode(45, "ANTINU_NCMultipi", "#bar{#nu} Multi #pi (1.3 < W < 2.0)", kBlue - 10, 2, 3004);
AddMode(46, "ANTINU_NC1etaonn", "#bar{#nu} NC1#eta^{0} on n", kYellow - 2, 2, 3004);
AddMode(47, "ANTINU_NC1etaonp", "#bar{#nu} NC1#eta^{0} on p", kYellow - 4, 2, 3004);
AddMode(48, "ANTINU_NC1kamk0", "#bar{#nu} NC1#Lambda1K^{0} on n", kYellow - 6, 2, 3004);
AddMode(49, "ANTINU_NC1lamkp", "#bar{#nu} NC1#Lambda1K^{+}", kYellow - 10, 2, 3004);
AddMode(50, "ANTINU_NCDIS", "#bar{#nu} DIS (W > 2.0)", kRed, 2, 3004);
AddMode(51, "ANTINU_NCELonp", "#bar{#nu} NCEL on p", kBlack, 2, 3004);
AddMode(52, "ANTINU_NCELonn", "#bar{#nu} NCEL on n", kGray, 2, 3004);
// Undefined
AddMode(53, "NU_UNDEFINED", "#bar{#nu} Undefined", kRed + 2, 2, 3000);
// Non Neutrino
AddMode(54, "UNDEFINED", "Non-#nu Undefined", kBlack, 2, 3000);
StackBase::SetupStack(hist);
};
int NuNuBarTrueModeStack::ConvertModeToIndex(int mode) {
switch (abs(mode)) {
case 1: return 0; // CCQE
case 2: return 1; // CC2p2h
case 11: return 2; // CC1piponp
case 12: return 3; // CC1pi0onn
case 13: return 4; // CC1piponn
case 16: return 5; // CCcoh
case 17: return 6; // CC1gamma
case 21: return 7; // CCMultipi
case 22: return 8; // CC1eta
case 23: return 9; // CC1lamkp
case 26: return 10; // CCDIS
case 31: return 11; // NC1pi0onn
case 32: return 12; // NC1pi0onp
case 33: return 13; // NC1pimonn
case 34: return 14; // NC1piponp
case 36: return 15; // NCcoh
case 38: return 16; // NC1gammaonn
case 39: return 17; // NC1gammaonp
case 41: return 18; // NC Multipi
case 42: return 19; // NC1etaonn
case 43: return 20; // NC1etaonp
case 44: return 21; // NC1kamk0
case 45: return 22; // NC1lamkp
case 46: return 23; // NCDIS
case 51: return 24; // NCEL on p
case 52: return 25; // NCEL on n
default: return 26; // Undefined
}
};
void NuNuBarTrueModeStack::Fill(int species, int mode, double x, double y, double z, double weight) {
int modeindex = ConvertModeToIndex(mode);
int index = 54; // undefined
if (species == 12 or species == 14 or species == 16) index = modeindex;
else if (species == -12 or species == -14 or species == -16) index = modeindex + 27;
StackBase::FillStack(index, x, y, z, weight);
};
// Species Stack Functions
BeamSpeciesStack::BeamSpeciesStack(std::string name, std::string title, TH1* hist) {
fName = name;
fTitle = title;
// charged eptons
AddMode(0, "electron", "e^{-}", kBlue, 2, 1001);
AddMode(1, "positron", "e^{+}", kBlue - 2, 2, 3004);
AddMode(2, "muon", "#mu^{-}", kRed, 2, 1001);
AddMode(3, "antimuon", "#mu^{+}", kRed - 2, 2, 3004);
AddMode(4, "tau", "#tau^{-}", kGreen, 2, 1001);
AddMode(5, "antitau", "#tau^{+}", kGreen - 2, 2, 3004);
// neutrinos
AddMode(6, "nue", "#nu_e", kBlue, 2, 1001);
AddMode(7, "antinue", "#bar{#nu}_e", kBlue - 2, 2, 3004);
AddMode(8, "numu", "#nu_#mu", kRed, 2, 1001);
AddMode(9, "antinumu", "#bar{#nu}_#mu", kRed - 2, 2, 3004);
AddMode(10, "nutau", "#nu_#tau", kGreen, 2, 1001);
AddMode(11, "antinutau", "#bar{#nu}_#tau", kGreen - 2, 2, 3004);
StackBase::SetupStack(hist);
};
int BeamSpeciesStack::ConvertSpeciesToIndex(int species) {
switch (species) {
case 11: return 0; // e-
case -11: return 1; // e+
case 13: return 2; // mu-
case -13: return 3; // mu+
case 15: return 4; // tau-
case -15: return 5; // tau+
case 12: return 6; // nue
case -12: return 7; // nuebar
case 14: return 8; // numu
case -14: return 9; // numubar
case 16: return 10; // nutau
case -16: return 11; //nutaubar
default: return 12;
}
};
void BeamSpeciesStack::Fill(int species, double x, double y, double z, double weight) {
StackBase::FillStack(ConvertSpeciesToIndex(species), x, y, z, weight);
}
// Target Stack Functions
TargetTypeStack::TargetTypeStack(std::string name, std::string title, TH1* hist){
fName = name;
fTitle = title;
AddMode(0, "H", "Hydrogen", kBlue, 2, 1001);
AddMode(1, "C", "Carbon", kRed, 2, 1001);
AddMode(2, "O", "Oxygen", kViolet, 2, 1001);
AddMode(3, "UNDEFINED", "Undefined", kBlack, 2, 1001 );
StackBase::SetupStack(hist);
}
void TargetTypeStack::Fill(int pdg, double x, double y, double z, double weight){
int index = ConvertPDGToIndex(pdg);
StackBase::FillStack(index, x, y, z, weight);
}
int TargetTypeStack::ConvertPDGToIndex(int pdg){
switch(pdg){
case 1000010010: return 0; // H
case 1000060120: return 1; // C
case 1000080160: return 2; // O
default: return 3; // Undef
}
}
bool TargetTypeStack::IncludeInStack(TH1* hist){
return (hist->Integral() > 0.0);
}
// CC Topology Stack Functions
CCTopologyStack::CCTopologyStack(std::string name, std::string title, TH1* hist) {
fName = name;
fTitle = title;
AddMode(0, "CC0pi", "CC-0#pi", kBlue, 2, 1001);
AddMode(1, "CC1pip", "CC-1#pi^{+}", kRed, 2, 1001);
AddMode(2, "CC1pim", "CC-1#pi^{-}", kGreen, 2, 1001);
AddMode(3, "CC1pi0", "CC-1#pi^{0}", kYellow, 2, 1001);
AddMode(4, "CCNpi", "CC-N#pi", kGray, 2, 1001);
AddMode(5, "CCOther", "CC-Other", kViolet, 2, 1001);
AddMode(6, "NC", "NC", kMagenta, 2, 1001);
AddMode(7, "UNDEFINED", "Undefined", kBlack, 2, 1001);
}
void CCTopologyStack::Fill(FitEvent* evt, double x, double y, double z, double weight) {
int index = GetIndexFromEventParticles(evt);
StackBase::FillStack(index, x, y, z, weight);
}
int CCTopologyStack::GetIndexFromEventParticles(FitEvent* evt) {
int nleptons = evt->NumFSLeptons();
int npiplus = evt->NumFSParticle(211);
int npineg = evt->NumFSParticle(-211);
int npi0 = evt->NumFSParticle(111);
int npions = npiplus + npineg + npi0;
if (nleptons == 1) {
if (npions == 0) {
return 0; // CC0pi
} else if (npions == 1) {
if (npiplus == 1) return 1; //CC1pi+
else if (npineg == 1) return 2; //CC1pi-
else if (npi0 == 1) return 3; //CC1pi0
} else if (npions > 1) {
return 4; // CCNpi
}
} else if (nleptons > 1) {
return 5; // CCOther
} else if (nleptons < 1) {
return 6;
}
return 7; // Undefined?
}
diff --git a/src/Utils/StandardStacks.h b/src/Utils/StandardStacks.h
index 1264bf8..4603608 100644
--- a/src/Utils/StandardStacks.h
+++ b/src/Utils/StandardStacks.h
@@ -1,123 +1,133 @@
#ifndef STANDARD_STACKS_H
#define STANDARD_STACKS_H
#include "StackBase.h"
#include "FitEvent.h"
#include "BaseFitEvt.h"
/// Single stack class, for consistent handling of TH1* and StackBase* histograms.
class FakeStack : public StackBase {
public:
/// Sets Template to exact pointer to hist without cloning.
FakeStack(TH1* hist) ;
+ /// Sets NULL template and saves TF1 object instead
+ FakeStack(TF1* f);
+
+ /// Sets NULL template and saves TGraph object instead
+ FakeStack(TGraph* gr);
+
/// Unlinks pointer to original histogram
~FakeStack();
/// Fills the normal fTemplate histogram
void Fill(double x, double y = 1.0, double z = 1.0, double weight = 1.0);
/// Scales the normal fTemplate histogram
void Scale(double norm, std::string opt);
/// Resets the normal fTemplate histogram
void Reset();
/// Writes the normal fTemplate histogram
void Write();
+
+ std::string fFakeType;
+ TGraph* fTGraphObject;
+ TF1* fTF1Object;
};
/// True Mode stack, an array of neut true interaction channels
class TrueModeStack : public StackBase {
public:
/// Main constructor listing true mode categories.
TrueModeStack(std::string name, std::string title, TH1* hist);
/// List to convert Modes to Index.
/// Should be kept in sync with constructor.
int ConvertModeToIndex(int mode);
/// Fill fromgiven mode integer
void Fill(int mode, double x, double y = 1.0, double z = 1.0, double weight = 1.0);
/// Extracts Mode from FitEvent and fills
void Fill(FitEvent* evt, double x, double y = 1.0, double z = 1.0, double weight = 1.0);
/// Extracts Mode from BaseFitEvt
void Fill(BaseFitEvt* evt, double x, double y = 1.0, double z = 1.0, double weight = 1.0);
};
/// True Mode NuNuBar stack, array of true channels split by nu/nubar
class NuNuBarTrueModeStack : public StackBase {
public:
/// Main constructor listing true mode categories.
NuNuBarTrueModeStack(std::string name, std::string title, TH1* hist);
/// List to convert Modes to Index.
/// Should be kept in sync with constructor.
int ConvertModeToIndex(int mode);
/// Fill fromgiven mode integer
void Fill(int species, int mode, double x, double y = 1.0, double z = 1.0, double weight = 1.0);
};
/// Species stack to look at contributions from multiple beam leptons
class BeamSpeciesStack : public StackBase {
public:
/// main constructor listing beam categories
BeamSpeciesStack(std::string name, std::string title, TH1* hist);
/// Fills stack using neutrino species
void Fill(int species, double x, double y = 1.0, double z = 1.0, double weight = 1.0);
/// List converts PDG Beam to index.
/// Should be kept in sync with constructor.
int ConvertSpeciesToIndex(int species);
};
/// Species stack to look at contributions from multiple beam leptons
class TargetTypeStack : public StackBase {
public:
/// main constructor listing beam categories
TargetTypeStack(std::string name, std::string title, TH1* hist);
/// Fills stack using target pdg
void Fill(int pdg, double x, double y = 1.0, double z = 1.0, double weight = 1.0);
/// List converts PDG Beam to index.
/// Should be kept in sync with constructor.
int ConvertPDGToIndex(int pdg);
/// Specie empty histograms to not be included in final stack
bool IncludeInStack(TH1* hist);
};
/// CC Topology Stack, categories defined by final state particle counts.
class CCTopologyStack : public StackBase {
public:
/// main constructor listing beam categories
CCTopologyStack(std::string name, std::string title, TH1* hist);
/// Fills stack using FitEvent
void Fill(FitEvent* evt, double x, double y = 1.0, double z = 1.0, double weight = 1.0);
/// Extracts index from evt particle counts
int GetIndexFromEventParticles(FitEvent* evt);
};
#endif
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Dec 21, 3:45 PM (1 d, 14 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4023333
Default Alt Text
(19 KB)
Attached To
rNUISANCEGIT nuisancegit
Event Timeline
Log In to Comment