24 fTransformKinematics =
kTRUE;
29 fGemDecayPerEvent = 1;
33 SetEventsReadInterval(100);
119 if (frame_name !=
"") to_rotate->
SetFrame(
"rotated_frame", frame_name,
r);
120 else to_rotate->
SetFrame(
"rotated_frame",
r);
147 if ((
fEVN <= 10))
Info(
"Analysis",
"%d events processed", (
int)
fEVN);
148 else if ((
fEVN <= 1000) && !(
fEVN % 100))
Info(
"Analysis",
"%d events processed", (
int)
fEVN);
151 if (
fEVN == 2500) memory_check->SetInitStatistics();
152 else if (
fEVN > 4995) memory_check->CompareToInit();
156 Int_t iterations = 1;
200 while (
fGemini && --iterations);
292 Info(
"InitAnalysis",
"Run given in options = %d", run);
297 Info(
"InitAnalysis",
"Using first run for system = %d", run);
300 Info(
"InitAnalysis",
"No run information");
314 Info(
"InitAnalysis",
"Filtering with ROOT geometry");
319 Info(
"InitAnalysis",
"Filtering with KaliVeda geometry");
325 Info(
"InitAnalysis",
"Geometric filter");
327 else if (filt ==
"GeoThresh") {
330 Info(
"InitAnalysis",
"Geometry + thresholds filter");
332 else if (filt ==
"Full") {
334 Info(
"InitAnalysis",
"Geometry + thresholds filter + implemented identifications and calibrations.");
341 Info(
"InitAnalysis",
"Simulation is in laboratory/detector frame");
345 Info(
"InitAnalysis",
"Simulation will be transformed to laboratory/detector frame");
351 if (
fRotate)
Info(
"InitAnalysis",
"Random phi rotation around beam axis performed for each event");
362 if (
fGemini)
Info(
"InitAnalysis",
"Statistical decay with Gemini++ for each event before detection");
364 if (
fGemAddRotEner)
Info(
"InitAnalysis",
" -- Rotational energy will be added to excitation energy");
379 Info(
"InitAnalysis",
"Setting identification bilan...");
467 outfile +=
"_Gemini";
473 outfile +=
GetOpt(
"Geometry");
475 outfile +=
GetOpt(
"Filter");
481 outfile +=
S->GetBatchName();
483 outfile +=
Form(
"%d", run);
485 else if (
GetOpt(
"System")) {
494 outfile += tmp.
Data();
522 (
new TNamed(
"Origin", (basefile +
".root").Data()))->
Write();
void AssignAndDelete(TString &target, char *tobedeleted)
KVDataSetManager * gDataSetManager
KVMultiDetArray * gMultiDetArray
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
R__EXTERN TRandom * gRandom
char * Form(const char *fmt,...)
R__EXTERN TSystem * gSystem
Relativistic binary kinematics calculator.
TVector3 GetCMVelocity() const
Return vector velocity of centre of mass of reaction (units: cm/ns)
void CalculateKinematics()
KVNucleus * GetNucleus(Int_t i) const
virtual void SetNumber(UInt_t num)
static Bool_t SearchKVFile(const Char_t *name, TString &fullpath, const Char_t *kvsubdir="")
static KVClassMonitor * GetInstance()
Return pointer to unique instance of class monitor class.
Description of an experimental run in database ,.
Database class used to store information on different colliding systems studied during an experiment.
KV2Body * GetKinematics()
KVList * GetRuns() const
Returns a sorted list of all the runs associated with this system.
virtual const Char_t * GetBatchName()
Manage all datasets contained in a given data repository.
virtual Bool_t Init(KVDataRepository *=0)
KVDataSet * GetDataSet(Int_t) const
Return pointer to DataSet using index in list of all datasets, index>=0.
Bool_t HasCalibIdentInfos() const
virtual const Char_t * GetReconstructedEventClassName() const
Filter simulated events with multidetector response.
TString fNewFrame
allow the definition of a specific frame
KVSimEvent fGemEvent
event after decay with Gemini
void OpenOutputFile(KVDBSystem *, Int_t)
Bool_t fTransformKinematics
=kTRUE if simulation not in lab frame
const char * fIdCalMode
original exp setup hasIDandCalib to be reset in case of modifications
void RandomRotation(KVEvent *to_rotate, const TString &frame_name="") const
Bool_t fGemini
true if Gemini++ decay should be performed before detection [default: no]
void Copy(TObject &) const
KVReconstructedEvent * fReconEvent
KVEventFiltering()
Default constructor.
Bool_t fGemAddRotEner
true if rotational energy has to be added to excitation energy [default: no]
Int_t fGemDecayPerEvent
number of Gemini++ decays to be performed for each event [default:1]
virtual ~KVEventFiltering()
Destructor.
Long64_t fEVN
event number counter
Bool_t fRotate
true if random phi rotation should be applied [default: yes]
General purpose analysis class for TTree containing KVEvent objects.
Bool_t fDisableCreateTreeFile
used with PROOF
Long64_t fTreeEntry
current tree entry number
Bool_t CreateTreeFile(const Char_t *filename="")
void AddTree(TTree *tree)
void SetEventsReadInterval(Long64_t N)
virtual Bool_t IsOptGiven(const Char_t *option)
Returns kTRUE if the option 'opt' has been set.
KVEvent * GetEvent() const
virtual TString GetOpt(const Char_t *option) const
Base class container for multi-particle events.
KVNameValueList * GetParameters() const
void SetFrameName(const KVString &)
static void MakeEventBranch(TTree *tree, const TString &branchname, const TString &classname, T &event, Int_t bufsize=10000000)
void SetParameter(const Char_t *name, ValType value) const
void SetFrame(const Char_t *frame, const KVFrameTransform &ft)
virtual KVDBSystem * GetSystem(const Char_t *system) const
void DecayEvent(const KVSimEvent *, KVSimEvent *, bool)
const Char_t * GetDetectorNameFormat() const
Base class for all detectors or associations of detectors in array which can identify charged particl...
void CheckIdentificationBilan(const TString &system)
Set status of ID Telescope for given system.
static void OpenIdentificationBilan(const TString &path)
Open IdentificationBilan.dat file with given path.
Bool_t IsROOTGeometry() const
KVSeqCollection * GetListOfIDTelescopes() const
virtual void DetectEvent(KVEvent *event, KVReconstructedEvent *rec_event, const Char_t *detection_frame="")
void SetFilterType(Int_t t)
KVGeoNavigator * GetNavigator() const
static KVMultiDetArray * MakeMultiDetector(const Char_t *dataset_name, Int_t run=-1, TString classname="KVMultiDetArray")
virtual void InitializeIDTelescopes()
virtual void SetROOTGeometry(Bool_t on=kTRUE)
void PrintStatusOfIDTelescopes()
virtual void SetSimMode(Bool_t on=kTRUE)
void Copy(TObject &nvl) const
TVector3 GetVelocity() const
returns velocity vector in cm/ns units
Physical event reconstructed from data measured with a detector array using implemented identificatio...
virtual TObject * First() const
Container class for simulated nuclei, KVSimNucleus.
const char * GetName() const
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
static TClass * GetClass(Bool_t load=kTRUE, Bool_t silent=kFALSE)
Bool_t cd(const char *path=nullptr) override
virtual Bool_t cd(const char *path=nullptr)
virtual const char * GetValue(const char *name, const char *dflt) const
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=nullptr)
virtual const char * GetName() const
virtual const char * GetTitle() const
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
virtual void Copy(TObject &object) const
virtual void Info(const char *method, const char *msgfmt,...) const
virtual Double_t Uniform(Double_t x1, Double_t x2)
const char * Data() const
TString & Remove(EStripType s, char c)
TString & ReplaceAll(const char *s1, const char *s2)
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual char * ConcatFileName(const char *dir, const char *name)
RooArgSet S(Args_t &&... args)
constexpr Double_t TwoPi()