FEDRA emulsion software from the OPERA Collaboration
EdbEmrIO.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbEmrIO
2 #define ROOT_EdbEmrIO
3 
5 // //
6 // EdbEmrIO //
7 // //
8 // interface between FEDRA and EmuRec objects //
9 // //
11 #include "TArrayI.h"
12 #include "TObjArray.h"
13 #include "EdbPattern.h"
14 
15 class EdbTrackP;
16 class EdbVertex;
17 class REMULZone;
18 
19 //______________________________________________________________________________
20 class EdbEmrIO : public TObject {
21 
22  private:
23 
24  public:
25  EdbEmrIO() {}
26  virtual ~EdbEmrIO() {}
27 
28  void TrackEdb2Emr(EdbTrackP &tedb); // (EdbTrackP &tedb, EmrTrack &temr)
29  void TrackEmr2Edb(EdbTrackP &tedb); // (EmrTrack &temr, EdbTrackP &tedb)
30  void VertexEdb2Emr(EdbVertex &vedb); // (EdbVeretx &vedb, EmrVeretx &vemr)
31  void VertexEmr2Edb(EdbVertex &vedb); // (EmrVeretx &vemr, EdbVeretx &vedb)
32 
33  void Print();
34 
35  ClassDef(EdbEmrIO,1) // interface between FEDRA and EmuRec objects
36 };
37 
38 //______________________________________________________________________________
39 class EdbEmrFileAccess : public TObject {
40 
41  private:
42  TObjArray eSides; // each entry is EdbPattern with the views of one side
43 
44  public:
46  virtual ~EdbEmrFileAccess() {}
47 
48  int PlateID(int plateside) { return plateside/3; }
49  int SideID( int plateside) { return plateside%3; }
50  EdbSegP *AddEntry(int plate, int side, int zone, int view, int entry, float x, float y, float z);
51  int GetPlateEntries(int plate, int side, TArrayI &entries);
52  int FirstPlate();
53  int LastPlate();
54  void PrintStat();
55 
56  int SideID(int plate, int side) {
57  if(plate<0||plate>1000) return -1;
58  if(side<0||side>2) return -1;
59  return plate*3 + side;
60  }
61 
62  ClassDef(EdbEmrFileAccess,1) // to manage better plane emurec file structure
63 };
64 
65 #endif /* ROOT_EdbEmrIO */
TLegendEntry * entry
Definition: Canv_SYSTEMATICS_ALLCOMBINED__RMSEnergy__vs__Energy__ELECTRON.C:130
EdbVertex * vedb
Definition: RecDispMC.C:139
Definition: EdbEmrIO.h:39
int PlateID(int plateside)
Definition: EdbEmrIO.h:48
virtual ~EdbEmrFileAccess()
Definition: EdbEmrIO.h:46
EdbEmrFileAccess()
Definition: EdbEmrIO.h:45
void PrintStat()
Definition: EdbEmrIO.cxx:41
int SideID(int plate, int side)
Definition: EdbEmrIO.h:56
int GetPlateEntries(int plate, int side, TArrayI &entries)
Definition: EdbEmrIO.cxx:69
EdbSegP * AddEntry(int plate, int side, int zone, int view, int entry, float x, float y, float z)
Definition: EdbEmrIO.cxx:52
int SideID(int plateside)
Definition: EdbEmrIO.h:49
TObjArray eSides
Definition: EdbEmrIO.h:42
int LastPlate()
Definition: EdbEmrIO.cxx:29
Definition: EdbEmrIO.h:20
void VertexEdb2Emr(EdbVertex &vedb)
Definition: EdbEmrIO.cxx:107
void TrackEdb2Emr(EdbTrackP &tedb)
Definition: EdbEmrIO.cxx:91
virtual ~EdbEmrIO()
Definition: EdbEmrIO.h:26
void TrackEmr2Edb(EdbTrackP &tedb)
Definition: EdbEmrIO.cxx:99
EdbEmrIO()
Definition: EdbEmrIO.h:25
void Print()
Definition: EdbEmrIO.cxx:85
void VertexEmr2Edb(EdbVertex &vedb)
Definition: EdbEmrIO.cxx:115
Definition: EdbSegP.h:18
Definition: EdbPattern.h:118
Definition: EdbVertex.h:68
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1