50 fVariableArrangement(0),
63 const std::vector<Float_t>& tg,
71 fVariableArrangement(0),
74 fBoostWeight(boostweight),
84 const std::vector<Float_t>& tg,
85 const std::vector<Float_t>& vi,
93 fVariableArrangement(0),
96 fBoostWeight(boostweight),
113 fVariableArrangement(0),
116 fBoostWeight(boostweight),
129 fSpectators(evdyn->size()-nvar),
130 fVariableArrangement(0),
144 : fValues(event.fValues),
145 fValuesDynamic(event.fValuesDynamic),
146 fTargets(event.fTargets),
147 fSpectators(event.fSpectators),
148 fVariableArrangement(event.fVariableArrangement),
150 fWeight(event.fWeight),
151 fBoostWeight(event.fBoostWeight),
152 fDynamic(event.fDynamic),
157 UInt_t nvar =
event.GetNVariables();
159 std::vector<Float_t*>::iterator itDyn=
event.fValuesDynamic->begin(), itDynEnd=
event.fValuesDynamic->end();
160 for (; itDyn!=itDynEnd && idx<nvar; ++itDyn){
166 for (; itDyn!=itDynEnd; ++itDyn){
182 delete fValuesDynamic;
191 fVariableArrangement =
m;
208 for (; itDyn!=itDynEnd && idx<nvar; ++itDyn){
210 fValues.push_back( value );
214 for (; itDyn!=itDynEnd; ++itDyn){
216 fSpectators.push_back( value );
221 fValuesDynamic =
NULL;
234 if (fVariableArrangement==0) {
235 retval = fDynamic ? ( *((*fValuesDynamic).at(ivar)) ) : fValues.at(ivar);
238 UInt_t mapIdx = (*fVariableArrangement)[ivar];
242 retval = *((*fValuesDynamic).at(mapIdx));
246 retval = ( mapIdx<fValues.size() ) ? fValues[mapIdx] : fSpectators[mapIdx-fValues.size()];
258 if (fDynamic)
return *(fValuesDynamic->at(GetNVariables()+ivar));
259 else return fSpectators.at(ivar);
267 if (fVariableArrangement==0) {
271 for (std::vector<Float_t*>::const_iterator it = fValuesDynamic->begin(), itEnd=fValuesDynamic->end()-GetNSpectators();
274 fValues.push_back( val );
281 for (
UInt_t i=0; i< fVariableArrangement->size(); i++){
282 mapIdx = (*fVariableArrangement)[i];
283 fValues.push_back(*((*fValuesDynamic).at(mapIdx)));
289 fValuesRearranged.clear();
290 for (
UInt_t i=0; i< fVariableArrangement->size(); i++){
291 mapIdx = (*fVariableArrangement)[i];
292 fValuesRearranged.push_back(fValues.at(mapIdx));
294 return fValuesRearranged;
307 if (fVariableArrangement==0)
return fValues.size();
308 else return fVariableArrangement->size();
316 return fTargets.size();
327 if (fVariableArrangement==0)
return fSpectators.size();
328 else return fValues.size()-fVariableArrangement->size();
337 if ((fDynamic ?( (*fValuesDynamic).size() ) : fValues.size())<=ivar)
338 (fDynamic ?( (*fValuesDynamic).resize(ivar+1) ) : fValues.resize(ivar+1));
340 (fDynamic ?( *(*fValuesDynamic)[ivar] ) : fValues[ivar])=val;
348 o << *
this << std::endl;
356 if (fTargets.size() <= itgt) fTargets.resize( itgt+1 );
357 fTargets.at(itgt) =
value;
365 if (fSpectators.size() <= ivar) fSpectators.resize( ivar+1 );
366 fSpectators.at(ivar) =
value;
378 return (fgIgnoreNegWeightsInTraining && fgIsTraining && fWeight < 0) ? 0. : fWeight*fBoostWeight;
397 fgIgnoreNegWeightsInTraining=b;
405 os <<
"Variables [" <<
event.fValues.size() <<
"]:";
406 for (
UInt_t ivar=0; ivar<
event.fValues.size(); ++ivar)
407 os <<
" " << std::setw(10) <<
event.GetValue(ivar);
408 os <<
", targets [" <<
event.fTargets.size() <<
"]:";
409 for (
UInt_t ivar=0; ivar<
event.fTargets.size(); ++ivar)
410 os <<
" " << std::setw(10) <<
event.GetTarget(ivar);
411 os <<
", spectators ["<<
event.fSpectators.size() <<
"]:";
412 for (
UInt_t ivar=0; ivar<
event.fSpectators.size(); ++ivar)
413 os <<
" " << std::setw(10) <<
event.GetSpectator(ivar);
414 os <<
", weight: " <<
event.GetWeight();
415 os <<
", class: " <<
event.GetClass();
void SetVariableArrangement(std::vector< UInt_t > *const m) const
set the variable arrangement
UInt_t GetNTargets() const
accessor to the number of targets
Float_t GetSpectator(UInt_t ivar) const
return spectator content
std::vector< Float_t > fValues
std::vector< Float_t * > * fValuesDynamic
std::vector< Float_t > fSpectators
UInt_t GetNSpectators() const
accessor to the number of spectators
static Bool_t fgIgnoreNegWeightsInTraining
Double_t GetWeight() const
return the event weight - depending on whether the flag IgnoreNegWeightsInTraining is or not...
Float_t GetValue(UInt_t ivar) const
return value of i'th variable
static void SetIsTraining(Bool_t)
when this static function is called, it sets the flag whether events with negative event weight shoul...
TClass * fClass
pointer to the foreign object
void SetVal(UInt_t ivar, Float_t val)
set variable ivar to val
UInt_t GetNVariables() const
accessor to the number of variables
std::vector< Float_t > fTargets
void SetSpectator(UInt_t ivar, Float_t value)
set spectator value (dimension ivar) to value
static Bool_t fgIsTraining
void SetTarget(UInt_t itgt, Float_t value)
set the target value (dimension itgt) to value
std::ostream & operator<<(std::ostream &os, const BinaryTree &tree)
print the tree recursinvely using the << operator
void Print(std::ostream &o) const
print method
static void SetIgnoreNegWeightsInTraining(Bool_t)
when this static function is called, it sets the flag whether events with negative event weight shoul...
void CopyVarValues(const Event &other)
copies only the variable values
~Event()
Event destructor.
std::vector< Float_t > & GetValues()