KaliVeda
Toolkit for HIC analysis
KVINDRAReconNuc.h
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 
57 
59 
102 
113 
119 
120  void CheckCsIEnergy();
121 
123  {
125  SetEnergy(-1.0);
126  }
128  {
130  SetEnergy(0.0);
131  }
132  void DoNeutronCalibration();
134  void DoGammaCalibration();
139 
140 public:
141 
143  {
147  return fCoherent;
148  };
150  {
154  return fPileup;
155  };
157  {
161  return fPileupSi75;
162  };
164  {
168  return fPileupSiLi;
169  };
171  {
175  return fPileupChIo;
176  };
178  {
184 
186  };
187  KVINDRAReconNuc();
189  void init();
190  virtual ~ KVINDRAReconNuc();
191 
192 #if ROOT_VERSION_CODE >= ROOT_VERSION(3,4,0)
193  virtual void Copy(TObject&) const;
194 #else
195  virtual void Copy(TObject&);
196 #endif
197  virtual void Clear(Option_t* t = "");
198  void Print(Option_t* option = "") const;
199 
200  UInt_t GetRingNumber(void) const
201  {
202  if (GetTelescope()) {
203  return GetTelescope()->GetRingNumber();
204  }
205  else {
206  return 0;
207  }
208  };
210  {
211  if (GetTelescope()) {
212  return GetTelescope()->GetNumber();
213  }
214  else {
215  return 0;
216  }
217  };
218 
219  virtual void Identify();
224  virtual void CalibrateRings1To9();
225  virtual void CalibrateRings10To17();
226  virtual void Calibrate();
227 
229  {
236 
237  return fEChIo;
238  };
240  {
247 
248  return fESi;
249  };
251  {
253 
254  return fESi75;
255  };
257  {
259 
260  return fESiLi;
261  };
263  {
265  return fECsI;
266  };
267 
269  {
273 
274  fEChIo = val;
275  };
277  {
284 
285  fESi = val;
286  };
288  {
290  fESi75 = val;
291  };
293  {
295  fESiLi = val;
296  };
298  {
300  fECsI = val;
301  };
302 
303  KVChIo* GetChIo();
304  KVSilicon* GetSi();
305  KVSi75* GetSi75();
306  KVSiLi* GetSiLi();
307  KVCsI* GetCsI();
313 
315  {
316  return fCodes;
317  }
318  void SetIDCode(UShort_t code_mask)
319  {
321  GetCodes().SetIDCode(code_mask);
322  KVReconstructedNucleus::SetIDCode(GetCodes().GetVedaIDCode());
323  }
324 
325  void SetECode(UChar_t code_mask)
326  {
328  GetCodes().SetECode(code_mask);
329  KVReconstructedNucleus::SetECode(GetCodes().GetVedaECode());
330  }
331  Int_t GetIDCode() const
332  {
338  if (GetParameters()->HasIntParameter("IDCODE")) return GetParameters()->GetIntValue("IDCODE");
339  return GetCodes().GetVedaIDCode();
340  }
341  Int_t GetECode() const
342  {
348  if (GetParameters()->HasIntParameter("ECODE")) return GetParameters()->GetIntValue("ECODE");
349  return GetCodes().GetVedaECode();
350  }
351 
352  Int_t GetIDSubCode(const Char_t* id_tel_type = "") const;
353  const Char_t* GetIDSubCodeString(const Char_t* id_tel_type = "") const;
355  {
357  return (GetStoppingDetector() ? dynamic_cast<KVINDRADetector*>(GetStoppingDetector())->GetTelescope() : 0);
358  }
359 
360  ClassDef(KVINDRAReconNuc, 12) //Nucleus identified by INDRA array
361 };
362 
363 #endif
int Int_t
unsigned int UInt_t
bool Bool_t
unsigned short UShort_t
unsigned char UChar_t
char Char_t
float Float_t
double Double_t
const char Option_t
#define ClassDef(name, id)
UInt_t GetNumber() const
Definition: KVBase.h:220
Ionisation chamber detectors of the INDRA multidetector array.
Definition: KVChIo.h:30
CsI(Tl) scintillation detectors of the INDRA multidetector array.
Definition: KVCsI.h:16
Identification code structure for INDRA data (obsolete)
Definition: KVINDRACodes.h:42
void SetIDCode(UShort_t)
Set ID code - the argument given is one of the EVedaCodes or EIDCodes bitmasks.
UChar_t GetVedaECode()
Returns VEDA6 energy calibration code.
UChar_t GetVedaIDCode()
Returns VEDA6 identification code.
void SetECode(UChar_t)
Set E code - the argument given is one of the EVedaCodes or EIDCodes bitmasks.
Base class for detectors of INDRA array.
Nuclei reconstructed from data measured in the INDRA array.
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.
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)
Int_t GetECode() const
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
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()
Int_t GetIDCode() const
Float_t fEChIo
chio contribution to energy
Bool_t UseFullChIoEnergyForCalib() const
void SetIDCode(UShort_t code_mask)
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
void SetECode(UChar_t code_mask)
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:815
void SetEnergy(Double_t e)
Definition: KVParticle.h:599
Nuclei reconstructed from data measured by a detector array .
virtual void SetIDCode(UShort_t s)
KVDetector * GetStoppingDetector() const
void SetDetector(int i, KVDetector *);
virtual void SetECode(UChar_t s)
80um silicon detector for INDRA etalon telescopes
Definition: KVSilicon.h:61
2mm + 40um dead zone Si(Li) detector for INDRA etalon telescopes
Definition: KVSilicon.h:79
Silicon detectors of the INDRA array.
Definition: KVSilicon.h:19