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 "KVINDRACodes.h"
27 #include "KVINDRAIDTelescope.h"
28 
29 class KVChIo;
30 class KVSilicon;
31 class KVSi75;
32 class KVSiLi;
33 class KVCsI;
34 
56 
58 
101 
112 
118 
119  void CheckCsIEnergy();
120 
122  {
124  SetEnergy(-1.0);
125  }
127  {
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  void Copy(TObject&) const override;
193 #else
194  virtual void Copy(TObject&);
195 #endif
196  void Clear(Option_t* t = "") override;
197  void Print(Option_t* option = "") const override;
198 
199  int GetRingNumber() const
200  {
201  return GetStoppingDetector() ?
203  : 0;
204  }
205  int GetModuleNumber() const
206  {
207  return GetStoppingDetector() ?
209  : 0;
210  }
211  virtual void Identify();
216  virtual void CalibrateRings1To9();
217  virtual void CalibrateRings10To17();
218  virtual void Calibrate();
219 
221  {
228 
229  return fEChIo;
230  };
232  {
239 
240  return fESi;
241  };
243  {
245 
246  return fESi75;
247  };
249  {
251 
252  return fESiLi;
253  };
255  {
257  return fECsI;
258  };
259 
261  {
265 
266  fEChIo = val;
267  };
269  {
276 
277  fESi = val;
278  };
280  {
282  fESi75 = val;
283  };
285  {
287  fESiLi = val;
288  };
290  {
292  fECsI = val;
293  };
294 
295  KVChIo* GetChIo();
296  KVSilicon* GetSi();
297  KVSi75* GetSi75();
298  KVSiLi* GetSiLi();
299  KVCsI* GetCsI();
305 
307  {
308  return fCodes;
309  }
310  void SetIDCode(UShort_t code_mask) override
311  {
313  GetCodes().SetIDCode(code_mask);
314  KVReconstructedNucleus::SetIDCode(GetCodes().GetVedaIDCode());
315  }
316 
317  void SetECode(UChar_t code_mask) override
318  {
320  GetCodes().SetECode(code_mask);
321  KVReconstructedNucleus::SetECode(GetCodes().GetVedaECode());
322  }
323  Int_t GetIDCode() const override
324  {
330  if (GetParameters()->HasIntParameter("IDCODE")) return GetParameters()->GetIntValue("IDCODE");
331  return GetCodes().GetVedaIDCode();
332  }
333  Int_t GetECode() const override
334  {
340  if (GetParameters()->HasIntParameter("ECODE")) return GetParameters()->GetIntValue("ECODE");
341  return GetCodes().GetVedaECode();
342  }
343 
344  Int_t GetIDSubCode(const Char_t* id_tel_type = "") const;
345  const Char_t* GetIDSubCodeString(const Char_t* id_tel_type = "") const;
346 
347  ClassDefOverride(KVINDRAReconNuc, 12) //Nucleus identified by INDRA array
348 };
349 
350 #endif
int Int_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 ClassDefOverride(name, id)
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.
int GetModuleNumber() const
void SetEnergyCsI(Float_t val)
Bool_t StoppedInChIo()
Returns kTRUE if particle stopped in ChIo detector.
int GetRingNumber() const
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.
void SetECode(UChar_t code_mask) override
void Copy(TObject &) const override
void Clear(Option_t *t="") override
reset nucleus' properties
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
void DoGammaCalibration()
no calibration is performed for gammas
Int_t GetECode() const override
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)
Int_t GetIDCode() const override
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.
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()
void SetIDCode(UShort_t code_mask) override
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
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.
void Print(Option_t *option="") const override
Full result of one attempted particle identification.
Int_t GetIntValue(const Char_t *name) const
KVNameValueList * GetParameters() const
Definition: KVParticle.h:818
void SetEnergy(Double_t e)
Definition: KVParticle.h:602
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:48
2mm + 40um dead zone Si(Li) detector for INDRA etalon telescopes
Definition: KVSilicon.h:69
Silicon detectors of the INDRA array.
Definition: KVSilicon.h:16