KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
KVIDChIoSi.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  KVIDChIoSi.cpp - description
3  -------------------
4  begin : Fri Feb 20 2004
5  copyright : (C) 2004 by J.D. Frankland
6  email : frankland@ganil.fr
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #include "KVIDChIoSi.h"
19 #include "KVIdentificationResult.h"
20 #include "KVINDRACodeMask.h"
21 #include "KVDataSet.h"
22 
25 //KVIDChIoSi
26 //
27 //Identification in ChIo-Si matrices of INDRA
28 //
30 
31 //________________________________________________________________________________________//
32 
33 
34 
38 {
39  //Particle identification and code setting using identification grid KVIDGChIoSi
40 
41  IDR->SetIDType(GetType());
42  IDR->IDattempted = kTRUE;
43  //identification
44  Double_t chio = (y < 0. ? GetIDMapY() : y);
45  Double_t si = (x < 0. ? GetIDMapX() : x);
46 
47  if (ChIoSiGrid->IsIdentifiable(si, chio))
48  ChIoSiGrid->Identify(si, chio, IDR);
49  Int_t quality = ChIoSiGrid->GetQualityCode();
50  IDR->IDquality = quality;
51 
52  // set general ID code
53  IDR->IDcode = kIDCode4;
54  //if point lies above Zmax line, we give Zmax as Z of particle (real Z is >= Zmax)
55  //general ID code = kIDCode5 (Zmin)
56  if (quality == KVIDZAGrid::kICODE7) {
57  IDR->IDcode = kIDCode5;
58  }
59  //Identified particles with subcode kID_LeftOfBragg are given
60  //general ID code kIDCode5 (Zmin).
61  if (quality == KVIDGChIoSi::k_LeftOfBragg) {
62  IDR->IDcode = kIDCode5;
63  }
64  //unidentifiable particles with subcode kID_BelowSeuilSi are given
65  //general ID code kIDCode5 (Zmin) and we estimate Zmin from energy
66  //loss in ChIo
67  if (quality == KVIDGChIoSi::k_BelowSeuilSi) {
68  IDR->IDcode = kIDCode5;
69  IDR->Z = fchio->FindZmin();
70  IDR->SetComment("point to identify left of Si threshold line (bruit/arret ChIo?)");
71  }
72  if (quality == KVIDGChIoSi::k_RightOfEmaxSi) IDR->SetComment("point to identify has E_Si > Emax_Si i.e. codeur is saturated. Unidentifiable");
73 
74  return kTRUE;
75 }
76 
77 
78 
79 
86 
88 {
89  // Initialisation of telescope before identification.
90  // This method MUST be called once before any identification is attempted.
91  // Initialisation of grid is performed here.
92  // IsReadyForID() will return kTRUE if a grid is associated to this telescope for the current run
93  // or if no calib/ident parameters are available for current dataset.
94 
95  fchio = GetDetector(1);
96  fsi = GetDetector(2);
97 // fsipgped = fsi->GetPedestal("PG");
98 // fchiopgped = fchio->GetPedestal("PG");
100  if (ChIoSiGrid) {
103  }
104  else
107 }
108 
109 
110 
115 
117 {
118  // Overrides KVIDTelescope method
119  // We lower the calculated energy threshold to be better in agreement with data
120  // EINC argument not used as ChIo-Si is always first telescope
121 
122  Double_t emin = (1.9 / 2.5) * (fchio->GetEIncOfMaxDeltaE(ION->GetZ(), ION->GetA()));
123  return (ION->GetEnergy() > emin);
124 
125 }
126 
127 
int Int_t
KVDataSet * gDataSet
Definition: KVDataSet.cpp:29
@ kIDCode5
@ kIDCode4
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
bool Bool_t
double Double_t
const Bool_t kTRUE
Bool_t HasCalibIdentInfos() const
Definition: KVDataSet.h:403
virtual Double_t GetEIncOfMaxDeltaE(Int_t Z, Int_t A)
Identification in ChIo-Si telescopes of INDRA.
Definition: KVIDChIoSi.h:29
virtual void Initialize()
Definition: KVIDChIoSi.cpp:87
Bool_t CheckTheoreticalIdentificationThreshold(KVNucleus *, Double_t=0.0)
Definition: KVIDChIoSi.cpp:116
KVDetector * fchio
Definition: KVIDChIoSi.h:34
KVIDGChIoSi * ChIoSiGrid
Definition: KVIDChIoSi.h:33
KVDetector * fsi
Definition: KVIDChIoSi.h:35
Identification grids for ChIo-Si telescopes of INDRA.
Definition: KVIDGChIoSi.h:61
virtual void Initialize()
KVDetector * GetDetector(UInt_t n) const
KVIDGraph * GetIDGrid()
Full result of one attempted particle identification.
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:125
Int_t GetA() const
Definition: KVNucleus.cpp:799
Int_t GetZ() const
Return the number of proton / atomic number.
Definition: KVNucleus.cpp:770
Double_t GetEnergy() const
Definition: KVParticle.h:623
void SetBit(UInt_t f)
void ResetBit(UInt_t f)
Double_t y[n]
Double_t x[n]
Type GetType(const std::string &Name)