PandaRoot
PndTrkPlotMacros.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 PndTrkPlotMacros_H
14 #define PndTrkPlotMacros_H 1
15 
16 #include "PndTrkVectors.h"
17 
18 // Root includes
19 #include "TClonesArray.h"
20 #include "TROOT.h"
21 
27  Double_t bfield;
28  Short_t *Charge;
29  Double_t cvel;
31  Double_t dimensionscitil;
33  Double_t *FI0;
34  TClonesArray *fMCTrackArray;
35  TClonesArray *fSttPointArray;
36  Double_t *info;
37  int IVOLTE;
38  Double_t *KAPPA;
39  bool *keepit;
42  int istampa;
48  Short_t *ListTrackCandHit;
62  Short_t *MCParalAloneList;
63 
64  Short_t *MCSciTilAloneList; // equivalent to a matrix
65  // [nTotalCandidates][nSciTilHits]
66 
67  Short_t *MCSkewAloneList;
68  Double_t *MCSkewAloneX;
69  Double_t *MCSkewAloneY;
74  Short_t NFIDIVCONFORMAL;
75  Short_t *nMCMvdPixelAlone;
76  Short_t *nMCMvdStripAlone;
77  Short_t *nMCParalAlone;
78 
79  Short_t *nMCSciTilAlone;
80 
81  Short_t *nMCSkewAlone;
82  Short_t nMCTracks;
83  Short_t *nMvdPixelCommon;
84  Short_t nMvdPixelHit;
87  Short_t *nMvdStripCommon;
88  Short_t nMvdStripHit;
91  Short_t *nParalCommon;
92  Short_t NRDIVCONFORMAL;
93  Short_t *nSciTilCommon;
94 
95  Short_t nSciTilHits;
97 
99 
100  Short_t *nSkewCommon;
102  Int_t nSttHit;
103  Int_t nSttParHit;
105  Int_t nSttSkewHit;
108  Short_t *nTrackCandHit;
109  Double_t *Ox;
110  Double_t *Oy;
111  Short_t *ParalCommonList;
112  Short_t *ParSpuriList;
113  Double_t *posizSciTil;
114  Double_t *R;
115  Double_t *radiaConf;
118  Double_t *SchosenSkew;
119 
120  Short_t *SciTilCommonList; // equivalent to a matrix
121  // [nTotalCandidates][MAXSCITILHITSINTRACK]
122  Short_t *SciTilSpuriList; // equivalent to a matrix
123  // [nTotalCandidates][MAXSCITILHITSINTRACK]
124 
125  Double_t *sigmaXMvdPixel;
126  Double_t *sigmaXMvdStrip;
127  Double_t *sigmaYMvdPixel;
128  Double_t *sigmaYMvdStrip;
129  Short_t *SkewCommonList;
130  Double_t verticalgap;
131  Double_t *XMvdPixel;
132  Double_t *XMvdStrip;
133  Double_t *YMvdPixel;
134  Double_t *YMvdStrip;
135  Double_t *WDX;
136  Double_t *WDY;
137  Double_t *WDZ;
138  Double_t *ZMvdPixel;
139  Double_t *ZMvdStrip;
140 };
141 
142 // inizio cambio_in_perl
143 
144 class PndTrkPlotMacros : public TObject {
145 
146  public:
151 
152  void disegnaAssiXY(FILE *MACRO, double xmin, double xmax, double ymin, double ymax);
153 
154  void disegnaSciTilHit(int colorcode, // goes in the SetColor function of root;
155  Double_t DIMENSIONSCITIL, FILE *MACRO, double posx, double posy, int ScitilHit,
156  int tipo // if 0 then SciTil draw in XY; if 1 then SciTil draw in SZ; else
157  // SciTil draw in UV.
158  );
159 
160  void DrawBiHexagonInMacro(Double_t vgap, FILE *MACRO, Double_t Ami, Double_t Ama, Short_t color, char *name);
161 
162  void DrawHexagonCircleInMacro(Double_t GAP, FILE *MACRO, Double_t ApotemaMin, Double_t Rma, Short_t color, char *name);
163 
164  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);
165 
166  void WriteAllMacros(PndTrkPlotMacros_InputData In_Put);
167 
168  void WriteMacroAllHitsRestanti(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW,
172  Short_t nSciTilHit, Short_t nSttHit, Short_t nSttParHit, Short_t nSttSkewHit, Short_t nSttTrackCand, Vec<Short_t> *nTrackCandHit,
173  Vec<Double_t> *posizSciTil, Double_t RSTRAWDETECTORMAX, Double_t RSTRAWDETECTORMIN, Double_t VERTICALGAP, Vec<Double_t> *XMvdPixel,
175 
176  );
177 
178  void WriteMacroParallelHitsGeneral(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, Vec<Double_t> *info,
180  PndTrkPlotMacros_InputData In_Put, int IVOLTE, Short_t nMCTracks, Short_t nMvdPixelHit, Short_t nMvdStripHit, Short_t nSciTilHits,
181  Short_t nTracksFoundSoFar, Vec<bool> *keepit, Vec<Double_t> *FI0, Vec<Double_t> *Ox, Vec<Double_t> *Oy, Vec<Double_t> *posizSciTil,
182  Vec<Double_t> *primoangolo, Vec<Double_t> *R, Double_t RSTRAWDETECTORMAX, Double_t RSTRAWDETECTORMIN, Vec<Double_t> *sigmaXMvdPixel,
184  Vec<Double_t> *XMvdPixel, Vec<Double_t> *XMvdStrip, Vec<Double_t> *YMvdPixel, Vec<Double_t> *YMvdStrip);
185 
186  void WriteMacroParallelHitsGeneralConformalwithMC(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW,
187  Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, bool doMcComparison, TClonesArray *fMCTrackArray, Int_t Nhits,
188  Vec<Double_t> *info, PndTrkPlotMacros_InputData In_Put, int IVOLTE, Short_t nMCTracks, Short_t nMvdPixelHit,
189  Short_t nMvdStripHit, Short_t nSciTilHits, Short_t nTracksFoundSoFar, Vec<bool> *keepit, Vec<Double_t> *FI0, Vec<Double_t> *Ox,
190  Vec<Double_t> *Oy, Vec<Double_t> *posizSciTil, Vec<Double_t> *primoangolo, Vec<Double_t> *R, Double_t RSTRAWDETECTORMAX,
191  Double_t RSTRAWDETECTORMIN, Vec<Double_t> *sigmaXMvdPixel, Vec<Double_t> *sigmaXMvdStrip, Vec<Double_t> *sigmaYMvdPixel,
192  Vec<Double_t> *sigmaYMvdStrip, Vec<Double_t> *ultimoangolo, Double_t VERTICALGAP, Vec<Double_t> *XMvdPixel,
193  Vec<Double_t> *XMvdStrip, Vec<Double_t> *YMvdPixel, Vec<Double_t> *YMvdStrip);
194 
195  void WriteMacroParallel_MvdHitsGeneralConformalwithMC(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW,
196  Double_t APOTEMAMINSKEWSTRAW, Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, bool doMcComparison,
197  TClonesArray *fMCTrackArray, Int_t Nhits, Vec<Double_t> *info, PndTrkPlotMacros_InputData In_Put, int IVOLTE,
198  Short_t nMCTracks, Short_t nMvdPixelHit, Short_t nMvdStripHit, Short_t nSciTilHits, Short_t nTracksFoundSoFar,
199  Vec<bool> *keepit, Vec<Double_t> *FI0, Vec<Double_t> *Ox, Vec<Double_t> *Oy, Vec<Double_t> *posizSciTil,
200  Vec<Double_t> *primoangolo, Vec<Double_t> *R, Double_t RSTRAWDETECTORMAX, Double_t RSTRAWDETECTORMIN,
201  Vec<Double_t> *sigmaXMvdPixel, Vec<Double_t> *sigmaXMvdStrip, Vec<Double_t> *sigmaYMvdPixel, Vec<Double_t> *sigmaYMvdStrip,
202  Vec<Double_t> *ultimoangolo, Double_t VERTICALGAP, Vec<Double_t> *XMvdPixel, Vec<Double_t> *XMvdStrip,
203  Vec<Double_t> *YMvdPixel, Vec<Double_t> *YMvdStrip);
204 
205  void WriteMacroSkewAssociatedHitswithMC(Double_t *ESSE, Double_t *ESSEalone, PndTrkPlotMacros_InputData In_Put,
206  int iNome, // questo e' per il nome delle Macro solamente.
207  int iTrack);
208 
209  void WriteMacroSttParallelAssociatedHitsandMvdwithMC(PndTrkPlotMacros_InputData In_Put, Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t primoangolo, Double_t ultimoangolo,
210  Short_t Nhits, int iTrack, int iNome, Short_t daSttTrackaMCTrack, Short_t nMvdPixelHitsAssociatedToSttTra,
211  Short_t nMvdStripHitsAssociatedToSttTra, Short_t nSkewHitsinTrack);
212  // fine cambio_in_perl ;
213 
214  ClassDef(PndTrkPlotMacros, 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 Double_t CVEL
const Double_t APOTEMAMAXSKEWSTRAW
const Double_t DIMENSIONSCITIL