CbmRoot
Loading...
Searching...
No Matches
LmvmFastSim.h
Go to the documentation of this file.
1/* Copyright (C) 2023-2025 UGiessen, Giessen
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Cornelius Feier-Riesen [committer] */
4
5#ifndef LMVM_FAST_SIM_H
6#define LMVM_FAST_SIM_H
7
8#include "LmvmHist.h"
9#include "TObject.h"
10
11#include <map>
12#include <string>
13#include <vector>
14
15class TH1;
16class TH2D;
17class TH1D;
18class TFile;
19class CbmHistManager;
20
21class LmvmFastSim : public TObject {
22
23 public:
25 virtual ~LmvmFastSim() { ; }
26
27 void DoFastSim(std::vector<std::string> files, const std::string& dataDir, const std::string& outFile,
28 int nofFastSimEv, const std::string& bgHistName);
29
30 private:
31 std::string fOutputDir = "";
32 std::string fOutFileName = "";
33 std::string fPlutoMode = ""; // Either "one" or "all". Means: is there only one Pluto per event implemented or all?
34 int fNofSimEv = 0;
35 int fNofFastSimEv = -1;
36 int fNofPlutos = -1;
37 int fNofUrqmds = -1;
38 int fNofCats = -1;
39 std::vector<std::string> fPlutoNames;
40 std::vector<std::string> fUrqmdNames;
41 std::vector<std::string> fCatNames; // own categories as e.g. analysis steps
42 std::vector<std::string> fChargeCats;
43 std::string fBgHistName = "";
44
45 bool fDoChargeBased = false;
46 bool fDoParticleBased = false;
47 bool fDoTrueEl = false;
48
49 // mix events
50 bool fDoMixEvents = false; // to save time, use mixing only if needed
51 int fMixingDepth = 5000; // Mixing depth for Combinatorial BG Calculation from Fast Simulations
52
53 std::vector<LmvmHist*> fH;
55
56 void CalcMinvAndFillHist(const std::vector<LmvmDataFastSim>& Plus, const std::vector<LmvmDataFastSim>& Minus,
57 const std::string& hName);
58 void CalcMinvAndFillHist(const std::vector<LmvmDataFastSim>& Plus, const std::vector<LmvmDataFastSim>& Minus,
59 const std::string& hName, const std::string& opt);
60
61 template<class T>
62 void CreateMeanHist(const std::string& name);
63
67 void GetPlutoAndUrqmdNames(const std::vector<std::string>& files);
68 void CreateHistos();
69 bool ContainsString(const std::vector<std::string>& vName, const std::string& name);
70
71 void CheckMemory(const std::string& text);
72
73 void SaveHist();
74
77
79};
80
81#endif
Histogram manager.
LmvmFastSim(const LmvmFastSim &)
virtual ~LmvmFastSim()
Definition LmvmFastSim.h:25
std::string fPlutoMode
Definition LmvmFastSim.h:33
int fNofFastSimEv
Definition LmvmFastSim.h:35
void CalcMinvAndFillHist(const std::vector< LmvmDataFastSim > &Plus, const std::vector< LmvmDataFastSim > &Minus, const std::string &hName)
std::vector< std::string > fCatNames
Definition LmvmFastSim.h:41
LmvmFastSim operator=(const LmvmFastSim &)
std::vector< LmvmHist * > fH
Definition LmvmFastSim.h:53
void CreateMeanHist(const std::string &name)
bool fDoChargeBased
Definition LmvmFastSim.h:45
void CheckHistogramNames()
void GetChargeCategoryVector()
std::string fOutputDir
Definition LmvmFastSim.h:31
bool fDoParticleBased
Definition LmvmFastSim.h:46
void CheckMemory(const std::string &text)
std::vector< std::string > fChargeCats
Definition LmvmFastSim.h:42
void GetIndividualCategories()
bool fDoMixEvents
Definition LmvmFastSim.h:50
std::string fBgHistName
Definition LmvmFastSim.h:43
std::vector< std::string > fUrqmdNames
Definition LmvmFastSim.h:40
LmvmHist fHMean
Definition LmvmFastSim.h:54
bool ContainsString(const std::vector< std::string > &vName, const std::string &name)
std::vector< std::string > fPlutoNames
Definition LmvmFastSim.h:39
ClassDef(LmvmFastSim, 1)
void GetPlutoAndUrqmdNames(const std::vector< std::string > &files)
void CalcMinvAndFillHist(const std::vector< LmvmDataFastSim > &Plus, const std::vector< LmvmDataFastSim > &Minus, const std::string &hName, const std::string &opt)
void CreateHistos()
std::string fOutFileName
Definition LmvmFastSim.h:32
void DoFastSim(std::vector< std::string > files, const std::string &dataDir, const std::string &outFile, int nofFastSimEv, const std::string &bgHistName)