FairRoot/PandaRoot
PndSimpleAnalysis.h
Go to the documentation of this file.
1 /******************************************************
2 Class PndSimpleAnalysis
3 
4 Task to perform analysis (combinatorics, simple filetring)
5 by setting a configuration file
6 
7 Writes out a TTree 'ntp'
8 
9 Author: K.Goetzen, GSI, 06/2008
10 
11 *******************************************************/
12 
13 #ifndef PNDSIMPLEANALYSIS_H
14 #define PNDSIMPLEANALYSIS_H 1
15 
16 
17 #include "FairTask.h"
18 #include <map>
19 #include <string>
20 #include <vector>
21 #include "RhoBase/RhoCandList.h"
22 #include "TLorentzVector.h"
23 
24 #define fMaxEntries 1000
25 
26 class TClonesArray;
27 class TObjectArray;
28 class TDatabasePDG;
29 class TH1F;
30 class TTree;
31 
37 
43 
44 class RhoCandidate;
45 //class RhoCandList;
46 
47 class PndListDefiner;
48 
49 
50 class PndSimpleAnalysis : public FairTask
51 {
52 
53  public:
54  typedef std::map<Int_t, Float_t> mapper;
55 
58 
59  PndSimpleAnalysis(std::string filename);
60 
63 
64 
66  virtual InitStatus Init();
67 
68 
70  virtual void Exec(Option_t* opt);
71 
72  virtual void Finish();
73  //void CreateStructure();
74 
75  protected:
76 
77  int evcount;
78  void PrintTree(RhoCandidate* tc, int level=0);
79  void SetConfigFile(std::string filename="analysis.cfg");
80  bool SetupAnalysis();
81  void InitGenericLists();
82  void FillGenericLists();
83  void InitColumnNames();
84 
85  bool IsGenericListName(std::string n);
86  int GetPdgCode(std::string name);
87  int GetAntiPdgCode(std::string name);
88  int GetAntiPdgCode(int pdgcode);
89 
90  bool ErrorMessage(int mid, int line=0, std::string arg="");
91 
92  // **** some basic selectors
93  //
94  //RhoChargedParticleSelector *chargedSel;
98 
104 
105  // **** mass selectors for the resonances/composites
106  //
107 
108 
109  private:
110 
112  TClonesArray* fChargedArray;
113  TClonesArray* fNeutralArray;
114  TClonesArray* fChargedProbability;
115  TClonesArray* fNeutralProbability;
116 
117  TClonesArray* fMcArray;
118 
119  TClonesArray* fMicroArray;
120 
124 
125  std::vector<std::string> fGenericListNames; // names of standard lists
126  std::vector<PndListDefiner*> fListDefiners; // mapping of tree structure
127  std::map<std::string,int> fListMap; // maps list names to PndListDefiner index
128 
129  std::map<std::string,int> fColKeyMap; // maps column names for dumpout to int keys
130  std::map<int, std::vector<std::string> > fColShortKeyMap; // maps col index to a list of col indices
131 
132  std::string fCfgFileName;
133 
134  TTree* ntp;
135 
136  //int fMaxEntries; // the maximum number of entries in column
137 
138  TLorentzVector fpInit;
139 
143  virtual void SetParContainers();
144 
145 
147 
148 };
149 
150 #endif
int GetPdgCode(std::string name)
RhoCandList neutralCands
RhoMinusParticleSelector * minusSel
void PrintTree(RhoCandidate *tc, int level=0)
int GetAntiPdgCode(std::string name)
std::vector< std::string > fGenericListNames
TClonesArray * fNeutralProbability
int n
RhoNeutralParticleSelector * neutralSel
RhoSimpleElectronSelector * eSel
TClonesArray * fChargedArray
RhoSimplePionSelector * piSel
TClonesArray * fMicroArray
TLorentzVector fpInit
bool IsGenericListName(std::string n)
std::string fCfgFileName
std::map< Int_t, Float_t > mapper
TClonesArray * fChargedProbability
std::map< int, std::vector< std::string > > fColShortKeyMap
void SetConfigFile(std::string filename="analysis.cfg")
bool ErrorMessage(int mid, int line=0, std::string arg="")
TString name
std::map< std::string, int > fColKeyMap
RhoSimpleMuonSelector * muSel
TClonesArray * fMcArray
ClassDef(PndSimpleAnalysis, 1)
RhoPlusParticleSelector * plusSel
RhoCandList chargedCands
RhoSimpleKaonSelector * kSel
RhoSimpleProtonSelector * pSel
virtual InitStatus Init()
virtual void Exec(Option_t *opt)
virtual void SetParContainers()
TClonesArray * fNeutralArray
std::map< std::string, int > fListMap
const string filename
std::vector< PndListDefiner * > fListDefiners