1 #ifndef TRACKFITTERLIKELIHOODPROCESSOR_H
2 #define TRACKFITTERLIKELIHOODPROCESSOR_H 1
4 #include "marlin/Processor.h"
6 #include "TrackFitterBase.h"
8 #include "TPCConditionsListener.h"
14 #include "Minuit2/FCNBase.h"
104 virtual double operator()(
const std::vector<double>& x)
const;
114 virtual double Up()
const;
119 virtual void check(lcio::LCEvent *evt);
131 void calculate_expected_charge_distribution(TrackImpl &expected_track,
double sigma0)
const;
135 void calculate_expected_charge_distribution_homogeneous_polar(IMPL::TrackImpl&,
const double)
const;
139 void calculate_expected_charge_distribution_homogeneous_cartesian(IMPL::TrackImpl&,
const double)
const;
143 void calculate_expected_charge_distribution_non_homogeneous_polar(IMPL::TrackImpl&,
const double)
const;
147 void calculate_expected_charge_distribution_non_homogeneous_cartesian(IMPL::TrackImpl&,
const double)
const;
151 void calculate_expected_charge_distribution_polar_row(IMPL::TrackerHitImpl&,
const EVENT::TrackerHit &data_hit,
const double,
const double,
const double)
const;
155 void calculate_expected_charge_distribution_cartesian_row(IMPL::TrackerHitImpl&,
const EVENT::TrackerHit &data_hit,
const double,
const double,
const double)
const;
159 const double calculate_charge_distribution_log_likelihood(
const EVENT::Track&)
const;
164 const double calculate_primary_ionization_location_log_likelihood(
const Track&)
const;
169 IMPL::TrackImpl find_most_likely_fit(EVENT::Track* seed_track);
179 double calculate_expected_distribution(
double b,
double phi,
double sigma,
180 double height,
double width)
const;
184 std::string _seed_track_collection_name;
188 std::string _fitted_track_collection_name;
192 std::string _tpc_conditions_collection_name;
206 double _gas_trans_diffusion_constant;
210 double _gas_trans_defocussing_constant;
218 EVENT::Track* _current_seed_track;
222 double _readout_electronics_inner_z;
230 bool _produce_tuples;
234 AIDA::ITuple *_track_result_tuples;
242 double _drift_velocity;
247 double _path_integral_step_size;
251 double _tpc_outer_radius;
255 bool _fit_nonhomogeneous_fields;
259 int _omega_order_of_magnitude;
260 int _tanLambda_order_of_magnitude;
284 #endif // TRACKFITTERLIKELIHOODPROCESSOR_H
void processRunHeader(lcio::LCRunHeader *run)
Called once per run to process the event's header.
Definition: TrackFitterLikelihoodProcessor.cc:209
virtual void check(lcio::LCEvent *evt)
Called for every event - right after processEvent() has been called for all processors.
Definition: TrackFitterLikelihoodProcessor.cc:1995
virtual double Up() const
Error definition of the function.
Definition: TrackFitterLikelihoodProcessor.cc:583
virtual void end()
Called after data processing for clean up in the inverse order of the init() method so that resources...
Definition: TrackFitterLikelihoodProcessor.cc:2002
virtual void processEvent(lcio::LCEvent *evt)
Called for every event - the working horse.
Definition: TrackFitterLikelihoodProcessor.cc:425
void init()
Called at the begin of the job before anything is read.
Definition: TrackFitterLikelihoodProcessor.cc:187
marlin::Processor * newProcessor()
Return a new instance of this processor.
Definition: TrackFitterLikelihoodProcessor.cc:1988
TrackFitterLikelihoodProcessor()
Default constructor.
Definition: TrackFitterLikelihoodProcessor.cc:76
Helper Class which provides access to the TPC conditions for every event.
Definition: TPCConditionsListener.h:37
~TrackFitterLikelihoodProcessor()
Destructor.
Definition: TrackFitterLikelihoodProcessor.cc:181
virtual double operator()(const std::vector< double > &x) const
The meaning of the vector of parameters is of course defined by the user, who uses the values of thos...
Definition: TrackFitterLikelihoodProcessor.cc:509
TrackFitterLikelihoodProcessor : This class takes post-amplified data from a readout pad and reconstr...
Definition: TrackFitterLikelihoodProcessor.h:49