KaliVeda  1.12/06
Heavy-Ion Analysis Toolkit
KVINDRAReconNuc.h
Go to the documentation of this file.
1 /***************************************************************************
2  kvdetectedparticle.h - description
3  -------------------
4  begin : Thu Oct 10 2002
5  copyright : (C) 2002 by J.D. Frankland
6  email : frankland@ganil.fr
7 
8 $Id: KVINDRAReconNuc.h,v 1.39 2009/04/03 14:28:37 franklan Exp $
9  ***************************************************************************/
10 
11 /***************************************************************************
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * *
18  ***************************************************************************/
19 
20 #ifndef KVINDRADETPART_H
21 #define KVINDRADETPART_H
22 
23 
24 #include "KVReconstructedNucleus.h"
25 #include "KVINDRADetector.h"
26 #include "KVTelescope.h"
27 #include "KVINDRACodes.h"
28 #include "KVINDRAIDTelescope.h"
29 
30 class KVChIo;
31 class KVSilicon;
32 class KVSi75;
33 class KVSiLi;
34 class KVCsI;
35 
56 
58 
101 
112 
118 
119  void CheckCsIEnergy();
120 
122  {
124  SetEnergy(-1.0);
125  }
127  {
128  SetECode(kECode0);
129  SetEnergy(0.0);
130  }
131  void DoNeutronCalibration();
133  void DoGammaCalibration();
138 
139 public:
140 
142  {
146  return fCoherent;
147  };
149  {
153  return fPileup;
154  };
156  {
160  return fPileupSi75;
161  };
163  {
167  return fPileupSiLi;
168  };
170  {
174  return fPileupChIo;
175  };
177  {
183 
185  };
186  KVINDRAReconNuc();
188  void init();
189  virtual ~ KVINDRAReconNuc();
190 
191 #if ROOT_VERSION_CODE >= ROOT_VERSION(3,4,0)
192  virtual void Copy(TObject&) const;
193 #else
194  virtual void Copy(TObject&);
195 #endif
196  virtual void Clear(Option_t* t = "");
197  void Print(Option_t* option = "") const;
198  inline Short_t GetTimeMarker() const
199  {
200  if (!GetStoppingDetector()) return -1;
202  if (!mqrt || !mqrt->IsWorking()) return -1;
203  return (Short_t)mqrt->GetCoderData();
204  };
205  UInt_t GetRingNumber(void) const
206  {
207  if (GetTelescope()) {
208  return GetTelescope()->GetRingNumber();
209  }
210  else {
211  return 0;
212  }
213  };
215  {
216  if (GetTelescope()) {
217  return GetTelescope()->GetNumber();
218  }
219  else {
220  return 0;
221  }
222  };
223 
224  virtual void Identify();
229  virtual void CalibrateRings1To9();
230  virtual void CalibrateRings10To17();
231  virtual void Calibrate();
232 
234  {
241 
242  return fEChIo;
243  };
245  {
252 
253  return fESi;
254  };
256  {
258 
259  return fESi75;
260  };
262  {
264 
265  return fESiLi;
266  };
268  {
270  return fECsI;
271  };
272 
274  {
278 
279  fEChIo = val;
280  };
282  {
289 
290  fESi = val;
291  };
293  {
295  fESi75 = val;
296  };
298  {
300  fESiLi = val;
301  };
303  {
305  fECsI = val;
306  };
307 
308  KVChIo* GetChIo();
309  KVSilicon* GetSi();
310  KVSi75* GetSi75();
311  KVSiLi* GetSiLi();
312  KVCsI* GetCsI();
318 
320  {
321  return fCodes;
322  }
323  virtual Int_t GetIDCode() const
324  {
326  return GetCodes().GetVedaIDCode();
327  }
328  virtual Int_t GetECode() const
329  {
331  return GetCodes().GetVedaECode();
332  }
333 
334  Int_t GetIDSubCode(const Char_t* id_tel_type = "") const;
335  const Char_t* GetIDSubCodeString(const Char_t* id_tel_type = "") const;
337  {
339  return (GetStoppingDetector() ? dynamic_cast<KVINDRADetector*>(GetStoppingDetector())->GetTelescope() : 0);
340  }
341 
342  ClassDef(KVINDRAReconNuc, 12) //Nucleus identified by INDRA array
343 };
344 
345 #endif
int Int_t
unsigned int UInt_t
@ kECode15
@ kECode0
char Char_t
bool Bool_t
short Short_t
double Double_t
float Float_t
const char Option_t
#define ClassDef(name, id)
GANIL VXI/VME acquisition parameter.
Definition: KVACQParam.h:15
Short_t GetCoderData() const
Definition: KVACQParam.h:64
Bool_t IsWorking() const
Definition: KVACQParam.h:126
UInt_t GetNumber() const
Definition: KVBase.h:213
Ionisation chamber detectors of the INDRA multidetector array.
Definition: KVChIo.h:29
CsI(Tl) scintillation detectors of the INDRA multidetector array.
Definition: KVCsI.h:15
virtual KVACQParam * GetACQParam(const Char_t *) const
Definition: KVDetector.cpp:646
Identification code structure for INDRA data (obsolete)
Definition: KVINDRACodes.h:41
UChar_t GetVedaECode()
Returns VEDA6 energy calibration code.
UChar_t GetVedaIDCode()
Returns VEDA6 identification code.
Base class for detectors of INDRA array.
Nuclei reconstructed from data measured in the INDRA array.
virtual Int_t GetIDCode() const
Bool_t StoppedInSi()
Returns kTRUE if particle stopped in Si detector.
void SetEnergyCsI(Float_t val)
Bool_t StoppedInChIo()
Returns kTRUE if particle stopped in ChIo detector.
void SetEnergySi(Float_t val)
void CalculateSi75DEFromResidualEnergy(Double_t ERES)
Short_t GetTimeMarker() const
virtual Bool_t CoherencyEtalons(KVIdentificationResult &theID)
Called by Identify() for particles stopping in etalon modules of Rings 10-17.
virtual Int_t GetECode() const
Float_t GetEnergySiLi()
Bool_t fCorrectCalib
set to kTRUE in Streamer if calibration needs correction
void SetEnergyChIo(Float_t val)
virtual void Identify()
Bool_t fCoherentSi75SiLiCsI
coherency of Si75-SiLi and SiLi-CsI/CsI identifications
const Char_t * GetIDSubCodeString(const Char_t *id_tel_type="") const
Float_t fESi
si contribution to energy
Bool_t fPileupChIo
apparent pileup in ChIo, revealed by inconsistency between CsI & ChIo-CsI identifications
Bool_t IsSiPileup() const
void SetEnergySi75(Float_t val)
Float_t GetEnergySi75()
KVSilicon * GetSi()
KVINDRACodes fCodes
VEDA6-style calibration and identification codes.
virtual Bool_t CoherencySiCsI(KVIdentificationResult &theID)
Bool_t fPileupSi75
apparent pileup in Si75, revealed by inconsistency between CsI/SiLi-CsI & ChIo-Si75 identifications
UInt_t GetRingNumber(void) const
virtual void Clear(Option_t *t="")
reset nucleus' properties
virtual void Copy(TObject &) const
void DoGammaCalibration()
no calibration is performed for gammas
Float_t GetEnergySi()
void SetBadCalibrationStatus()
void CalculateSiLiDEFromResidualEnergy(Double_t ERES)
Float_t fECsI
csi contribution to energy
Bool_t IsSiLiPileup() const
Bool_t StoppedInCsI()
Returns kTRUE if particle stopped in CsI detector.
virtual void Calibrate()
virtual Bool_t CoherencyChIoCsI(KVIdentificationResult &theID)
void init()
default initialisations
virtual ~ KVINDRAReconNuc()
Bool_t IsSi75Pileup() const
KVINDRACodes & GetCodes() const
void SetEnergySiLi(Float_t val)
Bool_t fPileupSiLi
apparent pileup in SiLi, revealed by inconsistency between CsI & Si75-SiLi identifications
Bool_t StoppedInSi75()
Returns kTRUE if particle stopped in Si75 detector.
void Print(Option_t *option="") const
Display nucleus parameters.
virtual void CalibrateRings1To9()
KVINDRAReconNuc()
default ctor
Bool_t CalculateSiliconDEFromResidualEnergy()
Bool_t fUseFullChIoEnergyForCalib
decided by coherency analysis
Int_t GetIDSubCode(const Char_t *id_tel_type="") const
Float_t fESiLi
sili contribution to energy
virtual void CalibrateRings10To17()
UInt_t GetModuleNumber(void) const
void SetNoCalibrationStatus()
Bool_t fPileup
apparent pileup in Si, revealed by inconsistency between CsI & Si-CsI identifications
Float_t GetEnergyChIo()
Bool_t IsChIoPileup() const
Float_t GetEnergyCsI()
Float_t fEChIo
chio contribution to energy
Bool_t UseFullChIoEnergyForCalib() const
virtual Bool_t CoherencyChIoSiCsI(KVIdentificationResult)
void CalculateChIoDEFromResidualEnergy(Double_t ERES)
calculate fEChIo from residual energy
Bool_t fIncludeEtalonsInCalibration
for etalon modules:particle passed through Si75/SiLi
KVINDRATelescope * GetTelescope() const
Bool_t fCoherent
coherency of CsI & Si-CsI identifications
Bool_t AreSiCsICoherent() const
Float_t fESi75
si75 contribution to energy
Bool_t StoppedInSiLi()
Returns kTRUE if particle stopped in Si detector.
Base class for telescopes in INDRA array.
Int_t GetRingNumber() const
Full result of one attempted particle identification.
void SetEnergy(Double_t e)
Definition: KVParticle.h:560
Nuclei reconstructed from data measured by a detector array ,.
KVDetector * GetStoppingDetector() const
void SetDetector(int i, KVDetector *);
80um silicon detector for INDRA etalon telescopes
Definition: KVSilicon.h:60
2mm + 40um dead zone Si(Li) detector for INDRA etalon telescopes
Definition: KVSilicon.h:77
Silicon detectors of the INDRA array.
Definition: KVSilicon.h:18