FEDRA emulsion software from the OPERA Collaboration
EdbBrick.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbBrick
2 #define ROOT_EdbBrick
3 
5 // //
6 // EdbBrick - OPERA Brick structure definition //
7 // //
9 #include "TObjArray.h"
10 #include "EdbLayer.h"
11 
12 //______________________________________________________________________________
13 class EdbPlateP : public EdbLayer {
14 
15  private:
16  TObjArray eLayers; // 0-base, 1-up, 2-down
17 
18  public:
20  EdbPlateP(EdbPlateP &pp): EdbLayer(pp) { for(int i=0; i<3; i++) eLayers.Add(new EdbLayer(*(pp.GetLayer(i)))); }
21 
22  ~EdbPlateP(){eLayers.Delete();}
23 
24  void Copy(EdbPlateP &p);
25  void SetPlateLayout(float z0, float z1, float z2);
26  void SetOperaLayout() { SetPlateLayout(210,44,44); }
27  void PrintPlateLayout();
28  EdbLayer *GetLayer(int i) {return (i < 0) ? 0 : (EdbLayer*)eLayers.At(i);}
29  void SetDXDY(float dx, float dy);
31  void Print();
32 
33  ClassDef(EdbPlateP,1) // OPERA Plate structure definition
34 };
35 
36 //______________________________________________________________________________
37 class EdbBrickP : public EdbLayer {
38 
39  private:
40  TObjArray ePlates;
41  TObjArray eSpacers;
42 
43  public:
44  EdbBrickP();
45  ~EdbBrickP(){ePlates.Delete(); eSpacers.Delete();}
46 
47  void Copy(EdbBrickP &b);
48  void SetPlatesLayout(float z0, float z1, float z2);
49  void SetDXDY(float dx, float dy);
50  int Npl() const {return ePlates.GetEntries();}
51  void AddPlate(EdbPlateP *pl) { ePlates.Add(pl); }
52  EdbPlateP *GetPlate(int i) {return (EdbPlateP*)ePlates.At(i);}
53  void Clear() { ePlates.Clear(); eSpacers.Clear(); }
54  void Print();
55  void PrintSides();
56  void RemovePlate(int pid);
57  void ResetAffXY();
58  void ResetAffTXTY();
60 
61  ClassDef(EdbBrickP,1) // OPERA Brick structure definition
62 };
63 
64 
65 #endif /* ROOT_EdbBrick */
66 
brick z0
Definition: RecDispMC.C:106
Definition: EdbBrick.h:37
void Clear()
Definition: EdbBrick.h:53
void RemovePlate(int pid)
Definition: EdbBrick.cxx:102
void AddPlate(EdbPlateP *pl)
Definition: EdbBrick.h:51
TObjArray eSpacers
Definition: EdbBrick.h:41
void ResetAff()
Definition: EdbBrick.h:59
void PrintSides()
Definition: EdbBrick.cxx:139
~EdbBrickP()
Definition: EdbBrick.h:45
EdbBrickP()
Definition: EdbBrick.cxx:78
void Copy(EdbBrickP &b)
Definition: EdbBrick.cxx:83
void SetPlatesLayout(float z0, float z1, float z2)
Definition: EdbBrick.cxx:95
void SetDXDY(float dx, float dy)
Definition: EdbBrick.cxx:114
EdbPlateP * GetPlate(int i)
Definition: EdbBrick.h:52
void ResetAffXY()
Definition: EdbBrick.cxx:121
TObjArray ePlates
Definition: EdbBrick.h:40
void Print()
Definition: EdbBrick.cxx:132
int Npl() const
Definition: EdbBrick.h:50
void ResetAffTXTY()
Definition: EdbBrick.cxx:126
Definition: EdbLayer.h:40
Definition: EdbBrick.h:13
void SetDXDY(float dx, float dy)
Definition: EdbBrick.cxx:71
void Print()
Definition: EdbBrick.cxx:39
void Copy(EdbPlateP &p)
Definition: EdbBrick.cxx:22
EdbPlateP(EdbPlateP &pp)
Definition: EdbBrick.h:20
EdbLayer * GetLayer(int i)
Definition: EdbBrick.h:28
void SetOperaLayout()
Definition: EdbBrick.h:26
void SetPlateLayout(float z0, float z1, float z2)
Definition: EdbBrick.cxx:58
void TransformSidesIntoPlateRS()
Definition: EdbBrick.cxx:29
void PrintPlateLayout()
Definition: EdbBrick.cxx:48
TObjArray eLayers
Definition: EdbBrick.h:16
~EdbPlateP()
Definition: EdbBrick.h:22
int pid[1000]
Definition: m2track.cpp:13
p
Definition: testBGReduction_AllMethods.C:8