PandaRoot
PndTrkPlotMacros2.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef PndTrkPlotMacros2_H
14 #define PndTrkPlotMacros2_H 1
15 
16 #include "PndTrkVectors.h"
17 
18 // Root includes
19 #include "TClonesArray.h"
20 #include "TROOT.h"
21 
28  Double_t bfield;
29  Short_t *Charge;
30  Double_t cvel;
32  Double_t dimensionscitil;
34  Double_t *FI0;
35  TClonesArray *fMCTrackArray;
36  TClonesArray *fSttPointArray;
37  Double_t *info;
38  int IVOLTE;
39  Double_t *KAPPA;
40  bool *keepit;
43  int istampa;
49  Short_t *ListTrackCandHit;
63  Short_t *MCParalAloneList;
64 
65  Short_t *MCSciTilAloneList; // equivalent to a matrix
66  // [nTotalCandidates][nSciTilHits]
67 
68  Short_t *MCSkewAloneList;
69  Double_t *MCSkewAloneX;
70  Double_t *MCSkewAloneY;
75  Short_t NFIDIVCONFORMAL;
76  Short_t *nMCMvdPixelAlone;
77  Short_t *nMCMvdStripAlone;
78  Short_t *nMCParalAlone;
79 
80  Short_t *nMCSciTilAlone;
81 
82  Short_t *nMCSkewAlone;
83  Short_t nMCTracks;
84  Short_t *nMvdPixelCommon;
85  Short_t nMvdPixelHit;
88  Short_t *nMvdStripCommon;
89  Short_t nMvdStripHit;
92  Short_t *nParalCommon;
93  Short_t NRDIVCONFORMAL;
94  Short_t *nSciTilCommon;
95 
96  Short_t nSciTilHits;
98 
100 
101  Short_t *nSkewCommon;
103  Int_t nSttHit;
104  Int_t nSttParHit;
106  Int_t nSttSkewHit;
109  Short_t *nTrackCandHit;
110  Short_t number_straws;
111  Double_t *Ox;
112  Double_t *Oy;
113  Short_t *ParalCommonList;
114  Short_t *ParSpuriList;
115  Double_t *posizSciTil;
116  Double_t *R;
117  Double_t *radiaConf;
119  Double_t *SchosenSkew;
120 
121  Short_t *SciTilCommonList; // equivalent to a matrix
122  // [nTotalCandidates][MAXSCITILHITSINTRACK]
123  Short_t *SciTilSpuriList; // equivalent to a matrix
124  // [nTotalCandidates][MAXSCITILHITSINTRACK]
125 
126  Double_t *sigmaXMvdPixel;
127  Double_t *sigmaXMvdStrip;
128  Double_t *sigmaYMvdPixel;
129  Double_t *sigmaYMvdStrip;
130  Short_t *SkewCommonList;
131  TClonesArray *SttTubeArray;
132  Short_t *StrawCode;
133  Short_t *StrawCode2;
134  Double_t verticalgap;
135  Double_t *XMvdPixel;
136  Double_t *XMvdStrip;
137  Double_t *YMvdPixel;
138  Double_t *YMvdStrip;
139  Double_t *WDX;
140  Double_t *WDY;
141  Double_t *WDZ;
142  Double_t *ZMvdPixel;
143  Double_t *ZMvdStrip;
144 };
145 
146 // inizio cambio_in_perl
147 
148 class PndTrkPlotMacros2 : public TObject {
149 
150  public:
155 
156  void disegnaAssiXY(FILE *MACRO, double xmin, double xmax, double ymin, double ymax);
157 
158  void disegnaSciTilHit(int colorcode, // goes in the SetColor function of root;
159  Double_t DIMENSIONSCITIL, FILE *MACRO, double posx, double posy, int ScitilHit,
160  int tipo // if 0 then SciTil draw in XY; if 1 then SciTil draw in SZ; else
161  // SciTil draw in UV.
162  );
163 
164  void DrawBiHexagonInMacro(Double_t vgap, FILE *MACRO, Double_t Ami, Double_t Ama, Short_t color, char *name);
165 
166  void DrawHexagonCircleInMacro(Double_t GAP, FILE *MACRO, Double_t ApotemaMin, Double_t Rma, Short_t color, char *name);
167 
168  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);
169 
170  void WriteAllMacros(PndTrkPlotMacros2_InputData In_Put);
171 
172  void WriteMacroAllHitsRestanti(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW,
176  Short_t nSciTilHit, Short_t nSttHit, Short_t nSttParHit, Short_t nSttSkewHit, Short_t nSttTrackCand, Vec<Short_t> *nTrackCandHit,
179 
180  );
181 
182  void WriteMacroParallelHitsGeneral(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW,
183  Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, bool doMcComparison, TClonesArray *fMCTrackArray, Int_t Nhits, Vec<Double_t> *info,
184  PndTrkPlotMacros2_InputData In_Put, int IVOLTE, Short_t nMCTracks, Short_t nMvdPixelHit, Short_t nMvdStripHit, Short_t nSciTilHits,
185  Short_t nTracksFoundSoFar, Vec<bool> *keepit, Vec<Double_t> *FI0, Vec<Double_t> *Ox, Vec<Double_t> *Oy, Vec<Double_t> *posizSciTil,
186  Vec<Double_t> *primoangolo, Vec<Double_t> *R, Double_t RSTRAWDETECTORMAX, Double_t APOTEMASTRAWDETECTORMIN, Vec<Double_t> *sigmaXMvdPixel,
188  Vec<Double_t> *XMvdPixel, Vec<Double_t> *XMvdStrip, Vec<Double_t> *YMvdPixel, Vec<Double_t> *YMvdStrip);
189 
190  void WriteMacroParallelHitsGeneralConformalwithMC(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW,
191  Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, bool doMcComparison, TClonesArray *fMCTrackArray, Int_t Nhits,
192  Vec<Double_t> *info, PndTrkPlotMacros2_InputData In_Put, int IVOLTE, Short_t nMCTracks, Short_t nMvdPixelHit,
193  Short_t nMvdStripHit, Short_t nSciTilHits, Short_t nTracksFoundSoFar, Vec<bool> *keepit, Vec<Double_t> *FI0, Vec<Double_t> *Ox,
194  Vec<Double_t> *Oy, Vec<Double_t> *posizSciTil, Vec<Double_t> *primoangolo, Vec<Double_t> *R, Double_t RSTRAWDETECTORMAX,
195  Double_t APOTEMASTRAWDETECTORMIN, Vec<Double_t> *sigmaXMvdPixel, Vec<Double_t> *sigmaXMvdStrip, Vec<Double_t> *sigmaYMvdPixel,
196  Vec<Double_t> *sigmaYMvdStrip, Vec<Double_t> *ultimoangolo, Double_t VERTICALGAP, Vec<Double_t> *XMvdPixel,
197  Vec<Double_t> *XMvdStrip, Vec<Double_t> *YMvdPixel, Vec<Double_t> *YMvdStrip);
198 
199  void WriteMacroParallel_MvdHitsGeneralConformalwithMC(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW,
200  Double_t APOTEMAMINSKEWSTRAW, Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, bool doMcComparison,
201  TClonesArray *fMCTrackArray, Int_t Nhits, Vec<Double_t> *info, PndTrkPlotMacros2_InputData In_Put, int IVOLTE,
202  Short_t nMCTracks, Short_t nMvdPixelHit, Short_t nMvdStripHit, Short_t nSciTilHits, Short_t nTracksFoundSoFar,
203  Vec<bool> *keepit, Vec<Double_t> *FI0, Vec<Double_t> *Ox, Vec<Double_t> *Oy, Vec<Double_t> *posizSciTil,
204  Vec<Double_t> *primoangolo, Vec<Double_t> *R, Double_t RSTRAWDETECTORMAX, Double_t APOTEMASTRAWDETECTORMIN,
205  Vec<Double_t> *sigmaXMvdPixel, Vec<Double_t> *sigmaXMvdStrip, Vec<Double_t> *sigmaYMvdPixel, Vec<Double_t> *sigmaYMvdStrip,
206  Vec<Double_t> *ultimoangolo, Double_t VERTICALGAP, Vec<Double_t> *XMvdPixel, Vec<Double_t> *XMvdStrip,
207  Vec<Double_t> *YMvdPixel, Vec<Double_t> *YMvdStrip);
208 
209  void WriteMacroSkewAssociatedHitswithMC(Double_t *ESSE, Double_t *ESSEalone, PndTrkPlotMacros2_InputData In_Put,
210  int iNome, // questo e' per il nome delle Macro solamente.
211  int iTrack);
212 
213  void WriteMacroSkewAssociatedHitswithMC_Degree(Double_t *ESSE, Double_t *ESSEalone, PndTrkPlotMacros2_InputData In_Put,
214  int iNome, // questo e' per il nome delle Macro solamente.
215  int iTrack);
216 
217  void WriteMacroSttParallelAssociatedHitsandMvdwithMC(PndTrkPlotMacros2_InputData In_Put, Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t primoangolo, Double_t ultimoangolo,
218  Short_t Nhits, int iTrack, int iNome, Short_t daSttTrackaMCTrack, Short_t nMvdPixelHitsAssociatedToSttTra,
219  Short_t nMvdStripHitsAssociatedToSttTra, Short_t nSkewHitsinTrack);
220  // fine cambio_in_perl ;
221 
222  void WriteMacroSttParallel(PndTrkPlotMacros2_InputData In_Put);
223 
224  void WriteMacroSttParallelExternal(PndTrkPlotMacros2_InputData In_Put);
225 
226  ClassDef(PndTrkPlotMacros2, 1);
227 };
228 
229 #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