FEDRA emulsion software from the OPERA Collaboration
EdbLinking.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbLinking
2 #define ROOT_EdbLinking
3 
4 #include "EdbScanCond.h"
5 #include "TEnv.h"
6 #include "EdbAlignmentV.h"
7 #include "EdbSEQ.h"
8 
9 //-------------------------------------------------------------------------------------------------
10 class EdbLinking : public EdbAlignmentV
11 {
12  public:
13 
14  bool eDoSaveCouples; // save couples and report histograms
19  int eCPRankingAlg; // couples ranking algorithm (0-default, 1-likelihood used)
20 
21  float eDRfull, eDTfull; // acceptance for the full linking
22  float eCHI2Pmax; // acceptance to save into couples tree
23  float eChi2Acorr; // acceptance to save into couples tree
24  float eNsigmaEQshr; // equalization cut for shrinkage
25  float eNsigmaEQlnk; // equalization cut for linking
26  float eShr0; // starting value for shrinkage correction search
27  float eDShr; // range for the shrinkage correction
28  float eBinOK; // mean cell occupancy
29  EdbScanCond eCond; // scanning conditions for couples ranking
30 
31  int eNshr[2]; // number of coins found for shrinkage correction
32  int eNcorrMin; // min number of segments for the correction calculation
33 
34  TObjArray eSegCouples; // segment couples objects to fill couples format tree
35 
36  EdbLayer eL1,eL2; // layers with the geometry and corrections
37 
38  EdbH2 eHdxyShr[2]; // service histograms used for the shrinkage correction
39 
40  struct RemoveDoublets {
41  int remove;
42  float dr;
43  float dt;
44  int checkview;
46 
47  public:
48  EdbLinking();
49  virtual ~EdbLinking(){}
50 
51  bool VerifyShrinkageCorr( int side );
52  void GetPar(TEnv &env);
53  void GetDoubletsPar(TEnv &env);
54  void GetPreselectionPar(EdbSEQ &seq, TEnv &env);
55  void SaveCouplesTree(const char *file=0);
56  void FullLinking(TObjArray &p1, TObjArray &p2);
57  void FullLinking(EdbPattern &p1, EdbPattern &p2);
58  void FillCombinationsAtMeanZ(TObjArray &p1, TObjArray &p2);
59  void CorrectShrinkage(TObjArray &p1, TObjArray &p2, float dshr);
60  void CorrectShrinkage(EdbPattern &p1, EdbPattern &p2, float dshr);
61  void CorrectShrinkage(float dshr);
62  void Link(EdbPattern &p1, EdbPattern &p2, EdbLayer &l1, EdbLayer &l2, TEnv &env, Double_t area1=-1, Double_t area2=-1);
63  void CorrectAngles(TObjArray &p1, TObjArray &p2);
64  void WriteShrinkagePlots();
65 
66  Double_t EstimatePatternArea(EdbPattern &p);
67  void RankCouples( TObjArray &arr1,TObjArray &arr2 );
68 
69  void DoubletsFilterOut(TObjArray &p1, TObjArray &p2, bool fillhist=0);
70  void DumpDoubletsTree(EdbAlignmentV &adup, const char *name);
71 
72  void CloneCouplesTree( const char *ifile, const char *ofile, EdbAffine2D *aff=0, TCut *cut=0 );
73 
74  void SetApplyCorr(bool corr) {eCorr[0].eApplyCorr=corr;eCorr[1].eApplyCorr=corr;}
75  void GetFillPattern(EdbPattern &p, int layer=0);
76 
77  void ProduceReport();
78 
79  ClassDef(EdbLinking,1) // microtracks linking in one plate
80 };
81 #endif /* ROOT_EdbLinking */
TCut cut
Definition: check_shower.C:6
Definition: EdbAffine.h:17
Definition: EdbAlignmentV.h:13
EdbSegCorr eCorr[2]
Definition: EdbAlignmentV.h:24
Definition: EdbCell2.h:19
Definition: EdbLayer.h:40
Definition: EdbLinking.h:11
float eNsigmaEQlnk
Definition: EdbLinking.h:25
void DoubletsFilterOut(TObjArray &p1, TObjArray &p2, bool fillhist=0)
Definition: EdbLinking.cxx:614
int eNcorrMin
Definition: EdbLinking.h:32
float eNsigmaEQshr
Definition: EdbLinking.h:24
void GetDoubletsPar(TEnv &env)
Definition: EdbLinking.cxx:68
bool eDoSaveCouples
Definition: EdbLinking.h:14
float eChi2Acorr
Definition: EdbLinking.h:23
EdbLayer eL1
Definition: EdbLinking.h:36
void RankCouples(TObjArray &arr1, TObjArray &arr2)
Definition: EdbLinking.cxx:456
bool eDoFullLinking
Definition: EdbLinking.h:17
TObjArray eSegCouples
Definition: EdbLinking.h:34
EdbScanCond eCond
Definition: EdbLinking.h:29
void Link(EdbPattern &p1, EdbPattern &p2, EdbLayer &l1, EdbLayer &l2, TEnv &env, Double_t area1=-1, Double_t area2=-1)
Definition: EdbLinking.cxx:95
bool eDoCorrectShrinkage
Definition: EdbLinking.h:16
float eDTfull
Definition: EdbLinking.h:21
Double_t EstimatePatternArea(EdbPattern &p)
Definition: EdbLinking.cxx:89
void GetPreselectionPar(EdbSEQ &seq, TEnv &env)
Definition: EdbLinking.cxx:77
virtual ~EdbLinking()
Definition: EdbLinking.h:49
void GetPar(TEnv &env)
Definition: EdbLinking.cxx:33
void SetApplyCorr(bool corr)
Definition: EdbLinking.h:74
void CorrectAngles(TObjArray &p1, TObjArray &p2)
Definition: EdbLinking.cxx:251
float eCHI2Pmax
Definition: EdbLinking.h:22
void WriteShrinkagePlots()
Definition: EdbLinking.cxx:436
int eCPRankingAlg
Definition: EdbLinking.h:19
bool eDoDumpDoubletsTree
Definition: EdbLinking.h:18
EdbH2 eHdxyShr[2]
Definition: EdbLinking.h:38
bool eDoCorrectAngles
Definition: EdbLinking.h:15
bool VerifyShrinkageCorr(int side)
Definition: EdbLinking.cxx:220
void GetFillPattern(EdbPattern &p, int layer=0)
Definition: EdbLinking.cxx:688
void DumpDoubletsTree(EdbAlignmentV &adup, const char *name)
Definition: EdbLinking.cxx:648
void ProduceReport()
Definition: EdbLinking.cxx:524
EdbLayer eL2
Definition: EdbLinking.h:36
void FillCombinationsAtMeanZ(TObjArray &p1, TObjArray &p2)
Definition: EdbLinking.cxx:239
void CorrectShrinkage(TObjArray &p1, TObjArray &p2, float dshr)
Definition: EdbLinking.cxx:385
struct EdbLinking::RemoveDoublets eRemoveDoublets
int eNshr[2]
Definition: EdbLinking.h:31
float eBinOK
Definition: EdbLinking.h:28
void CloneCouplesTree(const char *ifile, const char *ofile, EdbAffine2D *aff=0, TCut *cut=0)
Definition: EdbLinking.cxx:664
EdbLinking()
Definition: EdbLinking.cxx:27
void SaveCouplesTree(const char *file=0)
Definition: EdbLinking.cxx:314
float eDShr
Definition: EdbLinking.h:27
void FullLinking(TObjArray &p1, TObjArray &p2)
Definition: EdbLinking.cxx:283
float eDRfull
Definition: EdbLinking.h:21
float eShr0
Definition: EdbLinking.h:26
Definition: EdbPattern.h:280
Definition: EdbSEQ.h:12
Definition: EdbScanCond.h:10
Bool_t eApplyCorr
Definition: EdbSegCorr.h:13
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24
Definition: EdbLinking.h:40
int remove
Definition: EdbLinking.h:41
float dt
Definition: EdbLinking.h:43
int checkview
Definition: EdbLinking.h:44
float dr
Definition: EdbLinking.h:42
p
Definition: testBGReduction_AllMethods.C:8
TFile * file
Definition: write_pvr.C:3