1 #ifndef RecoTauTag_TauTagTools_PFTauDiscriminantBase
2 #define RecoTauTag_TauTagTools_PFTauDiscriminantBase
36 namespace PFTauDiscriminants {
38 class PFTauDiscriminantManager;
56 virtual void fillMVA(std::vector<PhysicsTools::Variable::Value>& mvaHolder)
const = 0;
94 edm::LogError(
"DiscriminantBase") <<
"Error in DiscriminantBase - trying to compute discriminants on null PFTauDecayMode pointer!";
96 size_t numberOfResultsReturned =
result_.size();
97 if(!numberOfResultsReturned)
104 edm::LogWarning(
"PFTauDiscriminants::DiscriminantBase") <<
"Warning, multiple discriminant values recieved for a non-multiple branch, taking only the first!";
114 edm::LogInfo(
"PFTauDiscriminantBase") <<
"Branching TTree: " << theTree->GetName() <<
" with full class name (bronch)";
119 edm::LogInfo(
"PFTauDiscriminantBase") <<
"Branching TTree: " << theTree->GetName() <<
" with struct style branch (leaflist)";
126 void fillMVA(std::vector<PhysicsTools::Variable::Value>& mvaHolder)
const {
void compute(PFTauDiscriminantManager *input)
DiscriminantBase(std::string name, std::string rootTypeName, bool branchAsSimpleDataType, bool isMultiple, T defaultValue)
PhysicsTools::AtomicId theAtomicId() const
std::string rootTypeName_
PhysicsTools::AtomicId discriminantName_
std::vector< T > * resultPtr_
void branchTree(TTree *theTree)
add a branch to a ttree corresponding to this variable
Discriminant(std::string name, std::string rootTypeName, bool branchAsSimpleDataType)
virtual void fillMVA(std::vector< PhysicsTools::Variable::Value > &mvaHolder) const =0
bool branchAsSimpleDataType_
virtual void doComputation(PFTauDiscriminantManager *input, std::vector< T > &result)=0
virtual ~DiscriminantBase()
virtual void compute(PFTauDiscriminantManager *input)=0
std::string rootTypeName() const
virtual void branchTree(TTree *theTree)=0
add a branch to a ttree corresponding to this variable
bool branchSimply() const
determines whether or not to use simple struct like branching or custom class branching (e...
virtual void setNullResult(PFTauDiscriminantManager *input)
std::vector< T >::const_iterator myVectorIterator
void fillMVA(std::vector< PhysicsTools::Variable::Value > &mvaHolder) const
virtual void setNullResult(PFTauDiscriminantManager *input)=0