FEDRA emulsion software from the OPERA Collaboration
EdbShowAlg_GS.h
Go to the documentation of this file.
1#ifndef ROOT_EdbShowAlg_GS
2#define ROOT_EdbShowAlg_GS
3
4#include "TROOT.h"
5#include "TFile.h"
6#include "TVector3.h"
7#include "TIndexCell.h"
8#include "TArrayF.h"
9#include "TBenchmark.h"
10#include "TMultiLayerPerceptron.h"
11#include "EdbVertex.h"
12#include "EdbPVRec.h"
13#include "EdbPhys.h"
14#include "EdbMath.h"
16#include "EdbLog.h"
17#include "EdbPattern.h"
18#include "EdbShowerP.h"
19using namespace std;
20
21//______________________________________________________________________________
22//___
23//___ Declaration of EdbShowAlg Class:
24//___ Following structure is foreseen: The (inherited) class instances of
25//___ EdbShowAlg DO the reconstruction. They DONT manage the data.
26//___ Following the principle "separate algorithms and data" (like ATHENA,
27//___ the ATLAS framework). Therefore the EdbPVRec Object, the Initiator
28//___ Base Tracks and the shower arrays are only handed over either as
29//___ reference or as pointers. Saving/manipulating/preparing of these
30//___ objects will only be done in the EdbShowRec class instances!
31//___
32//______________________________________________________________________________
33
34
35
36//______________________________________________________________________________
37
38class EdbShowAlg_GS : public EdbShowAlg {
39
40
41private:
42
43 // TObjArray storing Initiator Vertices:
44 TObjArray* eInVtxArray;
46
48
49public:
50
53 virtual ~EdbShowAlg_GS(); // virtual constructor due to inherited class
54
55 void Init();
56
57 inline void SetInVtxArray( TObjArray* InVtxArray ) {
58 eInVtxArray = InVtxArray;
59 eInVtxArrayN = eInVtxArray->GetEntries();
60 cout << eInVtxArrayN << " entries set"<<endl;
61 }
62 void SetInVtx( EdbVertex* vtx );
63
64 inline Int_t GetInVtxArrayN() const {
65 return eInVtxArrayN;
66 }
67 inline TObjArray* GetInVtxArray() const {
68 return eInVtxArray;
69 }
70
71
72 // Helper Functions for this class:
75 Bool_t CheckPairDuplications(Int_t SegPID,Int_t SegID,Int_t Seg2PID,Int_t Seg2ID,TArrayI* SegmentPIDArray,TArrayI* SegmentIDArray,TArrayI* Segment2PIDArray,TArrayI* Segment2IDArray,int RecoShowerArrayN);
76 Double_t CalcIP(EdbSegP *s, double x, double y, double z);
77 Double_t CalcIP(EdbSegP *s, EdbVertex *v);
79
80
81 TObjArray* FindPairs(EdbSegP* InBT, EdbPVRec* eAli_Sub);
82 TObjArray* CheckCleanPairs(EdbSegP* InBT, TObjArray* RecoShowerArrayFromFindPairs);
83
84 // Main functions for using this ShowerAlgorithm Object.
85 // Structure is made similar to OpRelease, where
86 // Initialize, Execute, Finalize
87 // give the three columns of the whole thing.
88 void Initialize();
89 void Execute();
90 void Finalize();
91
92 ClassDef(EdbShowAlg_GS,1); // Root Class Definition for my Objects
93};
94
95
96#endif /* ROOT_EdbShowAlg_GS */
Definition: EdbPVRec.h:148
Definition: EdbSegP.h:21
Definition: EdbShowAlg_GS.h:38
ClassDef(EdbShowAlg_GS, 1)
void Initialize()
Definition: EdbShowAlg_GS.cxx:124
Double_t CalcIP(EdbSegP *s, double x, double y, double z)
Definition: EdbShowAlg_GS.cxx:688
void Execute()
Definition: EdbShowAlg_GS.cxx:255
TObjArray * eInVtxArray
Definition: EdbShowAlg_GS.h:44
TObjArray * CheckCleanPairs(EdbSegP *InBT, TObjArray *RecoShowerArrayFromFindPairs)
Definition: EdbShowAlg_GS.cxx:613
Bool_t IsPossibleFakeDoublet(EdbSegP *s1, EdbSegP *s2)
Definition: EdbShowAlg_GS.cxx:722
TH1F * h_GammaChi2
Definition: EdbShowAlg_GS.h:47
void Convert_TracksArray_To_InBTArray()
Definition: EdbShowAlg_GS.cxx:193
Int_t eInVtxArrayN
Definition: EdbShowAlg_GS.h:45
void SetInVtxArray(TObjArray *InVtxArray)
Definition: EdbShowAlg_GS.h:57
TObjArray * FindPairs(EdbSegP *InBT, EdbPVRec *eAli_Sub)
Definition: EdbShowAlg_GS.cxx:359
TObjArray * GetInVtxArray() const
Definition: EdbShowAlg_GS.h:67
void Finalize()
Definition: EdbShowAlg_GS.cxx:681
Bool_t CheckPairDuplications(Int_t SegPID, Int_t SegID, Int_t Seg2PID, Int_t Seg2ID, TArrayI *SegmentPIDArray, TArrayI *SegmentIDArray, TArrayI *Segment2PIDArray, TArrayI *Segment2IDArray, int RecoShowerArrayN)
Definition: EdbShowAlg_GS.cxx:236
virtual ~EdbShowAlg_GS()
Definition: EdbShowAlg_GS.cxx:72
Int_t GetInVtxArrayN() const
Definition: EdbShowAlg_GS.h:64
void SetInVtx(EdbVertex *vtx)
Definition: EdbShowAlg_GS.cxx:135
void Convert_InVtxArray_To_InBTArray()
Definition: EdbShowAlg_GS.cxx:149
void Init()
Definition: EdbShowAlg_GS.cxx:80
Definition: EdbShowAlg.h:40
EdbPVRec * eAli_Sub
Definition: EdbShowAlg.h:74
Definition: EdbVertex.h:69
s
Definition: check_shower.C:55
EdbPVRec * ali
Definition: test_oracle.C:9
EdbSegP * s1
Definition: tlg2couples.C:29
EdbSegP * s2
Definition: tlg2couples.C:30
Definition: AlignmentCint.cxx:51