GammaWare  Head Version for release 0.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GSIPrespecWatchers.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2010 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 
21 #ifndef _GSIPrespecWatchers
22 #define _GSIPrespecWatchers
23 
24 // Gw and Watcher definition
25 #include "GSIWatchers.h"
26 //Test of maybe missing include
27 #include "MetaWatchers.h"
28 //class VertexBuilder;
29 
30 class UnpackData;
31 class PhDUnpacker;
32 class SortData;
33 class SortClass;
34 class FRSCalibrData;
35 class FRSCalibr;
36 class HectorCalibrData;
37 class HectorCalibr;
38 class FRSAnl;
39 class FRSAnlData;
40 class LyccaLib;
41 class LyccaData;
42 
44 
48 class Unpack : public BaseGSIWatcher
49 {
50 protected:
52  UnpackData *fUnpackData;
54  PhDUnpacker *fUnpacker;
55 
56 protected:
58  virtual void AddBranches(TTree *tree);
60  virtual void FillBranches();
62  virtual void Clear(Option_t * = "");
63 
64 protected:
65  //Spectra to check the unpack data
66  TObjArray fsis;
67 
68 public:
69 // Unpack(const char *name, const char *title, TTree *tree = 0x0);
70  Unpack(const char *name, const char *title, TTree *tree = 0x0, Short_t do_spectra=2, Short_t do_tree=2);
71  virtual ~Unpack();
72 
74  UnpackData *GetUnpackData()
75  {
76  return fUnpackData;
77  }
78 
80  // virtual void Exec(Option_t *option="");
81 
82  // to create the spectra
83  void BuildSpectraByUser();
84  //to fill some spectra
85  //need to access the public UnpackData variable
86  void FillSpectraByUser();
87 
88  ClassDef(Unpack,0) // Unpacker Part
89 };
90 
91 
92 
94 
99 class Sort : public BaseGSIWatcher
100 {
101 protected:
103  UnpackData *fUnpackData;
104 protected:
106  SortData *fSortData;
108  SortClass *fSortClass;
109 
110 protected:
112  virtual void AddBranches(TTree *tree);
114  virtual void FillBranches();
116  virtual void Clear(Option_t * = "");
117 
118 protected:
119  //Spectra to check the Sort data
120  TH1 *fTrigger;
121 
122 public:
123  Sort(const char *name, const char *title, TTree *tree = 0x0, Short_t do_spectra=2, Short_t do_tree=2);
124  virtual ~Sort();
125 
127  SortData *GetSortData()
128  {
129  return fSortData;
130  }
131 
132  // to create the spectra
133  void BuildSpectraByUser();
134  //to fill some spectra
135  //need to access the public UnpackData variable
136  void FillSpectraByUser();
137 
138  ClassDef(Sort,0) // Sort Part
139 };
140 
141 class Calibr : public BaseGSIWatcher
142 {
143 protected:
145  SortData *fSortData;
146 
147 protected:
149  FRSCalibrData *fFRSCalibrData;
150  HectorCalibrData *fHectorCalibrData;
152  FRSCalibr *fFRSCalibr;
153  HectorCalibr *fHectorCalibr;
154 
155 protected:
157  virtual void AddBranches(TTree *tree);
159  virtual void FillBranches();
161  virtual void Clear(Option_t * = "");
162 
163 protected:
164  //Spectra to check the Calibr data
165  TH1 *fTrigger;
166 
167 public:
168  Calibr(const char *name, const char *title, TTree *tree = 0x0, Short_t do_spectra=2, Short_t do_tree=2);
169  virtual ~Calibr();
170 
172  FRSCalibrData *GetFRSCalibrData()
173  {
174  return fFRSCalibrData;
175  }
176 
178  HectorCalibrData *GetHectorCalibrData()
179  {
180  return fHectorCalibrData;
181  }
182 
183  // to create the spectra
184  void BuildSpectraByUser();
185  //to fill some spectra
186  //need to access the public UnpackData variable
187  void FillSpectraByUser();
188 
189 
190  ClassDef(Calibr,0) // Calib Part
191 };
192 
193 class Anl : public BaseGSIWatcher
194 {
195 protected:
197  SortData *fSortData;
198 protected:
200  FRSCalibrData *fFRSCalibrData;
201  HectorCalibrData *fHectorCalibrData;
202 protected:
204  FRSAnl *fFRSAnl;
205  FRSAnlData *fFRSAnlData;
206  LyccaLib *fLyccaLib;
207  LyccaData *fLyccaData;
208 
209 protected:
210  //Spectra to check the Calibr data
211  TH2 *fTa_PvsN;
212  TH2 *fTa_PvsP;
213  TH2 *fTa_NvsN;
216 
225 
226 protected:
228  virtual void AddBranches(TTree *tree);
230  virtual void FillBranches();
232  virtual void Clear(Option_t * = "");
233 
234 public:
235  Anl(const char *name, const char *title, TTree *tree = 0x0, Short_t do_spectra=2, Short_t do_tree=2);
236  virtual ~Anl();
237 
238  // to create the spectra
239  void BuildSpectraByUser();
240  //to fill some spectra
241  //need to access the public UnpackData variable
242  void FillSpectraByUser();
243 
245  FRSCalibrData *GetFRSCalibrData()
246  {
247  return fFRSCalibrData;
248  }
249 
251  HectorCalibrData *GetHectorCalibrData()
252  {
253  return fHectorCalibrData;
254  }
255 
257  LyccaData *GetLyccaData()
258  {
259  return fLyccaData;
260  }
261 
262  ClassDef(Anl,0) // Anl Part
263 };
264 
266 {
267 protected:
268  LyccaData *fLyccaData; // required to get the information concerning the recoil velocity
269 
270 protected:
271  Double_t fMeanBeta;
272  Double_t fZTa_Wall;
273  Double_t fZTDSSDOffset;
274  Double_t fcosTheta;
276 
277 public:
278  // LightLYCCAVertexBuilder_1();
279  LightLYCCAVertexBuilder_1(const char *, const char *);
281  {
282  ;
283  }
284 
286 
292  void SetTA_Wall(Double_t z_tdssd_offset = 0, Double_t ta_wall = 3590.); // *MENU*
293 
295  void SetMeanBeta(Double_t beta = 0.5); // *MENU*
296 
298  void SetBeta(); // *MENU*
299 
301  void SetTheta(Double_t cosTheta); // *MENU*
302 
304  Double_t GetTheta(); // *MENU*
305 
307  void GetPosWall(Double_t &,Double_t &,Double_t &); // *MENU*
308 
310  void SetPosWall(Double_t ,Double_t ,Double_t ); // *MENU*
311 
313  virtual void Exec(Option_t *option="");
314 
315  ClassDef(LightLYCCAVertexBuilder_1,0) // Watcher for builder vertex using only LYCCA
316 };
317 
318 #endif
319 
virtual ~Sort()
LyccaLib * fLyccaLib
PhDUnpacker * fUnpacker
helper class to unpack data, see prespec library
LyccaData * GetLyccaData()
to get back the Data from LYCCA
TH2 * fTa_PvsP
void GetPosWall(Double_t &, Double_t &, Double_t &)
Get the position of the recoil on the wallD.
virtual void Clear(Option_t *="")
Should be used to reset a various data filled by this watcher.
TH2 * fWall_D07_NvsP
SortClass * fSortClass
helper class to sort data from an UnpackData, see prespec library
Interface for any watcher that is a VertexBuilder.
virtual void AddBranches(TTree *tree)
Add the specific branches filled by this watcher to the given tree.
UnpackData * fUnpackData
UnpackData, see prespec library.
FRSCalibrData * fFRSCalibrData
CalibrData, see prespec library.
virtual void Clear(Option_t *="")
Should be used to reset a various data filled by this watcher.
void BuildSpectraByUser()
define user spectra ... to be implementted by user only if it defines its ones spectra without condit...
SortData * fSortData
Sort step is mandatory before calling this.
virtual void FillBranches()
Should be used to reset a various data filled by this watcher.
TH2 * fTa_NvsN
void FillSpectraByUser()
Fill user spectra ... to be implementted by user only if it defines its ones spectra without conditio...
void FillSpectraByUser()
Fill user spectra ... to be implementted by user only if it defines its ones spectra without conditio...
void FillSpectraByUser()
Fill user spectra ... to be implementted by user only if it defines its ones spectra without conditio...
FRSCalibrData * GetFRSCalibrData()
to get back the CalibrData from FRS
TH2 * fTa_N_strip
virtual void AddBranches(TTree *tree)
Add the specific branches filled by this watcher to the given tree.
TH2 * fWall_D18_NvsP
TH2 * fTa_PvsN
virtual void AddBranches(TTree *tree)
Add the specific branches filled by this watcher to the given tree.
FRSAnlData * fFRSAnlData
UnpackData * fUnpackData
Unpack step is mandatory before calling this.
FRSCalibr * fFRSCalibr
helper class to sort data from an UnpackData, see prespec library
void SetTA_Wall(Double_t z_tdssd_offset=0, Double_t ta_wall=3590.)
tdssd_offset is the z position of target DSSD in the AGATA FrameWork, ta_wall distance from ta to wal...
void SetPosWall(Double_t, Double_t, Double_t)
Set the position of the recoil on the wallD.
virtual void AddBranches(TTree *tree)
Add the specific branches filled by this watcher to the given tree.
HectorCalibrData * fHectorCalibrData
Calibr(const char *name, const char *title, TTree *tree=0x0, Short_t do_spectra=2, Short_t do_tree=2)
void BuildSpectraByUser()
define user spectra ... to be implementted by user only if it defines its ones spectra without condit...
Anl(const char *name, const char *title, TTree *tree=0x0, Short_t do_spectra=2, Short_t do_tree=2)
TObjArray fsis
void BuildSpectraByUser()
define user spectra ... to be implementted by user only if it defines its ones spectra without condit...
TH2 * fWall_D13_NvsP
virtual ~Unpack()
Sort(const char *name, const char *title, TTree *tree=0x0, Short_t do_spectra=2, Short_t do_tree=2)
virtual void FillBranches()
Should be used to reset a various data filled by this watcher.
void SetMeanBeta(Double_t beta=0.5)
Change mean beta.
LightLYCCAVertexBuilder_1(const char *, const char *)
void FillSpectraByUser()
Fill user spectra ... to be implementted by user only if it defines its ones spectra without conditio...
FRSCalibrData * fFRSCalibrData
CalibrData, see prespec library.
virtual void Clear(Option_t *="")
Should be used to reset a various data filled by this watcher.
TH2 * fTa_P_strip
void BuildSpectraByUser()
watch the current frame i.e. fill the UnpackData with the content of the MBS Frame ...
virtual void FillBranches()
Should be used to reset a various data filled by this watcher.
Sort data from unpackdata watchers.
virtual void Clear(Option_t *="")
clear the current event attached to the different branches
SortData * GetSortData()
to get back the SortData
Double_t GetTheta()
Get the cosinus of the angle.
TH2 * fWall_D12_NvsP
void SetTheta(Double_t cosTheta)
Set the cos of the angle.
HectorCalibrData * GetHectorCalibrData()
to get back the CalibrData from Hector
Unpack data from mbs encapsulated in ADF frame.
TH2 * fWall_D11_NvsP
void SetBeta()
Set Lycca beta.
FRSCalibrData * GetFRSCalibrData()
to get back the CalibrData from FRS
TH1 * fTrigger
LyccaData * fLyccaData
Base for a watcher on an ancillary (raw) frame @ GSI.
Definition: GSIWatchers.h:47
virtual ~Calibr()
FRSAnl * fFRSAnl
For the Analysis step.
virtual void Exec(Option_t *option="")
watch the current frame
HectorCalibr * fHectorCalibr
TH2 * fWall_D06_NvsP
Unpack(const char *name, const char *title, TTree *tree=0x0, Short_t do_spectra=2, Short_t do_tree=2)
UnpackData * GetUnpackData()
to get back the UnpackData
SortData * fSortData
SortData, see prespec library.
HectorCalibrData * fHectorCalibrData
HectorCalibrData * GetHectorCalibrData()
to get back the CalibrData from Hector
TH2 * fWall_D19_NvsP
virtual void FillBranches()
fill the current event attached to the different branches
SortData * fSortData
Sort step is mandatory before calling this.
virtual ~Anl()
TH2 * fWall_D14_NvsP