FEDRA emulsion software from the OPERA Collaboration
EdbSEQ.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbSEQ
2 #define ROOT_EdbSEQ
3 #include "TObject.h"
4 #include "TVector2.h"
5 #include "TF1.h"
6 #include "EdbSigma.h"
7 #include "EdbCell1.h"
8 #include "EdbPattern.h"
9 
10 //---------------------------------------------------------------------------
11 class EdbSEQ : public EdbSigma
12 {
13 
14  public:
15  Double_t eS0mt; // = 270.*340.; // area unit for Nseg calculation
16  Double_t eNsigma; //=4
17  Double_t eArea; // effective area of the pattern to be equalized
18 
19  int eNP; // number of points for the functions calculation
20 
21  TObjArray eExcludeThetaRange; // can be added EdbSegP with tx,ty, sigmaTX,sigmaTY to be excluded
23 
24  private:
25  TVector2 *eXLimits; // [min,max] area limits for the preselection procedure
26  TVector2 *eYLimits; // [min,max]
27  TVector2 *eThetaLimits; // [min,max]
28  TVector2 *eWLimits; // [min,max]
29  TVector2 *eChiLimits; // [min,max]
30 
31  public:
32  EdbSEQ() { ((EdbSigma*)this)->Set0(); Set0();}
33  virtual ~EdbSEQ();
34 
35  void Set0();
36 
37  void SetXLimits(float xmin, float xmax) {SafeDelete(eXLimits); eXLimits=new TVector2(xmin,xmax);}
38  void SetYLimits(float ymin, float ymax) {SafeDelete(eYLimits); eYLimits=new TVector2(ymin,ymax);}
39  void SetWLimits(float wmin, float wmax) {SafeDelete(eWLimits); eWLimits=new TVector2(wmin,wmax);}
40  void SetThetaLimits(float tmin, float tmax) {SafeDelete(eThetaLimits); eThetaLimits=new TVector2(tmin,tmax);}
41  void SetChiLimits(float cmin, float cmax) {SafeDelete(eChiLimits); eChiLimits=new TVector2(cmin,cmax);}
42 
43  double DNmt(double t);
44  double FDNmt(double *x, double *par) {return DNmt(*x);}
45 
46  double DNbt(double t);
47  double FDNbt(double *x, double *par) {return DNbt(*x);}
48 
49  void CalculateDensityMT( EdbH1 &hEq );
50 
51  void PreSelection( EdbPattern &pi, TObjArray &po );
52 
53  void EqualizeMT(TObjArray &mti, TObjArray &mto, Double_t area);
54 
57  void ExcludeThetaRange(TObjArray &mti, TObjArray &mto);
59 
60  float Wmt(EdbSegP &s) { return s.W()*50. + s.DZ(); }
61 
62  TH1F *ThetaPlot(TObjArray &arr, const char *name="theta", const char *title="EdbSEQ theta distribution normalised to area");
63  TH1F *ThetaPlot(EdbPattern &p, const char *name="theta", const char *title="EdbSEQ theta distribution normalised to area");
64 
65  void Draw();
66  void PrintLimits();
67 
68  ClassDef(EdbSEQ,1) // segments equalizer
69 };
70 
71 #endif /* ROOT_EdbSEQ */
TTree * t
Definition: check_shower.C:4
Definition: EdbCell1.h:17
Definition: EdbPattern.h:280
Definition: EdbSEQ.h:12
void SetWLimits(float wmin, float wmax)
Definition: EdbSEQ.h:39
TObjArray eExcludeThetaRange
Definition: EdbSEQ.h:21
void CalculateDensityMT(EdbH1 &hEq)
Definition: EdbSEQ.cxx:135
Double_t eArea
Definition: EdbSEQ.h:17
TVector2 * eXLimits
Definition: EdbSEQ.h:25
Double_t eS0mt
Definition: EdbSEQ.h:15
TVector2 * eChiLimits
Definition: EdbSEQ.h:29
EdbSEQ()
Definition: EdbSEQ.h:32
void Draw()
Definition: EdbSEQ.cxx:110
TVector2 * eWLimits
Definition: EdbSEQ.h:28
double DNbt(double t)
Definition: EdbSEQ.cxx:95
void SetXLimits(float xmin, float xmax)
Definition: EdbSEQ.h:37
double DNmt(double t)
Definition: EdbSEQ.cxx:82
void AddExcludeThetaRange(EdbSegP &s)
Definition: EdbSEQ.cxx:187
void ExcludeThetaRange(TObjArray &mti, TObjArray &mto)
Definition: EdbSEQ.cxx:193
int eNP
Definition: EdbSEQ.h:19
virtual ~EdbSEQ()
Definition: EdbSEQ.cxx:21
EdbH1 eHEq
Definition: EdbSEQ.h:22
TVector2 * eYLimits
Definition: EdbSEQ.h:26
double FDNmt(double *x, double *par)
Definition: EdbSEQ.h:44
void EqualizeMT(TObjArray &mti, TObjArray &mto, Double_t area)
Definition: EdbSEQ.cxx:218
void PrintLimits()
Definition: EdbSEQ.cxx:47
TVector2 * eThetaLimits
Definition: EdbSEQ.h:27
void SetYLimits(float ymin, float ymax)
Definition: EdbSEQ.h:38
void PreSelection(EdbPattern &pi, TObjArray &po)
Definition: EdbSEQ.cxx:157
double FDNbt(double *x, double *par)
Definition: EdbSEQ.h:47
void SetChiLimits(float cmin, float cmax)
Definition: EdbSEQ.h:41
float Wmt(EdbSegP &s)
Definition: EdbSEQ.h:60
bool IsInsideThetaRange(EdbSegP *s)
Definition: EdbSEQ.cxx:204
TH1F * ThetaPlot(TObjArray &arr, const char *name="theta", const char *title="EdbSEQ theta distribution normalised to area")
Definition: EdbSEQ.cxx:66
void Set0()
Definition: EdbSEQ.cxx:31
void SetThetaLimits(float tmin, float tmax)
Definition: EdbSEQ.h:40
Double_t eNsigma
Definition: EdbSEQ.h:16
void ResetExcludeThetaRange()
Definition: EdbSEQ.h:55
Definition: EdbSegP.h:18
Float_t DZ() const
Definition: EdbSegP.h:151
Float_t W() const
Definition: EdbSegP.h:148
Definition: EdbSigma.h:8
float xmin
Definition: emthickness.cpp:61
float ymin
Definition: emthickness.cpp:63
float xmax
Definition: emthickness.cpp:61
float ymax
Definition: emthickness.cpp:63
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24
p
Definition: testBGReduction_AllMethods.C:8
TProfile * po
Definition: testChi2Ordering.C:29
EdbSegP * s
Definition: tlg2pattern.C:32