GammaWare  Head Version for release 0.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PSAFrame.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2004 by Olivier Stezowski *
3  * stezow(AT)ipnl.in2p3.fr *
4  * *
5  * This program is free software; you can redistribute it and/or modify *
6  * it under the terms of the GNU General Public License as published by *
7  * the Free Software Foundation; either version 2 of the License, or *
8  * (at your option) any later version. *
9  * *
10  * This program is distributed in the hope that it will be useful, *
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13  * GNU General Public License for more details. *
14  * *
15  * You should have received a copy of the GNU General Public License *
16  * along with this program; if not, write to the *
17  * Free Software Foundation, Inc., *
18  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19  ***************************************************************************/
20 
23 #ifndef ADF_PSAFrame
24 #define ADF_PSAFrame
25 
26 #ifndef ADF_AgataDataFrame
27 #include "AgataDataFrame.h"
28 #endif
29 #ifndef ADF_ADFObjects
30 #include "ADFObjects.h"
31 #endif
32 
33 namespace ADF
34 {
35 
37 
40  class PSAHit : public FullHit
41  {
42  private:
43  Double32_t fTrapCCe; // trapping correction parameter for CC electrons
44  Double32_t fTrapCCh; // trapping correction parameter for CC holes
45  Double32_t fTrapSGe; // trapping correction parameter for SG electrons
46  Double32_t fTrapSGh; // trapping correction parameter for SG holes
47  Int_t fID[2]; // Segment ID, followed by Crystal ID in which this hit occured
48  UShort_t fStatus; // Hit status
49 
50  public:
52  PSAHit() :
53  FullHit(), fTrapCCe(0), fTrapCCh(0), fTrapSGe(0), fTrapSGh(0), fStatus(0u) {fID[0] = fID[1] = 0;}
54  virtual ~PSAHit()
55  {;}
56 
57  virtual Double_t GetTrapCCe() const
58  {return fTrapCCe;}
59  virtual void SetTrapCCe(Double_t v)
60  {fTrapCCe = v;}
61 
62  virtual Double_t GetTrapCCh() const
63  {return fTrapCCh;}
64  virtual void SetTrapCCh(Double_t v)
65  {fTrapCCh = v;}
66 
67  virtual Double_t GetTrapSGe() const
68  {return fTrapSGe;}
69  virtual void SetTrapSGe(Double_t v)
70  {fTrapSGe = v;}
71 
72  virtual Double_t GetTrapSGh() const
73  {return fTrapSGh;}
74  virtual void SetTrapSGh(Double_t v)
75  {fTrapSGh = v;}
76 
77  virtual void SetHit(const Hit &ahit) {
78  FullHit::SetHit(ahit);
79  }
80 
81  virtual void SetHit(const PSAHit &ahit) {
82  SetXYZ(ahit.GetX(),ahit.GetY(),ahit.GetZ());
83  SetDXYZ(ahit.GetDX(),ahit.GetDY(),ahit.GetDZ());
84  SetE(ahit.GetE()); SetDE(ahit.GetDE());
85  SetT(ahit.GetT()); SetDT(ahit.GetDT());
86  SetTrapCCe(ahit.GetTrapCCe());
87  SetTrapCCh(ahit.GetTrapCCh());
88  SetTrapSGe(ahit.GetTrapSGe());
89  SetTrapSGh(ahit.GetTrapSGh());
90  SetStatus(ahit.GetStatus());
91  SetID(ahit.GetID(0),0);
92  SetID(ahit.GetID(1),1);
93  }
94 
96  virtual Int_t GetID(Int_t which_id = 0) const
97  {
98  if ( which_id == 0 ) {
99  return fID[0];
100  }
101  else {
102  return fID[1];
103  }
104  }
106  virtual void SetID(Int_t id, Int_t which_id = 0)
107  {
108  if ( which_id == 0 ) {
109  fID[0] = id;
110  }
111  else {
112  fID[1] = id;
113  }
114  }
115 
116  virtual UShort_t GetStatus() const
117  {return fStatus;}
118  virtual void SetStatus(UShort_t s)
119  {fStatus=s;}
120 
121  virtual void Reset()
122  { FullHit::Reset(); fTrapCCe=fTrapCCh=fTrapSGe=fTrapSGh=0; fID[0]=fID[1]=0; fStatus=0;}
123  };
124 
125  class AgataFrameFactory;
126 
128 
131  {
132  public:
134  DataInterface() {;}
135  virtual ~PSAInterface()
136  {;}
137 
139  virtual Int_t GetUID() const = 0;
141  virtual void SetUID(Int_t) = 0;
142 
144  virtual Double_t GetE(UInt_t = 0u) const = 0;
146  virtual void SetE(Double_t, UInt_t = 0u) = 0;
147 
149  virtual Double_t GetT(UInt_t = 0u) const = 0;
151  virtual void SetT(Double_t, UInt_t = 0u) = 0;
152 
154  virtual Hit *NewHit() = 0;
155 
157  virtual UShort_t GetNbHits() const = 0;
159  virtual Hit *GetHit(UShort_t) = 0;
161  virtual const Hit *GetHit(UShort_t) const = 0;
162  };
163 
165 
168  class APSAFrame : public AgataDataFrame< PSAInterface >
169  {
170  friend class AgataFrameFactory;
171 
172  private:
173  // Digitizer fDigitXYZ, fDigitDXYZ, fDigitE, fDigitDE, fDigitT, fDigitDT ;
174 
175  protected:
176  APSAFrame(Key *key):
177  AgataDataFrame< PSAInterface >(key) {;}
178 
180  virtual Bool_t DoConfigure(std::istream &);
182  virtual Bool_t DoConfigure(std::ostream &);
183 
184  public:
185  virtual ~APSAFrame()
186  {;}
187  // virtual void SetDigitizer(const Char_t *, Double_t, Double_t, UInt_t) {;}
188  };
189 
190  // typedef ProxyDataFrame<APSAFrame,PSAInterface> PSAFrame;
191 
192 } // namespace ADF
193 #endif
194 
virtual UShort_t GetNbHits() const =0
To know the number of Hits currently on the stack.
virtual void SetTrapCCe(Double_t v)
Definition: PSAFrame.h:59
Base class for a Key.
Definition: Key.h:56
virtual UShort_t GetStatus() const
Definition: PSAFrame.h:116
virtual Double_t GetTrapCCh() const
Definition: PSAFrame.h:62
virtual void SetTrapCCh(Double_t v)
Definition: PSAFrame.h:64
virtual Double_t GetE(UInt_t=0u) const =0
to get the energy associated to the core
General interface for a AgataDataFrame.
virtual Double_t GetTrapSGe() const
Definition: PSAFrame.h:67
virtual Int_t GetUID() const =0
to get the crystal ID
virtual Double_t GetDY() const
Definition: Hits.h:222
virtual Double_t GetT(UInt_t=0u) const =0
to get the time associated to the core
virtual ~PSAHit()
Definition: PSAFrame.h:54
virtual Double_t GetX() const
Definition: Hits.h:146
virtual ~APSAFrame()
Definition: PSAFrame.h:185
virtual Double_t GetE() const
Definition: Hits.h:158
header file for AgataDataFrame.cpp
virtual void SetHit(const PSAHit &ahit)
Definition: PSAFrame.h:81
APSAFrame(Key *key)
Definition: PSAFrame.h:176
virtual ~PSAInterface()
Definition: PSAFrame.h:135
virtual void SetUID(Int_t)=0
to set the crystal ID
Base class for a Hit.
Definition: Hits.h:35
virtual void Reset()
Definition: Hits.h:242
virtual void SetTrapSGe(Double_t v)
Definition: PSAFrame.h:69
virtual void SetE(Double_t, UInt_t=0u)=0
to set the energy associated to the core
virtual void SetE(Double_t e)
Definition: Hits.h:160
virtual Double_t GetZ() const
Definition: Hits.h:150
virtual Double_t GetDX() const
Definition: Hits.h:220
virtual Double_t GetT() const
Definition: Hits.h:183
virtual Bool_t DoConfigure(std::istream &)
configure this from an input stream
virtual void SetHit(const Hit &ahit)
to fully copy a Hit into another one. In principle, no need to overwritte it as soon as the interface...
Definition: PSAFrame.h:77
AgataFrameFactory, implements agata's like Frame Factory.
virtual void SetTrapSGh(Double_t v)
Definition: PSAFrame.h:74
virtual void SetXYZ(Double_t x, Double_t y, Double_t z)
Definition: Hits.h:153
virtual void SetDXYZ(Double_t dx, Double_t dy, Double_t dz)
Definition: Hits.h:227
virtual Hit * NewHit()=0
Add a NewHit to the stack of Hits associated to this PSAFrame.
virtual Int_t GetID(Int_t which_id=0) const
get crystal/segment id. if which_id > 0, get crystal ID.
Definition: PSAFrame.h:96
virtual void Reset()
Definition: PSAFrame.h:121
virtual Double_t GetTrapCCe() const
Definition: PSAFrame.h:57
virtual void SetT(Double_t t)
Definition: Hits.h:185
virtual void SetDT(Double_t dt)
Definition: Hits.h:239
virtual void SetT(Double_t, UInt_t=0u)=0
to set the time associated to the core
header file for ADFObjects.cpp
virtual void SetID(Int_t id, Int_t which_id=0)
set crystal/segment id. if which_id > 0, set crystal ID.
Definition: PSAFrame.h:106
virtual Double_t GetTrapSGh() const
Definition: PSAFrame.h:72
virtual Double_t GetDT() const
Definition: Hits.h:237
virtual void SetStatus(UShort_t s)
Definition: PSAFrame.h:118
virtual void SetHit(const Hit &)
to fully copy a Hit into another one. In principle, no need to overwritte it as soon as the interface...
Definition: Hits.cpp:27
Base class for a DataInterface.
Definition: GObject.h:340
virtual Double_t GetY() const
Definition: Hits.h:148
virtual void SetDE(Double_t de)
Definition: Hits.h:234
virtual Hit * GetHit(UShort_t)=0
To get back a particular Hit (already on the stack !)
virtual Double_t GetDZ() const
Definition: Hits.h:224
virtual Double_t GetDE() const
Definition: Hits.h:232
General interface for a PSAFrame.
Definition: PSAFrame.h:168