FEDRA emulsion software from the OPERA Collaboration
EdbCouplesTree.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbCouplesTree
2 #define ROOT_EdbCouplesTree
3 
4 #include "TTree.h"
5 #include "TFile.h"
6 #include "TCut.h"
7 #include "EdbSegCouple.h"
8 #include "EdbAffine.h"
9 #include "EdbMask.h"
10 #include "EdbBrick.h"
11 
12 class TIndex2;
13 class EdbPattern;
14 
15 //-------------------------------------------------------------------------------------------------
16 class EdbCouplesTree : public TObject
17 {
18 public:
19  // branches:
20  EdbSegP *eS1,*eS2,*eS; // segments to be written
21  EdbSegCouple *eCP; // couples object
22  Float_t eXv, eYv; // relative center
23  Int_t ePid1, ePid2;
24 
25  TTree *eTree; // couples tree
26 
27  EdbMask *eEraseMask; // id's (entries) of segments to be erased when read couples tree
28  EdbMask *eAcceptMask; // id's (entries) of segments to be accepted when read couples tree
29 
30  //Correction parameters
31  TCut eCut; // cut to be applied on read
32  bool eApplyCorrections; // if true - apply corrections stored in ePlate when do GetEntry
34 
35 public:
37  virtual ~EdbCouplesTree();
38 
39  bool InitCouplesTree(const char *name="couples", const char *fname=0, Option_t *mode="READ");
40  TEventList *InitCutList();
41  void SaveTree();
42  void Close();
43  Int_t Fill(EdbSegP *s1, EdbSegP *s2, EdbSegP *s=0, EdbSegCouple *cp=0, float xv=0, float yv=0, int pid1=0, int pid2=0 );
44  Int_t Fill();
45  bool WriteTree();
46  int GetEntry(int i);
47  void ApplyCorrections();
48  int PutCPData( TObjArray &cparr );
49  int GetCPData( EdbPattern *pat, EdbPattern *p1=0, EdbPattern *p2=0, TIndex2 *trseg=0 );
50  int GetCPData( TObjArray &cparr );
52  const char* GetFileName() const { if(eTree->GetCurrentFile()) return eTree->GetCurrentFile()->GetName(); else return 0;}
53  void RankCouples(TObjArray &cparr);
54 
55  void Print();
56 
57  ClassDef(EdbCouplesTree,1) // service class for couples tree access
58 };
59 #endif /* ROOT_EdbCouplesTree */
void trseg(int event=40, const char *def)
Definition: check_vertex.C:44
Definition: EdbCouplesTree.h:17
int PutCPData(TObjArray &cparr)
Definition: EdbCouplesTree.cxx:307
TCut eCut
Definition: EdbCouplesTree.h:31
Float_t eYv
Definition: EdbCouplesTree.h:22
void ApplyCorrections()
Definition: EdbCouplesTree.cxx:223
bool InitCouplesTree(const char *name="couples", const char *fname=0, Option_t *mode="READ")
Definition: EdbCouplesTree.cxx:87
EdbPlateP ePlate
Definition: EdbCouplesTree.h:33
void Close()
Definition: EdbCouplesTree.cxx:70
EdbSegP * eS2
Definition: EdbCouplesTree.h:20
EdbSegP * eS1
Definition: EdbCouplesTree.h:20
EdbMask * eAcceptMask
Definition: EdbCouplesTree.h:28
int GetEntry(int i)
Definition: EdbCouplesTree.cxx:215
int GetCPData(EdbPattern *pat, EdbPattern *p1=0, EdbPattern *p2=0, TIndex2 *trseg=0)
Definition: EdbCouplesTree.cxx:325
virtual ~EdbCouplesTree()
Definition: EdbCouplesTree.cxx:38
bool eApplyCorrections
Definition: EdbCouplesTree.h:32
Int_t ePid1
Definition: EdbCouplesTree.h:23
EdbMask * eEraseMask
Definition: EdbCouplesTree.h:27
int GetCPDataAcceptedMask(EdbPattern *pat)
Definition: EdbCouplesTree.cxx:377
void SaveTree()
Definition: EdbCouplesTree.cxx:60
void Print()
Definition: EdbCouplesTree.cxx:50
TTree * eTree
Definition: EdbCouplesTree.h:25
Float_t eXv
Definition: EdbCouplesTree.h:22
Int_t ePid2
Definition: EdbCouplesTree.h:23
const char * GetFileName() const
Definition: EdbCouplesTree.h:52
EdbSegCouple * eCP
Definition: EdbCouplesTree.h:21
Int_t Fill()
Definition: EdbCouplesTree.cxx:209
EdbSegP * eS
Definition: EdbCouplesTree.h:20
TEventList * InitCutList()
Definition: EdbCouplesTree.cxx:296
bool WriteTree()
Definition: EdbCouplesTree.cxx:191
void RankCouples(TObjArray &cparr)
Definition: EdbCouplesTree.cxx:263
Definition: EdbMask.h:8
Definition: EdbPattern.h:280
Definition: EdbBrick.h:13
Definition: EdbSegCouple.h:14
Definition: EdbSegP.h:18
Definition: EdbMath.h:49
const char * fname
Definition: mc2raw.cxx:41
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24
EdbSegP * s1
Definition: tlg2pattern.C:30
EdbSegP * s2
Definition: tlg2pattern.C:31
EdbSegP * s
Definition: tlg2pattern.C:32
EdbSegCouple * cp
Definition: tlg2pattern.C:29