7 #include "KVMultiDetArray.h"
9 #include <KVGeoImport.h>
12 #include "KVFAZIATrigger.h"
14 #if ROOT_VERSION_CODE <= ROOT_VERSION(5,32,0)
39 Int_t fStartingBlockNumber;
66 double oldfaziats = -1.;
68 TString fSiCsI_idtype =
"SI2_CSI";
70 void SetTriggerPatternsForDataSet(
const TString& dataset);
71 void SetTriggerPattern(uint16_t fp)
77 virtual void BuildFAZIA();
78 virtual void GetGeometryParameters();
81 virtual void BuildTarget();
82 void GenerateCorrespondanceFile();
83 virtual void SetNameOfDetectors(
KVEnv& env);
85 virtual void DefineStructureFormats(
KVGeoImport&) {}
88 Bool_t handle_raw_data_event_mfmframe(
const MFMCommonFrame&)
override;
90 void copy_fired_parameters_to_recon_param_list()
override
101 void PerformClosedROOTGeometryOperations()
override;
103 void CreateCorrespondence();
107 Bool_t treat_event(
const DAQ::FzEvent&);
113 void ReadTriggerPatterns(
KVExpDB* db);
115 void prepare_to_handle_new_raw_data()
119 SetTriggerPattern(0);
125 UChar_t GetNormalCalibrationCode()
const override
128 return ECodes::NORMAL_CALIBRATION;
152 return IDCodes::ID_STOPPED_IN_FIRST_STAGE;
156 return IDCodes::NO_IDENTIFICATION;
163 return "NO_IDENTIFICATION";
177 return "ID_SI12_CSI";
181 return "ID_STOPPED_IN_FIRST_STAGE";
183 return "ID_SI1_SI2_MAYBE_PUNCH_THROUGH";
185 return "ID_SI1_SI2_PUNCH_THROUGH";
187 return "ID_SI1_PUNCH_THROUGH";
189 return Form(
"(unknown:%d)", idc);
206 return "NO_CALIBRATION_ATTEMPTED";
208 return "NORMAL_CALIBRATION";
210 return "SOME_ENERGY_LOSSES_CALCULATED";
212 return "WARNING_CSI_MAX_ENERGY";
214 return "ENERGY_LOSSES_TENTATIVELY_CALCULATED (for Z=1,2 stopped in uncalibrated CsI)";
216 return Form(
"(unknown:%d)", ec);
233 fBuildTarget = include;
238 return fDetectorLabels;
242 return fSignalTypes.
Data();
252 fImport_PhiMax = pmax;
253 fImport_PhiMin = pmin;
254 fImport_ThetaMax = tmax;
255 fImport_ThetaMin = tmin;
305 trans.
SetDz(distance) ;
307 if (postTrans)
h = (*postTrans) * rot2 * trans * rot1 ;
308 else h = rot2 * trans * rot1;
317 return fSiCsI_idtype;
#define ClassDefOverride(name, id)
char * Form(const char *fmt,...)
List of hit groups in a multidetector array.
Extension of TEnv to allow the writing of comments in the file.
Base class to describe database of an experiment ,,.
The trigger pattern for each FAZIA event.
void SetTriggerPattern(uint16_t tp)
Description of a FAZIA detector geometry.
void SetGeometryImportParameters(Double_t dt=0.25, Double_t dp=1.0, Double_t tmin=2., Double_t pmin=0, Double_t tmax=20., Double_t pmax=360., Double_t xorg=0, Double_t yorg=0, Double_t zorg=0)
Double_t GetSetupParameter(const Char_t *parname)
ECodes
Calibration quality codes attributed to particles reconstructed from data.
@ NO_CALIBRATION_ATTEMPTED
particle stopped in detectors with no available calibration
@ NORMAL_CALIBRATION
normal well-calibrated particle with no problems
@ WARNING_CSI_MAX_ENERGY
particle calibration OK, although apparent energy would mean punching through the CsI
@ ENERGY_LOSSES_TENTATIVELY_CALCULATED
particle calibration OK, with some detector energies tentatively calculated (Z<2)
@ SOME_ENERGY_LOSSES_CALCULATED
particle calibration OK, with some detector energies calculated
TString GetIDCodeMeaning(Int_t idc) const override
std::string GetTriggerForCurrentRun() const
void AddDetectorLabel(const Char_t *label)
TString GetECodeMeaning(Int_t ec) const override
const KVFAZIATrigger & GetTrigger() const
void GetDetectorEvent(KVDetectorEvent *detev, const TSeqCollection *dets) override
void AssociateTrajectoriesAndNodes() override
Int_t GetNumberOfBlocks() const
TString GetSiCsIIDType() const
void Build(Int_t=-1) override
Build the FAZIA array.
static TGeoHMatrix * GetFAZIAVolumePositioningMatrix(Double_t distance, Double_t theta, Double_t phi, TGeoTranslation *postTrans=nullptr)
Int_t GetIDCodeForParticlesStoppingInFirstStageOfTelescopes() const override
void DeduceIdentificationTelescopesFromGeometry() override
KVFAZIA(const Char_t *title="")
Default constructor.
void FillDetectorList(KVReconstructedNucleus *rnuc, KVHashList *DetList, const KVString &DetNames) override
virtual ~KVFAZIA()
Destructor.
KVGroupReconstructor * GetReconstructorForGroup(const KVGroup *) const override
Specialized group reconstructor for FAZIA.
IDCodes
Identification quality codes attributed to particles reconstructed from data.
@ ID_SI12_CSI
particle identified in (SI1+SI2)-CSI telescope
@ ID_SI1_SI2_MAYBE_PUNCH_THROUGH
possible ambiguity of particle identification in SI1-SI2 due to unvetoed punch-through
@ ID_CSI_PSA
particle identified by pulse shape analysis in CSI
@ ID_STOPPED_IN_FIRST_STAGE
particle stopped in SI1, no identification possible better than estimation of minimum Z
@ ID_SI1_SI2_PUNCH_THROUGH
particle punching through SI2, identified Z is a minimum value
@ ID_SI1_CSI
particle identified in SI1-SI2 telescope
@ ID_SI1_PSA
particle identified by pulse shape analysis in SI1
@ ID_SI1_PUNCH_THROUGH
particle partially identified by pulse shape analysis in SI1, although it is punching through (no SI2...
@ ID_SI2_PSA
particle identified by pulse shape analysis in SI1
@ NO_IDENTIFICATION
no identification possible for particle
@ ID_GAMMA
'gamma' particle identified by pulse shape analysis in CSI
@ ID_SI2_CSI
particle identified in SI2-CSI telescope
@ ID_INCOHERENT
particle with incoherent identifications (CCode>=0)
@ ID_SI1_SI2
particle identified in SI1-SI2 telescope
const Char_t * GetSignalTypes() const
void IncludeTargetInGeometry(Bool_t include=kTRUE)
KVString GetDetectorLabels() const
void SetRawDataFromReconEvent(const KVReconstructedEvent &recev) override
Set values of all raw data parameters and the value of the trigger bit pattern for the event.
Short_t GetBadIDCode() const override
void MakeCalibrationTables(KVExpDB *) override
Override base method in order to read FAZIA trigger for each run.
Import detector array described by ROOT geometry and set up corresponding KVMultiDetArray object.
Base class for particle reconstruction in one group of a detector array.
Group of detectors which can be treated independently of all others in array.
Extended version of ROOT THashList.
Base class for all detectors or associations of detectors in array which can identify charged particl...
Base class for describing the geometry of a detector array.
void prepare_to_handle_new_raw_data()
reset acquisition parameters etc. before reading new raw data event
Read Google Protobuf DAQ files.
Event containing KVReconstructedNucleus nuclei reconstructed from hits in detectors.
Nuclei reconstructed from data measured by a detector array .
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
void SetAngles(Double_t phi, Double_t theta, Double_t psi)
void SetDz(Double_t dz) override
const char * Data() const