9 combinationDone(
false),
11 theValidWeightSum(0.),
12 theInvalidWeightSum(0.)
41 <<
"MultiTrajectoryStateAssembler: trying to add states after combination";
46 throw cms::Exception(
"LogicError") <<
"MultiTrajectoryStateAssembler: trying to add invalid state";
61 <<
"MultiTrajectoryStateAssembler: trying to add states after combination";
67 double pzFirst =
theStates.empty() ? 0. :
theStates.front().localParameters().pzSign();
68 for ( MultiTSOS::const_iterator
i=states.begin();
69 i!=states.end();
i++ ) {
70 if ( !(
i->isValid()) )
72 <<
"MultiTrajectoryStateAssembler: trying to add invalid state";
77 pzFirst*
i->localParameters().pzSign()<0. )
thePzError =
true;
173 reweightedStates.reserve(
theStates.size());
174 for ( MultiTSOS::const_iterator
i=
theStates.begin();
176 double oldWeight =
i->weight();
178 i->localParameters(),
181 &(
i->globalParameters().magneticField()),
195 if ( totalWeight == 0. ) {
205 for ( MultiTSOS::iterator
i=
theStates.begin();
227 for ( MultiTSOS::const_iterator is=
theStates.begin();
229 meanPz += is->weight()*is->localParameters().pzSign();
243 for ( MultiTSOS::const_iterator is=oldStates.begin();
244 is!=oldStates.end(); is++ ) {
245 if ( meanPz*is->localParameters().pzSign()>=0. ) {
void addState(const TrajectoryStateOnSurface)
double theInvalidWeightSum
void addStateVector(const MultiTSOS &)
void removeSmallWeights()
void removeWrongPz()
Removes states with local p_z != average p_z.
float minFractionalWeight
void addInvalidState(const double)
Adds (the weight of an) invalid state to the list.
TrajectoryStateOnSurface reweightedCombinedState(const double) const
TrajectoryStateOnSurface TSOS
MultiTrajectoryStateAssembler()
volatile std::atomic< bool > shutdown_flag false
std::vector< TrajectoryStateOnSurface > MultiTSOS
bool prepareCombinedState()
Preparation of combined state (cleaning & sorting)
std::vector< TrajectoryStateOnSurface > components() const
TrajectoryStateOnSurface combinedState()
bool invalidCombinedState() const
Checks status of combined state.