PandaRoot
PndTrkPlotMacros.h
Go to the documentation of this file.
1 #ifndef PndTrkPlotMacros_H
2 #define PndTrkPlotMacros_H 1
3 
4 #include "PndTrkVectors.h"
5 
6 // Root includes
7 #include "TClonesArray.h"
8 #include "TROOT.h"
9 
15  Double_t bfield;
16  Short_t *Charge;
17  Double_t cvel;
19  Double_t dimensionscitil;
21  Double_t *FI0;
22  TClonesArray *fMCTrackArray;
23  TClonesArray *fSttPointArray;
24  Double_t *info;
25  int IVOLTE;
26  Double_t *KAPPA;
27  bool *keepit;
30  int istampa;
36  Short_t *ListTrackCandHit;
50  Short_t *MCParalAloneList;
51 
52  Short_t *MCSciTilAloneList; // equivalent to a matrix
53  // [nTotalCandidates][nSciTilHits]
54 
55  Short_t *MCSkewAloneList;
56  Double_t *MCSkewAloneX;
57  Double_t *MCSkewAloneY;
62  Short_t NFIDIVCONFORMAL;
63  Short_t *nMCMvdPixelAlone;
64  Short_t *nMCMvdStripAlone;
65  Short_t *nMCParalAlone;
66 
67  Short_t *nMCSciTilAlone;
68 
69  Short_t *nMCSkewAlone;
70  Short_t nMCTracks;
71  Short_t *nMvdPixelCommon;
72  Short_t nMvdPixelHit;
75  Short_t *nMvdStripCommon;
76  Short_t nMvdStripHit;
79  Short_t *nParalCommon;
80  Short_t NRDIVCONFORMAL;
81  Short_t *nSciTilCommon;
82 
83  Short_t nSciTilHits;
85 
87 
88  Short_t *nSkewCommon;
89  Short_t *nSpuriParinTrack;
90  Int_t nSttHit;
91  Int_t nSttParHit;
93  Int_t nSttSkewHit;
96  Short_t *nTrackCandHit;
97  Double_t *Ox;
98  Double_t *Oy;
99  Short_t *ParalCommonList;
100  Short_t *ParSpuriList;
101  Double_t *posizSciTil;
102  Double_t *R;
103  Double_t *radiaConf;
106  Double_t *SchosenSkew;
107 
108  Short_t *SciTilCommonList; // equivalent to a matrix
109  // [nTotalCandidates][MAXSCITILHITSINTRACK]
110  Short_t *SciTilSpuriList; // equivalent to a matrix
111  // [nTotalCandidates][MAXSCITILHITSINTRACK]
112 
113  Double_t *sigmaXMvdPixel;
114  Double_t *sigmaXMvdStrip;
115  Double_t *sigmaYMvdPixel;
116  Double_t *sigmaYMvdStrip;
117  Short_t *SkewCommonList;
118  Double_t verticalgap;
119  Double_t *XMvdPixel;
120  Double_t *XMvdStrip;
121  Double_t *YMvdPixel;
122  Double_t *YMvdStrip;
123  Double_t *WDX;
124  Double_t *WDY;
125  Double_t *WDZ;
126  Double_t *ZMvdPixel;
127  Double_t *ZMvdStrip;
128 };
129 
130 // inizio cambio_in_perl
131 
132 class PndTrkPlotMacros : public TObject {
133 
134  public:
139 
140  void disegnaAssiXY(FILE *MACRO, double xmin, double xmax, double ymin, double ymax);
141 
142  void disegnaSciTilHit(int colorcode, // goes in the SetColor function of root;
143  Double_t DIMENSIONSCITIL, FILE *MACRO, double posx, double posy, int ScitilHit,
144  int tipo // if 0 then SciTil draw in XY; if 1 then SciTil draw in SZ; else
145  // SciTil draw in UV.
146  );
147 
148  void DrawBiHexagonInMacro(Double_t vgap, FILE *MACRO, Double_t Ami, Double_t Ama, Short_t color, char *name);
149 
150  void DrawHexagonCircleInMacro(Double_t GAP, FILE *MACRO, Double_t ApotemaMin, Double_t Rma, Short_t color, char *name);
151 
152  void SttInfoXYZParal(Vec<Double_t> *info, Short_t infopar, Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t KAPPA, Double_t FI0, Short_t Charge, Double_t *Posiz);
153 
154  void WriteAllMacros(PndTrkPlotMacros_InputData In_Put);
155 
156  void WriteMacroAllHitsRestanti(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW,
160  Short_t nSciTilHit, Short_t nSttHit, Short_t nSttParHit, Short_t nSttSkewHit, Short_t nSttTrackCand, Vec<Short_t> *nTrackCandHit,
161  Vec<Double_t> *posizSciTil, Double_t RSTRAWDETECTORMAX, Double_t RSTRAWDETECTORMIN, Double_t VERTICALGAP, Vec<Double_t> *XMvdPixel,
163 
164  );
165 
166  void WriteMacroParallelHitsGeneral(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW,
167  Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, bool doMcComparison, TClonesArray *fMCTrackArray, Int_t Nhits, Vec<Double_t> *info,
168  PndTrkPlotMacros_InputData In_Put, int IVOLTE, Short_t nMCTracks, Short_t nMvdPixelHit, Short_t nMvdStripHit, Short_t nSciTilHits,
169  Short_t nTracksFoundSoFar, Vec<bool> *keepit, Vec<Double_t> *FI0, Vec<Double_t> *Ox, Vec<Double_t> *Oy, Vec<Double_t> *posizSciTil,
170  Vec<Double_t> *primoangolo, Vec<Double_t> *R, Double_t RSTRAWDETECTORMAX, Double_t RSTRAWDETECTORMIN, Vec<Double_t> *sigmaXMvdPixel,
172  Vec<Double_t> *XMvdPixel, Vec<Double_t> *XMvdStrip, Vec<Double_t> *YMvdPixel, Vec<Double_t> *YMvdStrip);
173 
174  void WriteMacroParallelHitsGeneralConformalwithMC(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW,
175  Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, bool doMcComparison, TClonesArray *fMCTrackArray, Int_t Nhits,
176  Vec<Double_t> *info, PndTrkPlotMacros_InputData In_Put, int IVOLTE, Short_t nMCTracks, Short_t nMvdPixelHit,
177  Short_t nMvdStripHit, Short_t nSciTilHits, Short_t nTracksFoundSoFar, Vec<bool> *keepit, Vec<Double_t> *FI0, Vec<Double_t> *Ox,
178  Vec<Double_t> *Oy, Vec<Double_t> *posizSciTil, Vec<Double_t> *primoangolo, Vec<Double_t> *R, Double_t RSTRAWDETECTORMAX,
179  Double_t RSTRAWDETECTORMIN, Vec<Double_t> *sigmaXMvdPixel, Vec<Double_t> *sigmaXMvdStrip, Vec<Double_t> *sigmaYMvdPixel,
180  Vec<Double_t> *sigmaYMvdStrip, Vec<Double_t> *ultimoangolo, Double_t VERTICALGAP, Vec<Double_t> *XMvdPixel,
181  Vec<Double_t> *XMvdStrip, Vec<Double_t> *YMvdPixel, Vec<Double_t> *YMvdStrip);
182 
183  void WriteMacroParallel_MvdHitsGeneralConformalwithMC(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW,
184  Double_t APOTEMAMINSKEWSTRAW, Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, bool doMcComparison,
185  TClonesArray *fMCTrackArray, Int_t Nhits, Vec<Double_t> *info, PndTrkPlotMacros_InputData In_Put, int IVOLTE,
186  Short_t nMCTracks, Short_t nMvdPixelHit, Short_t nMvdStripHit, Short_t nSciTilHits, Short_t nTracksFoundSoFar,
187  Vec<bool> *keepit, Vec<Double_t> *FI0, Vec<Double_t> *Ox, Vec<Double_t> *Oy, Vec<Double_t> *posizSciTil,
188  Vec<Double_t> *primoangolo, Vec<Double_t> *R, Double_t RSTRAWDETECTORMAX, Double_t RSTRAWDETECTORMIN,
189  Vec<Double_t> *sigmaXMvdPixel, Vec<Double_t> *sigmaXMvdStrip, Vec<Double_t> *sigmaYMvdPixel, Vec<Double_t> *sigmaYMvdStrip,
190  Vec<Double_t> *ultimoangolo, Double_t VERTICALGAP, Vec<Double_t> *XMvdPixel, Vec<Double_t> *XMvdStrip,
191  Vec<Double_t> *YMvdPixel, Vec<Double_t> *YMvdStrip);
192 
193  void WriteMacroSkewAssociatedHitswithMC(Double_t *ESSE, Double_t *ESSEalone, PndTrkPlotMacros_InputData In_Put,
194  int iNome, // questo e' per il nome delle Macro solamente.
195  int iTrack);
196 
197  void WriteMacroSttParallelAssociatedHitsandMvdwithMC(PndTrkPlotMacros_InputData In_Put, Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t primoangolo, Double_t ultimoangolo,
198  Short_t Nhits, int iTrack, int iNome, Short_t daSttTrackaMCTrack, Short_t nMvdPixelHitsAssociatedToSttTra,
199  Short_t nMvdStripHitsAssociatedToSttTra, Short_t nSkewHitsinTrack);
200  // fine cambio_in_perl ;
201 
202  ClassDef(PndTrkPlotMacros, 1);
203 };
204 
205 #endif
const Double_t RSTRAWDETECTORMAX
const Double_t APOTEMAMINSKEWSTRAW
const Double_t BFIELD
const Double_t APOTEMAMINOUTERPARSTRAW
const Double_t VERTICALGAP
const Double_t APOTEMAMAXINNERPARSTRAW
const Double_t CVEL
const Double_t APOTEMAMAXSKEWSTRAW
const Double_t DIMENSIONSCITIL