Belle II Software  release-05-02-19
TOPreco.h
1 //*****************************************************************************
2 //-----------------------------------------------------------------------------
3 // Fast simulation and reconstruction package for TOP counter (F77 core)
4 // M. Staric, April-2009
5 //-----------------------------------------------------------------------------
6 //
7 // TOPreco.h
8 // C++ interface to F77 functions: reconstruction
9 //-----------------------------------------------------------------------------
10 //*****************************************************************************
11 
12 #pragma once
13 
14 #include <top/reconstruction/TOPtrack.h>
15 #include <top/dbobjects/TOPCalChannelMask.h>
16 #include <top/dbobjects/TOPCalChannelT0.h>
17 #include <top/dbobjects/TOPCalTimebase.h>
18 #include <framework/database/DBObjPtr.h>
19 #include <top/dataobjects/TOPAsicMask.h>
20 
21 namespace Belle2 {
26  namespace TOP {
27 
31  enum {c_Local = 0, c_Global = 1};
32 
36  class TOPreco {
37  public:
44  enum PDFoption {c_Rough = 0, c_Fine, c_Optimal};
45 
51  enum StoreOption {c_Reduced, c_Full};
52 
61  TOPreco(int NumHyp, double Masses[], int pdgCodes[],
62  double BkgPerModule = 0, double ScaleN0 = 1);
63 
69  static void setChannelMask(const DBObjPtr<TOPCalChannelMask>& mask,
70  const TOPAsicMask& asicMask);
71 
76  static void setUncalibratedChannelsOff(const DBObjPtr<TOPCalChannelT0>& channelT0);
77 
82  static void setUncalibratedChannelsOff(const DBObjPtr<TOPCalTimebase>& timebase);
83 
87  static void printChannelMask();
88 
92  static void setChannelEffi();
93 
99  void setMass(double mass, int pdg);
100 
112  void setTimeWindow(double Tmin, double Tmax);
113 
119  void getTimeWindow(double& Tmin, double& Tmax);
120 
127  void setPDFoption(PDFoption opt, int NP = 0, int NC = 0);
128 
133  void setStoreOption(StoreOption opt);
134 
138  void clearData();
139 
147  int addData(int moduleID, int pixelID, double time, double timeError);
148 
152  int getDataSize();
153 
159  void reconstruct(const TOPtrack& trk, int pdg = 0);
160 
165  int getFlag();
166 
172  double getExpectedPhotons(int i = 0);
173 
178  double getExpectedBG();
179 
184  int getNumOfPhotons();
185 
191  double getLogL(int i = 0);
192 
200  void getLogL(int Size, double LogL[], double ExpNphot[], int& Nphot);
201 
211  double getLogL(double timeShift, double timeMin, double timeMax, double sigma = 0.0);
212 
222  void getLogL(double timeShift, double timeMin, double timeMax, double sigma,
223  float* logL);
224 
235  void getTrackHit(int LocGlob, double R[3], double Dir[3], double& Len,
236  double& Tlen, double& Mom, int& moduleID);
237 
242  void dumpLogL(int NumHyp);
243 
248  void dumpTrackHit(int LocGlob);
249 
254  int getPullSize();
255 
266  void getPull(int K, int& pixelID, float& T, float& T0, float& Wid,
267  float& PhiCer, float& Wt);
268 
277  double getPDF(int pixelID, double t, double mass, int PDG, double jitter = 0);
278 
284  void setBeta(double beta);
285 
290  double getBeta() const {return m_beta;};
291 
297  void redoPDF(double mass, int PDG);
298 
304  int getNumofPDFPeaks(int pixelID) const;
305 
311  void getPDFPeak(int pixelID, int k,
312  float& position, float& width, float& numPhotons) const;
313 
319  float getBkgLevel(int pixelID) const;
320 
327  int getPDFPeakType(int pixelID, int k) const;
328 
335  float getPDFPeakFic(int pixelID, int k) const;
336 
343  float getPDFPeakE(int pixelID, int k) const;
344 
351  float getPDFPeakSigE(int pixelID, int k) const;
352 
359  int getPDFPeakNx(int pixelID, int k) const;
360 
367  int getPDFPeakNy(int pixelID, int k) const;
368 
375  int getPDFPeakNxm(int pixelID, int k) const;
376 
383  int getPDFPeakNym(int pixelID, int k) const;
384 
391  int getPDFPeakNxe(int pixelID, int k) const;
392 
399  int getPDFPeakNye(int pixelID, int k) const;
400 
407  float getPDFPeakXD(int pixelID, int k) const;
408 
415  float getPDFPeakYD(int pixelID, int k) const;
416 
423  float getPDFPeakKxe(int pixelID, int k) const;
424 
431  float getPDFPeakKye(int pixelID, int k) const;
432 
439  float getPDFPeakKze(int pixelID, int k) const;
440 
447  float getPDFPeakKxd(int pixelID, int k) const;
448 
455  float getPDFPeakKyd(int pixelID, int k) const;
456 
463  float getPDFPeakKzd(int pixelID, int k) const;
464 
465  private:
466 
480  void reconstruct(double X, double Y, double Z, double Tlen,
481  double Px, double Py, double Pz, int Q,
482  int pdg = 0, int moduleID = 0);
483 
484  int m_hypID = 0;
485  double m_beta = 0;
487  };
488 
489  } // TOP namespace
491 } // Belle2 namespace
492 
Belle2::TOP::TOPreco::getPDFPeakNy
int getPDFPeakNy(int pixelID, int k) const
Returns total number of reflections in y of PDF peak.
Definition: TOPreco.cc:505
Belle2::TOP::TOPreco::getFlag
int getFlag()
Return status.
Definition: TOPreco.cc:278
Belle2::TOP::TOPreco::setUncalibratedChannelsOff
static void setUncalibratedChannelsOff(const DBObjPtr< TOPCalChannelT0 > &channelT0)
Set uncalibrated channels off.
Definition: TOPreco.cc:107
Belle2::TOP::TOPreco::getNumOfPhotons
int getNumOfPhotons()
Return number of measured photons.
Definition: TOPreco.cc:297
Belle2::TOP::TOPreco::getExpectedPhotons
double getExpectedPhotons(int i=0)
Return expected number of photons (signal + background) for i-th mass hypothesis.
Definition: TOPreco.cc:284
Belle2::TOP::TOPreco::redoPDF
void redoPDF(double mass, int PDG)
Re-calculate PDF for a given particle mass using option c_Fine.
Definition: TOPreco.cc:444
Belle2::TOP::TOPreco::getTrackHit
void getTrackHit(int LocGlob, double R[3], double Dir[3], double &Len, double &Tlen, double &Mom, int &moduleID)
Return track hit at the bar in Local or Global frame.
Definition: TOPreco.cc:342
Belle2::TOP::TOPreco::reconstruct
void reconstruct(const TOPtrack &trk, int pdg=0)
Run reconstruction for a given track.
Definition: TOPreco.cc:268
Belle2::TOP::TOPreco::getPDFPeakNxe
int getPDFPeakNxe(int pixelID, int k) const
Returns number of reflections in x in prism.
Definition: TOPreco.cc:526
Belle2::TOP::TOPreco::getPDFPeakNxm
int getPDFPeakNxm(int pixelID, int k) const
Returns number of reflections in x before mirror.
Definition: TOPreco.cc:512
Belle2::TOP::TOPtrack
Class to hold reconstructed track, interface to fortran.
Definition: TOPtrack.h:42
Belle2::TOP::TOPreco::getPDFPeakNx
int getPDFPeakNx(int pixelID, int k) const
Returns total number of reflections in x of PDF peak.
Definition: TOPreco.cc:498
Belle2::TOP::TOPreco::m_beta
double m_beta
beta value, if set
Definition: TOPreco.h:485
Belle2::TOP::TOPreco::setChannelEffi
static void setChannelEffi()
Set relative efficiencies of pixels.
Definition: TOPreco.cc:155
Belle2::TOP::TOPreco::printChannelMask
static void printChannelMask()
Print channel mask.
Definition: TOPreco.cc:150
Belle2::TOP::TOPreco::getPDFPeakKxe
float getPDFPeakKxe(int pixelID, int k) const
Returns photon reconstructed direction in x at emission.
Definition: TOPreco.cc:554
Belle2::TOP::TOPreco::getNumofPDFPeaks
int getNumofPDFPeaks(int pixelID) const
Returns number of peaks for given pixel describing signal PDF.
Definition: TOPreco.cc:450
Belle2::TOP::TOPreco::addData
int addData(int moduleID, int pixelID, double time, double timeError)
Add data.
Definition: TOPreco.cc:214
Belle2::TOP::TOPreco::getPDFPeakKyd
float getPDFPeakKyd(int pixelID, int k) const
Returns photon reconstructed direction in y at detection.
Definition: TOPreco.cc:582
Belle2::TOP::TOPreco::getDataSize
int getDataSize()
Return size of data list.
Definition: TOPreco.cc:245
Belle2::TOP::TOPreco::getPDFPeakYD
float getPDFPeakYD(int pixelID, int k) const
Returns unfolded y position of pixel.
Definition: TOPreco.cc:547
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::TOP::TOPreco
TOP reconstruction: this class provides interface to fortran code.
Definition: TOPreco.h:36
Belle2::TOP::TOPreco::setMass
void setMass(double mass, int pdg)
Set mass of the particle hypothesis (overrides settings in the constructor)
Definition: TOPreco.cc:172
Belle2::TOP::TOPreco::getTimeWindow
void getTimeWindow(double &Tmin, double &Tmax)
Returns time window for photons.
Definition: TOPreco.cc:187
Belle2::TOP::TOPreco::clearData
void clearData()
Clear data list.
Definition: TOPreco.cc:208
Belle2::TOP::TOPreco::getPDFPeakXD
float getPDFPeakXD(int pixelID, int k) const
Returns unfolded x position of pixel.
Definition: TOPreco.cc:540
Belle2::TOP::TOPreco::getPDFPeakNye
int getPDFPeakNye(int pixelID, int k) const
Returns number of reflections in y in prism.
Definition: TOPreco.cc:533
Belle2::TOP::TOPreco::getLogL
double getLogL(int i=0)
Return log likelihood for i-th mass hypothesis.
Definition: TOPreco.cc:303
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TOP::TOPreco::getPDFPeakType
int getPDFPeakType(int pixelID, int k) const
Returns type of the k-th PDF peak for given pixel.
Definition: TOPreco.cc:470
Belle2::TOP::TOPreco::m_hypID
int m_hypID
true hypothesis ID
Definition: TOPreco.h:484
Belle2::TOP::TOPreco::dumpTrackHit
void dumpTrackHit(int LocGlob)
Print track to std output.
Definition: TOPreco.cc:386
Belle2::TOP::TOPreco::getPDFPeakKze
float getPDFPeakKze(int pixelID, int k) const
Returns photon reconstructed direction in z at emission.
Definition: TOPreco.cc:568
Belle2::TOP::TOPreco::getPDFPeakNym
int getPDFPeakNym(int pixelID, int k) const
Returns number of reflections in y before mirror.
Definition: TOPreco.cc:519
Belle2::TOP::TOPreco::setBeta
void setBeta(double beta)
Set track beta (for beta resolution studies) if beta>0 this value is used instead of beta from moment...
Definition: TOPreco.cc:437
Belle2::TOP::TOPreco::PDFoption
PDFoption
Options for PDF: rough: no dependence on y fine: y dependent PDF everywhere optimal: y dependent PDF ...
Definition: TOPreco.h:44
Belle2::TOP::TOPreco::getPDFPeakSigE
float getPDFPeakSigE(int pixelID, int k) const
Returns photon energy spread of PDF peak.
Definition: TOPreco.cc:491
Belle2::TOP::TOPreco::getPull
void getPull(int K, int &pixelID, float &T, float &T0, float &Wid, float &PhiCer, float &Wt)
Get pulls: K-th pull.
Definition: TOPreco.cc:420
Belle2::TOP::TOPreco::getExpectedBG
double getExpectedBG()
Return expected number of background photons.
Definition: TOPreco.cc:291
Belle2::TOPAsicMask
Class to store bit fields of masked ASICs, as reported in raw data.
Definition: TOPAsicMask.h:33
Belle2::TOP::TOPreco::getPDFPeak
void getPDFPeak(int pixelID, int k, float &position, float &width, float &numPhotons) const
Returns k-th PDF peak for given pixel describing signal PDF.
Definition: TOPreco.cc:456
Belle2::TOP::TOPreco::getPDFPeakKzd
float getPDFPeakKzd(int pixelID, int k) const
Returns photon reconstructed direction in z at detection.
Definition: TOPreco.cc:589
Belle2::TOP::TOPreco::getPDFPeakKxd
float getPDFPeakKxd(int pixelID, int k) const
Returns photon reconstructed direction in x at detection.
Definition: TOPreco.cc:575
Belle2::TOP::TOPreco::getPDFPeakFic
float getPDFPeakFic(int pixelID, int k) const
Returns Cerenkov azimuthal angle of PDF peak.
Definition: TOPreco.cc:477
Belle2::TOP::TOPreco::dumpLogL
void dumpLogL(int NumHyp)
Print log likelihoods to std output.
Definition: TOPreco.cc:356
Belle2::TOP::TOPreco::getBkgLevel
float getBkgLevel(int pixelID) const
Returns estimated background level for given pixel.
Definition: TOPreco.cc:464
Belle2::TOP::TOPreco::setStoreOption
void setStoreOption(StoreOption opt)
Sets option for storing PDF parameters in Fortran common TOP_PIK.
Definition: TOPreco.cc:202
Belle2::TOP::TOPreco::TOPreco
TOPreco(int NumHyp, double Masses[], int pdgCodes[], double BkgPerModule=0, double ScaleN0=1)
Constructor.
Definition: TOPreco.cc:65
Belle2::TOP::TOPreco::getPullSize
int getPullSize()
Get pulls: size.
Definition: TOPreco.cc:413
Belle2::TOP::TOPreco::getPDF
double getPDF(int pixelID, double t, double mass, int PDG, double jitter=0)
Return PDF for pixel pixelID at time t for mass hypothesis mass.
Definition: TOPreco.cc:428
Belle2::TOP::TOPreco::getBeta
double getBeta() const
Return track beta.
Definition: TOPreco.h:290
Belle2::TOP::TOPreco::getPDFPeakE
float getPDFPeakE(int pixelID, int k) const
Returns photon energy of PDF peak.
Definition: TOPreco.cc:484
Belle2::TOP::TOPreco::getPDFPeakKye
float getPDFPeakKye(int pixelID, int k) const
Returns photon reconstructed direction in y at emission.
Definition: TOPreco.cc:561
Belle2::TOP::TOPreco::StoreOption
StoreOption
Options for storing PDF parameters in Fortran common TOP_PIK reduced: only position,...
Definition: TOPreco.h:51
Belle2::TOP::TOPreco::setPDFoption
void setPDFoption(PDFoption opt, int NP=0, int NC=0)
Sets PDF option.
Definition: TOPreco.cc:196
Belle2::TOP::TOPreco::setTimeWindow
void setTimeWindow(double Tmin, double Tmax)
Set time window for photons.
Definition: TOPreco.cc:180
Belle2::TOP::TOPreco::setChannelMask
static void setChannelMask(const DBObjPtr< TOPCalChannelMask > &mask, const TOPAsicMask &asicMask)
Set channel mask.
Definition: TOPreco.cc:88