KaliVeda  1.13/01
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 
199  UInt_t GetRingNumber(void) const
200  {
201  if (GetTelescope()) {
202  return GetTelescope()->GetRingNumber();
203  }
204  else {
205  return 0;
206  }
207  };
209  {
210  if (GetTelescope()) {
211  return GetTelescope()->GetNumber();
212  }
213  else {
214  return 0;
215  }
216  };
217 
218  virtual void Identify();
223  virtual void CalibrateRings1To9();
224  virtual void CalibrateRings10To17();
225  virtual void Calibrate();
226 
228  {
235 
236  return fEChIo;
237  };
239  {
246 
247  return fESi;
248  };
250  {
252 
253  return fESi75;
254  };
256  {
258 
259  return fESiLi;
260  };
262  {
264  return fECsI;
265  };
266 
268  {
272 
273  fEChIo = val;
274  };
276  {
283 
284  fESi = val;
285  };
287  {
289  fESi75 = val;
290  };
292  {
294  fESiLi = val;
295  };
297  {
299  fECsI = val;
300  };
301 
302  KVChIo* GetChIo();
303  KVSilicon* GetSi();
304  KVSi75* GetSi75();
305  KVSiLi* GetSiLi();
306  KVCsI* GetCsI();
312 
314  {
315  return fCodes;
316  }
317  virtual Int_t GetIDCode() const
318  {
324  if (GetParameters()->HasIntParameter("IDCODE")) return GetParameters()->GetIntValue("IDCODE");
325  return GetCodes().GetVedaIDCode();
326  }
327  virtual Int_t GetECode() const
328  {
334  if (GetParameters()->HasIntParameter("ECODE")) return GetParameters()->GetIntValue("ECODE");
335  return GetCodes().GetVedaECode();
336  }
337 
338  Int_t GetIDSubCode(const Char_t* id_tel_type = "") const;
339  const Char_t* GetIDSubCodeString(const Char_t* id_tel_type = "") const;
341  {
343  return (GetStoppingDetector() ? dynamic_cast<KVINDRADetector*>(GetStoppingDetector())->GetTelescope() : 0);
344  }
345 
346  ClassDef(KVINDRAReconNuc, 12) //Nucleus identified by INDRA array
347 };
348 
349 #endif
int Int_t
unsigned int UInt_t
@ kECode15
@ kECode0
char Char_t
bool Bool_t
double Double_t
float Float_t
const char Option_t
#define ClassDef(name, id)
UInt_t GetNumber() const
Definition: KVBase.h:219
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
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)
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.
Int_t GetIntValue(const Char_t *name) const
KVNameValueList * GetParameters() const
Definition: KVParticle.h:816
void SetEnergy(Double_t e)
Definition: KVParticle.h:601
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:59
2mm + 40um dead zone Si(Li) detector for INDRA etalon telescopes
Definition: KVSilicon.h:76
Silicon detectors of the INDRA array.
Definition: KVSilicon.h:18