KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
KVDataPatch_Camp1MassID.cpp
Go to the documentation of this file.
1 //Created by KVClassFactory on Wed Jun 19 15:54:49 2019
2 //Author: John Frankland,,,
3 
5 
6 #include <KVINDRAReconNuc.h>
7 #include "TClass.h"
8 
10 
11 
12 
16  : KVDataPatch()
17 {
18  // Default constructor
19  SetName(ClassName());
20  SetTitle(Class()->GetTitle());
21 }
22 
23 
24 
27 
29 {
30  // Destructor
31 }
32 
33 
34 
42 
44 {
45  // Correct the following errors in 1st campagn data:
46  // * ring=1 idcode=2 (phoswich): should have IsAMeasured=kFALSE
47  // * ring=2-9 idcode=3 (si-csi): should have IsAMeasured=kFALSE
48  // * give correct VEDA mass to all particles with IsAMeasured=kFALSE
49  // * etalons have many strange isotopes (with mass id upto 12~13)
50  // - set IsAMeasured=kFALSE for any unknown nucleus or with lifetime < 1ns
51 
52  KVINDRAReconNuc* irn = dynamic_cast<KVINDRAReconNuc*>(n);
53  if (irn->IsAMeasured()) {
54  // check apparently isotopically-identified nuclei
55  if (irn->GetRingNumber() == 1) {
56  // phoswich
57  irn->SetAMeasured(kFALSE);
58  }
59  else if (irn->GetCodes().TestIDCode(kIDCode3)) {
60  if (irn->GetRingNumber() < 10) {
61  // si-csi rings 2-9
62  irn->SetAMeasured(kFALSE);
63  }
64  else if (!irn->IsKnown() || (irn->GetLifeTime() < 1.e-09)) {
65  // very exotic isotope in etalons
66  irn->SetAMeasured(kFALSE);
67  }
68  }
69  }
70  // apply VEDA mass formula to all nuclei with unmeasured mass
71  if (!irn->IsAMeasured()) {
73  irn->SetZ(irn->GetZ());//recalculate A
74  }
75 }
76 
77 
78 
80 
82 {
83  std::cout << "Correct the following errors in 1st campagn data:" << std::endl;
84  std::cout << " * ring=1 idcode=2 (phoswich): should have IsAMeasured=kFALSE" << std::endl;
85  std::cout << " * ring=2-9 idcode=3 (si-csi): should have IsAMeasured=kFALSE" << std::endl;
86  std::cout << " * give correct VEDA mass to all particles with IsAMeasured=kFALSE" << std::endl;
87  std::cout << " * etalons have many strange isotopes (with mass id upto 12~13)" << std::endl;
88  std::cout << " - set IsAMeasured=kFALSE for any unknown nucleus or with lifetime < 1ns" << std::endl;
89 
90 }
91 
92 
93 
@ kIDCode3
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
const Bool_t kFALSE
Correct mass identification in 1st campaign data.
virtual void PrintPatchInfo() const
void ApplyToParticle(KVReconstructedNucleus *)
virtual ~KVDataPatch_Camp1MassID()
Destructor.
Correction to be applied to reconstructed calibrated data.
Definition: KVDataPatch.h:54
Bool_t TestIDCode(UShort_t code)
Nuclei reconstructed from data measured in the INDRA array.
UInt_t GetRingNumber(void) const
KVINDRACodes & GetCodes() const
Bool_t IsKnown(int z=-1, int a=-1) const
Definition: KVNucleus.cpp:1279
void SetZ(Int_t z, Char_t mt=-1)
Definition: KVNucleus.cpp:704
void SetMassFormula(UChar_t mt)
Definition: KVNucleus.h:344
Int_t GetZ() const
Return the number of proton / atomic number.
Definition: KVNucleus.cpp:770
Double_t GetLifeTime(Int_t z=-1, Int_t a=-1) const
Definition: KVNucleus.cpp:1040
Nuclei reconstructed from data measured by a detector array .
virtual void SetAMeasured(Bool_t yes=kTRUE)
virtual Bool_t IsAMeasured() const
RooCmdArg ClassName(const char *name)
const Int_t n
gr SetName("gr")
const char * Class