fDeltaPt(0.01),
fSelectAll(kFALSE),
fDecayer(0),
- fForceConv(kFALSE)
+ fForceConv(kFALSE),
+ fKeepParent(kFALSE),
+ fKeepIfOneChildSelected(kFALSE)
{
// Default constructor
}
fDeltaPt(0.01),
fSelectAll(kFALSE),
fDecayer(0),
- fForceConv(kFALSE)
+ fForceConv(kFALSE),
+ fKeepParent(kFALSE),
+ fKeepIfOneChildSelected(kFALSE)
{
// Constructor using number of particles parameterisation id and library
fName = "Param";
fDeltaPt(0.01),
fSelectAll(kFALSE),
fDecayer(0),
- fForceConv(kFALSE)
+ fForceConv(kFALSE),
+ fKeepParent(kFALSE),
+ fKeepIfOneChildSelected(kFALSE)
{
// Constructor using parameterisation id and number of particles
//
fDeltaPt(0.01),
fSelectAll(kFALSE),
fDecayer(0),
- fForceConv(kFALSE)
+ fForceConv(kFALSE),
+ fKeepParent(kFALSE),
+ fKeepIfOneChildSelected(kFALSE)
{
// Constructor
// Gines Martinez 1/10/99
pSelected[i] = 1;
ncsel++;
} else {
- ncsel=-1;
- break;
+ if(!fKeepIfOneChildSelected){
+ ncsel=-1;
+ break;
+ }
} // child kine cuts
} else {
pSelected[i] = 1;
} // if decay products
Int_t iparent;
- if ((fCutOnChild && ncsel >0) || !fCutOnChild){
- ipa++;
+
+ if (fKeepParent || (fCutOnChild && ncsel >0) || !fCutOnChild){
//
// Parent
KeepTrack(nt);
fNprimaries++;
+ //but count is as "generated" particle" only if it produced child(s) within cut
+ if ((fCutOnChild && ncsel >0) || !fCutOnChild){
+ ipa++;
+ }
+
//
// Decay Products
//