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