KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVINDRAFNL.cpp
1/***************************************************************************
2$Id: KVINDRAFNL.cpp,v 1.11 2008/12/17 13:01:26 franklan Exp $
3 kvindrafnl.cpp - description
4 -------------------
5 begin : Wed Oct 29 2003
6 copyright : (C) 2003 by J.D. Frankland
7 email : frankland@ganil.fr
8 ***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18
19#include "KVINDRAFNL.h"
20#include "KVSiB.h"
21#include "KVBIC.h"
22#include "KVTelBlocking.h"
23#include "KVIDTelescope.h"
24#include "KVIDBlocking.h"
25#include "KVDataSet.h"
26
27#define CHIO_SI_PIEDS "pied_chiosi_e416a.dat"
28#define CSI_PIEDS "pied_csi_e416a.dat"
29
30
33
36{
37 //Default ctor.
38}
39
40
41
42
45
47{
48 //Default dtor.
49}
50
51
52
53
61
63{
64// //Add SIB and BIC detectors to KVINDRA4 list
65// KVINDRA4::MakeListOfDetectorTypes();
66// KVSiB *sib = new KVSiB(500.0);
67// fDetectorTypes->Add(sib);
68// KVBIC *bic = new KVBIC(30.); //BIC 30 Torr
69// fDetectorTypes->Add(bic);
70}
71
72
73
74
90
92{
93 //Add KVTelBlocking telescopes to list of prototypes for KVINDRA4
94 //Each of these replaces a ChIo cell and block of 4 Si/CsI, so we use the azimuthal
95 //widths corresponding to the replaced ChIo in each case.
96
97// KVINDRA4::PrototypeTelescopes();
98
99// //telescope blocking #1 : ring 4 12h
100// KVTelBlocking *tel = new KVTelBlocking(1);
101// fTelescopes->Add(tel);
102// tel->SetType("Blocking T1");
103// tel->SetAzimuthalWidth(29.10);
104
105// //telescope blocking #2 & #3 : ring 6 1h & 9h
106// tel = new KVTelBlocking(2);
107// fTelescopes->Add(tel);
108// tel->SetType("Blocking T2/3");
109// tel->SetAzimuthalWidth(29.28);
110
111}
112
113
114
115
123
125{
126 //build KVINDRA4, then remove detectors not present in E416
127 //These are:
128 // ChIo Ring 2, Rings 13/14/16
129 // Si300 Rings 1-5
130 // ChIo-Si-CsI groups: 0423-0524, 0617-0718, 0601-0702
131 //Then add the 3 blocking telescopes T1, T2 and T3 (BIC + SIB)
132
133 KVINDRA4::BuildGeometry();
134
135 //remove chio's
136 RemoveRing("CHIO", 2);
137 RemoveRing("CHIO", 13);
138 RemoveRing("CHIO", 14);
139 RemoveRing("CHIO", 16);
140
141 //remove Si300
142 for (int ring = 1; ring < 6; ring++) {
143 GetRing("SI-CSI", ring)->RemoveDetectors("SI");
144 }
145
146}
147
148
149
150
153
155{
156 //Construct KVINDRAFNL
157 KVINDRA4::Build(run);
158
159 GetRing("CHIO", 4)->RemoveTelescope("CI_0423");
160 GetRing("SI-CSI", 4)->RemoveTelescope("CSI_0423");
161 GetRing("SI-CSI", 4)->RemoveTelescope("CSI_0424");
162 GetRing("SI-CSI", 5)->RemoveTelescope("CSI_0523");
163 GetRing("SI-CSI", 5)->RemoveTelescope("CSI_0524");
164 GetRing("CHIO", 6)->RemoveTelescope("CI_0601");
165 GetRing("SI-CSI", 6)->RemoveTelescope("SI_CSI_0601");
166 GetRing("SI-CSI", 6)->RemoveTelescope("SI_CSI_0602");
167 GetRing("SI-CSI", 7)->RemoveTelescope("SI_CSI_0701");
168 GetRing("SI-CSI", 7)->RemoveTelescope("SI_CSI_0702");
169 GetRing("CHIO", 6)->RemoveTelescope("CI_0617");
170 GetRing("SI-CSI", 6)->RemoveTelescope("SI_CSI_0617");
171 GetRing("SI-CSI", 6)->RemoveTelescope("SI_CSI_0618");
172 GetRing("SI-CSI", 7)->RemoveTelescope("SI_CSI_0717");
173 GetRing("SI-CSI", 7)->RemoveTelescope("SI_CSI_0718");
174
175 //add blocking telescopes
176// KVLayer *B__lay = new KVLayer(); //blocking layer
177
178// KVTelescope *B__tel =
179// (KVTelescope *) fTelescopes->FindObjectByType("Blocking T1");
180// //distance target->entrance of telescope.
181// //1224mm is distance to SIB, so have to subtract depth of SIB
182// Double_t dist = 1224. - B__tel->GetDepth(2);
183// B__lay->AddRing(new KVRing(4, 7.21, 13.83, 0., 1, dist, B__tel)
184
185// );
186
187// B__tel = (KVTelescope *) fTelescopes->FindObjectByType("Blocking T2/3");
188// //distance target->entrance of telescope.
189// //1003mm is distance to SIB, so have to subtract depth of SIB
190// dist = 1003. - B__tel->GetDepth(2);
191// B__lay->
192// AddRing(new
193// KVRing(6, 14.21, 26.74, 30., 2, dist, B__tel, 1, 2, 240.)
194
195// );
196
197// B__lay->SetName("BLOCKING");
198// AddLayer(B__lay);
199
200// UpdateArray();
201
202// SetName("INDRA");
203// SetTitle("INDRA for FNL Experiments E416 & E416a");
204
205// //set pedestals
206// Info("Build", "Setting pedestals for ChIo/Si detectors");
207// TString fullpath;
208// SearchKVFile(CHIO_SI_PIEDS, fullpath, fDataSet.Data());
209// SetPedestals(fullpath.Data());
210// Info("Build", "Setting pedestals for CsI detectors");
211// SearchKVFile(CSI_PIEDS, fullpath, fDataSet.Data());
212// SetPedestals(fullpath.Data());
213}
214
215
216
217
244
246 UInt_t type) const
247{
248 //Modified KVINDRA::GetDetectorByType
249 //If the type is "ChIo_*" or "Si_*" and ring number 'cou' and
250 //module number 'mod' correspond to one of the INDRA detectors
251 //removed to make way for the blocking telescopes, then we return
252 //a pointer to the corresponding BIC or SIB
253 //
254 //i.e.
255 //GetDetectorByType(4,23,ChIo_GG/PG/T) -> BIC_1
256 //GetDetectorByType(4,23,Si_GG/PG/T) -> SIB_1
257 //GetDetectorByType(4,24,Si_GG/PG/T) -> SIB_1
258 //GetDetectorByType(5,23,Si_GG/PG/T) -> SIB_1
259 //GetDetectorByType(5,24,Si_GG/PG/T) -> SIB_1
260 //
261 //GetDetectorByType(6,1,ChIo_GG/PG/T) -> BIC_2
262 //GetDetectorByType(6,1,Si_GG/PG/T) -> SIB_2
263 //GetDetectorByType(6,2,Si_GG/PG/T) -> SIB_2
264 //GetDetectorByType(7,1,Si_GG/PG/T) -> SIB_2
265 //GetDetectorByType(7,2,Si_GG/PG/T) -> SIB_2
266 //
267 //GetDetectorByType(6,17,ChIo_GG/PG/T) -> BIC_3
268 //GetDetectorByType(6,17,Si_GG/PG/T) -> SIB_3
269 //GetDetectorByType(6,18,Si_GG/PG/T) -> SIB_3
270 //GetDetectorByType(7,17,Si_GG/PG/T) -> SIB_3
271 //GetDetectorByType(7,18,Si_GG/PG/T) -> SIB_3
272 //
273
275
276 if (!det) {
277 if (cou == 4 && mod == 23 && (type >= ChIo_GG && type <= ChIo_T))
278 det = (KVINDRADetector*)GetDetector("BIC_1");
279 else if (cou == 6 && mod == 1 && (type >= ChIo_GG && type <= ChIo_T))
280 det = (KVINDRADetector*)GetDetector("BIC_2");
281 else if (cou == 6 && mod == 17
282 && (type >= ChIo_GG && type <= ChIo_T))
283 det = (KVINDRADetector*)GetDetector("BIC_3");
284 else if ((cou >= 4 && cou <= 5) && (mod >= 23 && mod <= 24)
285 && (type >= Si_GG && type <= Si_T))
286 det = (KVINDRADetector*)GetDetector("SIB_1");
287 else if ((cou >= 6 && cou <= 7) && (mod >= 1 && mod <= 2)
288 && (type >= Si_GG && type <= Si_T))
289 det = (KVINDRADetector*)GetDetector("SIB_2");
290 else if ((cou >= 6 && cou <= 7) && (mod >= 17 && mod <= 18)
291 && (type >= Si_GG && type <= Si_T))
292 det = (KVINDRADetector*)GetDetector("SIB_3");
293 }
294 return det;
295}
296
297
298
int Int_t
unsigned int UInt_t
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Base class for detectors of INDRA array.
Describes INDRA as used in FNL experiment E416 (June-July 2003)
Definition KVINDRAFNL.h:32
KVINDRADetector * GetDetectorByType(UInt_t cou, UInt_t mod, UInt_t type) const
virtual void PrototypeTelescopes()
virtual ~KVINDRAFNL()
Default dtor.
virtual void MakeListOfDetectorTypes()
virtual void BuildGeometry()
virtual void Build(Int_t run=-1)
Construct KVINDRAFNL.
virtual KVINDRADetector * GetDetectorByType(UInt_t cou, UInt_t mod, UInt_t type) const
Definition KVINDRA.cpp:639
ClassImp(TPyArg)