KaliVeda
Toolkit for HIC analysis
KVDataPatch_Camp1MassID.cpp
1 //Created by KVClassFactory on Wed Jun 19 15:54:49 2019
2 //Author: John Frankland,,,
3 
4 #include "KVDataPatch_Camp1MassID.h"
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) {
54  Fatal("ApplyToParticle", "Cannot apply this data patch to objects of class %s, only KVINDRAReconNuc objects", n->ClassName());
55  }
56  if (irn->IsAMeasured()) {
57  // check apparently isotopically-identified nuclei
58  if (irn->GetRingNumber() == 1) {
59  // phoswich
60  irn->SetAMeasured(kFALSE);
61  }
63  if (irn->GetRingNumber() < 10) {
64  // si-csi rings 2-9
65  irn->SetAMeasured(kFALSE);
66  }
67  else if (!irn->IsKnown() || (irn->GetLifeTime() < 1.e-09)) {
68  // very exotic isotope in etalons
69  irn->SetAMeasured(kFALSE);
70  }
71  }
72  }
73  // apply VEDA mass formula to all nuclei with unmeasured mass
74  if (!irn->IsAMeasured()) {
76  irn->SetZ(irn->GetZ());//recalculate A
77  }
78 }
79 
80 
81 
83 
85 {
86  std::cout << "Correct the following errors in 1st campagn data:" << std::endl;
87  std::cout << " * ring=1 idcode=2 (phoswich): should have IsAMeasured=kFALSE" << std::endl;
88  std::cout << " * ring=2-9 idcode=3 (si-csi): should have IsAMeasured=kFALSE" << std::endl;
89  std::cout << " * give correct VEDA mass to all particles with IsAMeasured=kFALSE" << std::endl;
90  std::cout << " * etalons have many strange isotopes (with mass id upto 12~13)" << std::endl;
91  std::cout << " - set IsAMeasured=kFALSE for any unknown nucleus or with lifetime < 1ns" << std::endl;
92 
93 }
94 
95 
96 
constexpr 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:55
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:1282
void SetZ(Int_t z, Char_t mt=-1)
Definition: KVNucleus.cpp:707
void SetMassFormula(UChar_t mt)
Definition: KVNucleus.h:345
Int_t GetZ() const
Return the number of proton / atomic number.
Definition: KVNucleus.cpp:773
Double_t GetLifeTime(Int_t z=-1, Int_t a=-1) const
Definition: KVNucleus.cpp:1043
Nuclei reconstructed from data measured by a detector array .
virtual void SetAMeasured(Bool_t yes=kTRUE)
virtual Bool_t IsAMeasured() const
virtual void Fatal(const char *method, const char *msgfmt,...) const
RooCmdArg ClassName(const char *name)
gr SetName("gr")
const Int_t n
const char * Class
ClassImp(TPyArg)