KaliVeda
Toolkit for HIC analysis
KVBreakUp.h
1 
4 #ifndef __KVBREAKUP_H
5 #define __KVBREAKUP_H
6 
7 #include "TRandom.h"
8 #include "KVNumberList.h"
9 #include "TH1F.h"
10 #include "TCanvas.h"
11 #include "TROOT.h"
12 #include "KVHashList.h"
13 #include "KVString.h"
14 #include "TTree.h"
15 #include "TH2F.h"
16 #include "TProfile.h"
17 #include "KVIntegerList.h"
18 #include "KVPartitionList.h"
19 #include "KVTemplateEvent.h"
20 #include "TDatime.h"
21 #include <cstdlib>
22 #include "Riostream.h"
23 
24 class KVEvent;
25 
66 class KVBreakUp: public KVPartitionList {
67 
68 protected:
69 
70  Int_t Ztotal;
71  Int_t Mtotal;
72  Int_t Zmin;
73  Int_t* bound;
74  KVString BreakUpMethod, TRandom_Method;
75 
76  TRandom* alea;
77 
78  KVNumberList nl;
79  Int_t nbre_nuc;
80  Int_t size_max;
81  Int_t* size;
82  Int_t niter_tot;
83  Int_t tstart, tstop, tellapsed;
84 
85  TH1F* hzz;
86  TH1F* hzt;
87  TH1F* hmt;
88 
89  KVHashList* lobjects;
90  KVHashList* lhisto;
91  KVIntegerList* partition;
92  KVEvent* current_event;
93 
94  enum {
95  kStorePartitions = BIT(14), //Variables has to be recalculated
96  };
97 
98  void init();
99  void SetZtot(Int_t zt);
100  void SetMtot(Int_t mt);
101  void SetZmin(Int_t zlim);
102  void SetBreakUpMethod(KVString bup_method);
103 
104  void Start();
105  void Stop();
106 
107 public:
108 
110 
119 
120  KVBreakUp(Int_t taille_max = 1000);
121  virtual ~KVBreakUp();
122  void Clear(Option_t* = "") override;
123  void LinkEvent(KVEvent*);
124  void RedefineTRandom(KVString TRandom_Method);
125  void SetConditions(Int_t zt, Int_t mt, Int_t zmin = 1);
126  void DefineBreakUpMethod(KVString bup_method = "");
127  void StorePartitions(Bool_t choix = kTRUE);
128  virtual void DefineHistos();
129 
130  Int_t GetZtot(void) const;
131  Int_t GetMtot(void) const;
132  Int_t GetZmin(void) const;
133  KVString GetBreakUpMethod(void) const;
134 
135  virtual void TreatePartition();
136 
137  void BreakNtimes(Int_t times = 1000);
138  void BreakNtimesOnGaussian(Int_t times, Double_t Ztot_moy, Double_t Ztot_rms, Double_t Mtot_moy, Double_t Mtot_rms, Int_t zmin = 1);
139  void BreakFromHisto(TH2F* hh_zt_VS_mt, Int_t zmin = 1);
140 
141  KVEvent* BreakOnGaussian(Double_t Ztot_moy, Double_t Ztot_rms, Double_t Mtot_moy, Double_t Mtot_rms, Int_t zmin);
143 
144  virtual void DrawPanel();
145 
149 
150  virtual void ResetTotalIterations();
151  virtual void ResetHistos();
152 
153  virtual void SaveHistos(KVString filename = "", KVString suff = "", Option_t* option = "recreate");
154 
155  void PrintConfig() const;
157 
158 
159  ClassDefOverride(KVBreakUp, 1) //Exemple de differentes facons de casser un entier en plusieurs autres entiers, avec comme principales contraintes la charge totale et le nombre de clusters
160 };
161 
162 #endif
int Int_t
bool Bool_t
double Double_t
const char Option_t
#define BIT(n)
#define ClassDefOverride(name, id)
Permet de casser aleatoirement un nombre entier (ztot) en un nombre (mtot) d'entiers plus petits d'un...
Definition: KVBreakUp.h:66
void BreakFromHisto(TH2F *hh_zt_VS_mt, Int_t zmin=1)
Definition: KVBreakUp.cpp:768
virtual void SaveHistos(KVString filename="", KVString suff="", Option_t *option="recreate")
Definition: KVBreakUp.cpp:931
Int_t GetTotalIterations(void)
Definition: KVBreakUp.cpp:831
Int_t GetDeltaTime()
Definition: KVBreakUp.cpp:1016
virtual void DrawPanel()
Definition: KVBreakUp.cpp:895
KVEvent * BreakOnGaussian(Double_t Ztot_moy, Double_t Ztot_rms, Double_t Mtot_moy, Double_t Mtot_rms, Int_t zmin)
Definition: KVBreakUp.cpp:718
virtual void ResetHistos()
Met a zero le contenu des histogrammes.
Definition: KVBreakUp.cpp:882
void DefineBreakUpMethod(KVString bup_method="")
Definition: KVBreakUp.cpp:244
virtual void TreatePartition()
Definition: KVBreakUp.cpp:561
Int_t GetZtot(void) const
Retourne le nombre entier a casser.
Definition: KVBreakUp.cpp:268
void Clear(Option_t *="") override
Definition: KVBreakUp.cpp:102
Int_t BreakUsingChain()
Definition: KVBreakUp.cpp:330
Int_t BreakUsingLine()
Definition: KVBreakUp.cpp:393
KVHashList * GetObjects()
Retourne la liste d'objects autres ...
Definition: KVBreakUp.cpp:860
virtual ~KVBreakUp()
Destructeur.
Definition: KVBreakUp.cpp:79
KVString GetBreakUpMethod(void) const
Retourne methode de cassure.
Definition: KVBreakUp.cpp:304
Int_t BreakUsingPile()
Methode de cassure.
Definition: KVBreakUp.cpp:523
Int_t BreakUsingIndividual()
Definition: KVBreakUp.cpp:457
void StorePartitions(Bool_t choix=kTRUE)
si choix=kTRUE, on enregistre les partitions
Definition: KVBreakUp.cpp:316
void LinkEvent(KVEvent *)
Definition: KVBreakUp.cpp:196
void BreakNtimes(Int_t times=1000)
Definition: KVBreakUp.cpp:614
KVEvent * GetCurrentEvent()
Definition: KVBreakUp.cpp:597
void PrintConfig() const
Definition: KVBreakUp.cpp:964
void BreakNtimesOnGaussian(Int_t times, Double_t Ztot_moy, Double_t Ztot_rms, Double_t Mtot_moy, Double_t Mtot_rms, Int_t zmin=1)
Definition: KVBreakUp.cpp:661
KVBreakUp(Int_t taille_max=1000)
Definition: KVBreakUp.cpp:63
Int_t GetZmin(void) const
Retourne la taille minimale des entiers apres cassure.
Definition: KVBreakUp.cpp:292
KVHashList * GetHistos()
Definition: KVBreakUp.cpp:846
void SetConditions(Int_t zt, Int_t mt, Int_t zmin=1)
Definition: KVBreakUp.cpp:229
void RedefineTRandom(KVString TRandom_Method)
Definition: KVBreakUp.cpp:211
Int_t nraffine
Definition: KVBreakUp.h:109
virtual void ResetTotalIterations()
Definition: KVBreakUp.cpp:871
Int_t GetMtot(void) const
Retourne le nombre d'entiers apres cassure (la multiplicite)
Definition: KVBreakUp.cpp:280
virtual void DefineHistos()
Definition: KVBreakUp.cpp:120
Abstract base class container for multi-particle events.
Definition: KVEvent.h:67
Extended version of ROOT THashList.
Definition: KVHashList.h:29
Handle a list of positive integers (partition)
Definition: KVIntegerList.h:68
Strings used to represent a set of ranges of values.
Definition: KVNumberList.h:85
Manage a list of partitions.
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
Definition: KVString.h:73