ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtParsers.h
Go to the documentation of this file.
1 /*********************************************************************
2  * Multipurpose parsers *
3  * Author: Y. Ayyad yassid.ayyad@usc.es *
4  * Log: 03/21/2022 *
5  * *
6  *********************************************************************/
7 
8 #ifndef ATPARSERS_H
9 #define ATPARSERS_H
10 
11 #include "AtFormat.h"
12 
13 #include <Rtypes.h>
14 #include <TObject.h>
15 #include <TString.h>
16 
17 #include <ostream>
18 #include <string>
19 #include <vector>
20 
21 class TXMLNode;
22 class TBuffer;
23 class TClass;
24 class TMemberInspector;
25 
26 namespace AtTools {
27 
28 struct IonFitInfo {
29  std::string _ionName;
30  UInt_t _PDG;
31  Double_t _mass;
33  UInt_t _MassNumber;
34  std::string _eLossFile;
35 
36  friend std::ostream &operator<<(std::ostream &out, const AtTools::IonFitInfo &ifi)
37  {
38 
39  out << cGREEN << " Ion name :" << ifi._ionName << "\n";
40  out << " PDG : " << ifi._PDG << "\n";
41  out << " Mass (AMU) : " << ifi._mass << "\n";
42  out << " Atomic Number : " << ifi._atomicNumber << "\n";
43  out << " Mass Number : " << ifi._MassNumber << "\n";
44  out << " Energy loss file : " << ifi._eLossFile << cNORMAL << "\n";
45  return out;
46  }
47 };
48 
49 class AtParsers : public TObject {
50 
51 public:
54 
55  Int_t ParseIonFitXML(TString filename);
56  std::vector<IonFitInfo> *GetIonFile() { return &ionList; }
57 
58 private:
59  void ParseIonList(TXMLNode *node);
60  IonFitInfo ParseIon(TXMLNode *node, Int_t id);
61 
62  std::vector<IonFitInfo> ionList;
63 
64  ClassDef(AtParsers, 1)
65 };
66 
67 } // namespace AtTools
68 
69 #endif
AtTools::AtParsers::GetIonFile
std::vector< IonFitInfo > * GetIonFile()
Definition: AtParsers.h:56
AtTools::IonFitInfo::_eLossFile
std::string _eLossFile
Definition: AtParsers.h:34
AtTools::IonFitInfo::operator<<
friend std::ostream & operator<<(std::ostream &out, const AtTools::IonFitInfo &ifi)
Definition: AtParsers.h:36
node
Definition: fastcluster_dm.cxx:213
AtTools::IonFitInfo::_MassNumber
UInt_t _MassNumber
Definition: AtParsers.h:33
cNORMAL
#define cNORMAL
Definition: AtTrigger.h:19
cGREEN
#define cGREEN
Definition: AtTrigger.h:20
AtTools::AtParsers
Definition: AtParsers.h:49
AtTools::IonFitInfo::_PDG
UInt_t _PDG
Definition: AtParsers.h:30
AtTools::AtParsers::AtParsers
AtParsers()
AtTools::IonFitInfo::_mass
Double_t _mass
Definition: AtParsers.h:31
AtTools
Definition: AtSimpleSimulation.h:19
AtTools::AtParsers::~AtParsers
~AtParsers()
AtFormat.h
AtTools::IonFitInfo
Definition: AtParsers.h:28
AtTools::AtParsers::ParseIonFitXML
Int_t ParseIonFitXML(TString filename)
Definition: AtParsers.cxx:22
AtTools::IonFitInfo::_ionName
std::string _ionName
Definition: AtParsers.h:29
AtTools::IonFitInfo::_atomicNumber
Int_t _atomicNumber
Definition: AtParsers.h:32