Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AnaMvtxPrototype1.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file AnaMvtxPrototype1.h
1 
9 #ifndef __AnaMvtxPrototype1_H__
10 #define __AnaMvtxPrototype1_H__
11 
12 // --- need to check all these includes...
13 #include <fun4all/SubsysReco.h>
14 #include <string>
15 #include <vector>
16 #include <map>
17 
18 #include "TMath.h"
19 
20 class PHCompositeNode;
21 
23 class TrkrCluster;
24 
26 
27 class TFile;
28 class TTree;
29 class TH1D;
30 class TH2D;
31 
32 
33 typedef std::vector<TrkrCluster*> ClusVec;
34 typedef std::vector<ClusVec> TrkVec;
35 typedef std::multimap<unsigned int, TrkrCluster*> LyrClusMap;
36 
37 struct mis {
38  double dx;
39  double dy;
40  double dz;
41 };
42 
44 
45 public:
46 
47  AnaMvtxPrototype1(const std::string &name = "AnaMvtxPrototype1",
48  const std::string &ofName = "out.root");
49 
50  int Init(PHCompositeNode*);
53  int End(PHCompositeNode*);
54 
58  void MisalignLayer(int lyr, double dx, double dy, double dz);
59 
60 private:
61 
62  //-- Functions
63  int GetNodes(PHCompositeNode *);
64 
65 
66  double CalcSlope(double x0, double y0, double x1, double y1);
67  double CalcIntecept(double x0, double y0, double m);
68  double CalcProjection(double x, double m, double b);
69 
70  void Misalign();
71  void PrintMisalign();
72 
73  //-- Nodes
75 
76  //-- Flags
77 
78 
79  //-- Output
81  TFile *_f;
82 
83  TH1D* hlayer;
84  TH1D* hsize[4];
85  TH1D* hsize_phi[4];
86  TH1D* hsize_z[4];
87  TH2D* hxz[4];
88  TH1D* hdx[4];
89  TH1D* hdz[4];
90 
91  TH1D* htrk;
92  TH1D* htrk_dx[4];
93  TH1D* htrk_dz[4];
94  TH1D* htrk_chi2xy;
95  TH1D* htrk_chi2zy;
96 
97  TH1D* htrk_cut;
98  TH1D* htrk_cut_dx[4];
99  TH1D* htrk_cut_dz[4];
102 
103 
104  //-- internal variables
105  int _ievent;
106  std::map<int, mis> _misalign;
108 
109 };
110 
111 #endif // __AnaMvtxPrototype1_H__