FairShip
Loading...
Searching...
No Matches
Target Class Reference

#include <Target.h>

Inheritance diagram for Target:
Collaboration diagram for Target:

Public Member Functions

 Target (const char *name, const Double_t Ydist, Bool_t Active, const char *Title="NuTauTarget")
 
 Target ()
 
void SetDetectorDesign (Int_t Design)
 
void MakeNuTargetPassive (Bool_t a)
 
void MergeTopBot (Bool_t SingleEmFilm)
 
void ConstructGeometry () override
 
void SetTargetWallDimension (Double_t WallXDim, Double_t WallYDim, Double_t WallZDim)
 
void SetDetectorDimension (Double_t xdim, Double_t ydim, Double_t zdim)
 
void SetEmulsionParam (Double_t EmTh, Double_t EmX, Double_t EmY, Double_t PBTh, Double_t EPlW, Double_t LeadTh, Double_t AllPW)
 
void SetBrickParam (Double_t BrX, Double_t BrY, Double_t BrZ, Double_t BrPackX, Double_t BrPackY, Double_t BrPackZ, Int_t number_of_plates_)
 
void SetCellParam (Double_t CellW)
 
void SetNumberBricks (Double_t col, Double_t row, Double_t wall)
 
void SetTTzdimension (Double_t TTZ)
 
void SetNumberTargets (Int_t target)
 
void SetMagnetConfiguration (Int_t config)
 
void SetMagnetHeight (Double_t Y)
 
void SetBaseHeight (Double_t Y)
 
void SetColumnHeight (Double_t Y)
 
void SetCoilUpHeight (Double_t H1)
 
void SetCoilDownHeight (Double_t H2)
 
void SetMagneticField (Double_t B)
 
void SetCenterZ (Double_t z)
 
void SetBaseDimension (Double_t X, Double_t Y, Double_t Z)
 
void SetPillarDimension (Double_t X, Double_t Y, Double_t Z)
 
void SetHpTParam (Int_t n, Double_t dd, Double_t DZ)
 
Bool_t ProcessHits (FairVolume *v=0) override
 
 Target (const Target &)=delete
 
Targetoperator= (const Target &)=delete
 
- Public Member Functions inherited from SHiP::Detector< TargetPoint >
 Detector ()=default
 
 Detector (const char *Name, Bool_t Active, Int_t detID)
 
 Detector (const char *Name, Bool_t Active)
 
 ~Detector () override=default
 
TargetPointAddHit (Args &&... args)
 
void ConstructGeometry () override=0
 
void Initialize () override
 
void Reset () override
 
void EndOfEvent () override
 
void Register () override
 
TClonesArray * GetCollection (Int_t iColl) const override
 
void UpdatePointTrackIndices (const std::map< Int_t, Int_t > &indexMap) override
 Update track indices in point collection after track filtering.
 
void SetSpecialPhysicsCuts () override
 
void FinishPrimary () override
 
void FinishRun () override
 
void BeginPrimary () override
 
void PostTrack () override
 
void PreTrack () override
 
void BeginEvent () override
 
void CopyClones (TClonesArray *cl1, TClonesArray *cl2, Int_t offset) override
 
- Public Member Functions inherited from ISTLPointContainer
virtual void UpdatePointTrackIndices (const std::map< Int_t, Int_t > &indexMap)=0
 Update track indices in point collection after track filtering.
 
virtual ~ISTLPointContainer ()=default
 

Static Public Member Functions

static std::tuple< Int_t, Int_t, Int_t, Int_t, Bool_t > DecodeBrickID (Int_t detID)
 

Protected Attributes

Bool_t fPassive
 
Bool_t fsingleemulsionfilm
 
Int_t fDesign
 
Double_t fCenterZ
 
Double_t fMagnetY
 
Double_t fColumnY
 
Double_t fMagnetBaseY
 
Double_t fCoilH1
 
Double_t fCoilH2
 
Double_t fField
 
Int_t fNCol
 
Int_t fNRow
 
Int_t fNWall
 
Int_t fNTarget
 
Int_t number_of_plates
 
Double_t XDimension
 
Double_t YDimension
 
Double_t ZDimension
 
Double_t WallXDim
 
Double_t WallYDim
 
Double_t WallZDim
 
Double_t EmulsionThickness
 
Double_t EmulsionX
 
Double_t EmulsionY
 
Double_t PlasticBaseThickness
 
Double_t LeadThickness
 
Double_t EmPlateWidth
 
Double_t AllPlateWidth
 
Double_t BrickPackageX
 
Double_t BrickPackageY
 
Double_t BrickPackageZ
 
Double_t Ydistance
 
Double_t BrickZ
 
Double_t BrickY
 
Double_t BrickX
 
Double_t CellWidth
 
Double_t TTrackerZ
 
Double_t fBaseX
 
Double_t fBaseY
 
Double_t fBaseZ
 
Double_t fPillarX
 
Double_t fPillarY
 
Double_t fPillarZ
 
Double_t fHpTDistance
 
Double_t fHpTDZ
 
Int_t fnHpT
 
- Protected Attributes inherited from SHiP::Detector< TargetPoint >
Int_t fEventID
 
Int_t fTrackID
 event index
 
Int_t fVolumeID
 track index
 
TLorentzVector fPos
 volume id
 
TLorentzVector fMom
 position at entrance
 
Double_t fTime
 momentum at entrance
 
Double_t fLength
 time
 
Double_t fELoss
 length
 
std::vector< TargetPoint > * fDetPoints
 energy loss
 
TGeoVolume * fDetector
 

Detailed Description

Definition at line 23 of file Target.h.

Constructor & Destructor Documentation

◆ Target() [1/3]

Target::Target ( const char *  name,
const Double_t  Ydist,
Bool_t  Active,
const char *  Title = "NuTauTarget" 
)

Definition at line 63 of file Target.cxx.

65 : Detector(name, Active, ktauTarget) {
66 Ydistance = Ydist;
67}
@ ktauTarget
Double_t Ydistance
Definition: Target.h:130

◆ Target() [2/3]

Target::Target ( )

Definition at line 61 of file Target.cxx.

61: Detector("Target", kTRUE, ktauTarget) {}

◆ Target() [3/3]

Target::Target ( const Target )
delete

Member Function Documentation

◆ ConstructGeometry()

void Target::ConstructGeometry ( )
overridevirtual

Create the detector geometry

Implements SHiP::Detector< TargetPoint >.

Definition at line 167 of file Target.cxx.

167 {
168 // cout << "Design = " << fDesign << endl;
169
170 ShipGeo::InitMedium("air");
171 TGeoMedium* air = gGeoManager->GetMedium("air");
172
173 ShipGeo::InitMedium("PlasticBase");
174 TGeoMedium* PBase = gGeoManager->GetMedium("PlasticBase");
175
176 ShipGeo::InitMedium("NuclearEmulsion");
177 TGeoMedium* NEmu = gGeoManager->GetMedium("NuclearEmulsion");
178
179 TGeoMaterial* NEmuMat =
180 NEmu->GetMaterial(); // I need the materials to build the mixture
181 TGeoMaterial* PBaseMat = PBase->GetMaterial();
182
183 Double_t rho_film = (NEmuMat->GetDensity() * 2 * EmulsionThickness +
184 PBaseMat->GetDensity() * PlasticBaseThickness) /
186 Double_t frac_emu = NEmuMat->GetDensity() * 2 * EmulsionThickness /
187 (NEmuMat->GetDensity() * 2 * EmulsionThickness +
188 PBaseMat->GetDensity() * PlasticBaseThickness);
189
191 cout << "TARGET PRINTOUT: Single volume for emulsion film chosen: average "
192 "density: "
193 << rho_film << " fraction in mass of emulsion " << frac_emu << endl;
194
195 TGeoMixture* emufilmmixture = new TGeoMixture(
196 "EmulsionFilmMixture",
197 2.00); // two nuclear emulsions separated by the plastic base
198
199 emufilmmixture->AddElement(NEmuMat, frac_emu);
200 emufilmmixture->AddElement(PBaseMat, 1. - frac_emu);
201
202 TGeoMedium* Emufilm = new TGeoMedium("EmulsionFilm", 100, emufilmmixture);
203
204 ShipGeo::InitMedium("tungsten");
205 TGeoMedium* tungsten = gGeoManager->GetMedium("tungsten");
206
207 Int_t NPlates = number_of_plates; // Number of doublets emulsion + Pb
208
209 // Definition of the target box containing emulsion bricks + target trackers
210 // (TT)
211 TGeoBBox* TargetBox =
212 new TGeoBBox("TargetBox", XDimension / 2, YDimension / 2, ZDimension / 2);
213 TGeoVolume* volTarget = new TGeoVolume("volTarget", TargetBox, air);
214
215 //
216 // Volumes definition
217 //
218
219 [[maybe_unused]] TGeoBBox* Cell =
220 new TGeoBBox("cell", BrickX / 2, BrickY / 2, CellWidth / 2);
221 [[maybe_unused]] TGeoVolume* volCell = new TGeoVolume("Cell", Cell, air);
222
223 // Brick
224 TGeoBBox* Brick = new TGeoBBox("brick", BrickX / 2, BrickY / 2, BrickZ / 2);
225 TGeoVolume* volBrick = new TGeoVolume("Brick", Brick, air);
226 volBrick->SetLineColor(kCyan);
227 volBrick->SetTransparency(1);
228 // need to separate the two cases, now with a ternary operator
229 auto* Absorber =
230 new TGeoBBox("Absorber", EmulsionX / 2, EmulsionY / 2, LeadThickness / 2);
231 auto* volAbsorber = new TGeoVolume("volAbsorber", Absorber, tungsten);
232
233 volAbsorber->SetTransparency(1);
234 volAbsorber->SetLineColor(kGray);
235 for (Int_t n = 0; n < NPlates; n++) {
236 volBrick->AddNode(
237 volAbsorber, n,
238 new TGeoTranslation(0, 0,
239 -BrickZ / 2 + BrickPackageZ / 2 + EmPlateWidth +
240 LeadThickness / 2 + n * AllPlateWidth));
241 }
242 if (fsingleemulsionfilm) { // simplified configuration, unique sensitive
243 // layer for the whole emulsion plate
244 TGeoBBox* EmulsionFilm = new TGeoBBox("EmulsionFilm", EmulsionX / 2,
245 EmulsionY / 2, EmPlateWidth / 2);
246 TGeoVolume* volEmulsionFilm =
247 new TGeoVolume("Emulsion", EmulsionFilm, Emufilm); // TOP
248 volEmulsionFilm->SetLineColor(kBlue);
249
250 if (fPassive == 0) {
251 AddSensitiveVolume(volEmulsionFilm);
252 }
253
254 for (Int_t n = 0; n < NPlates + 1; n++) {
255 volBrick->AddNode(
256 volEmulsionFilm, n,
257 new TGeoTranslation(0, 0,
258 -BrickZ / 2 + BrickPackageZ / 2 +
259 EmPlateWidth / 2 + n * AllPlateWidth));
260 }
261 } else { // more accurate configuration, two emulsion films divided by a
262 // plastic base
263 TGeoBBox* EmulsionFilm = new TGeoBBox("EmulsionFilm", EmulsionX / 2,
265 TGeoVolume* volEmulsionFilm =
266 new TGeoVolume("Emulsion", EmulsionFilm, NEmu); // TOP
267 TGeoVolume* volEmulsionFilm2 =
268 new TGeoVolume("Emulsion2", EmulsionFilm, NEmu); // BOTTOM
269 volEmulsionFilm->SetLineColor(kBlue);
270 volEmulsionFilm2->SetLineColor(kBlue);
271
272 if (fPassive == 0) {
273 AddSensitiveVolume(volEmulsionFilm);
274 AddSensitiveVolume(volEmulsionFilm2);
275 }
276 TGeoBBox* PlBase = new TGeoBBox("PlBase", EmulsionX / 2, EmulsionY / 2,
278 TGeoVolume* volPlBase = new TGeoVolume("PlasticBase", PlBase, PBase);
279 volPlBase->SetLineColor(kYellow - 4);
280 for (Int_t n = 0; n < NPlates + 1; n++) {
281 volBrick->AddNode(volEmulsionFilm2, n,
282 new TGeoTranslation(0, 0,
283 -BrickZ / 2 + BrickPackageZ / 2 +
285 n * AllPlateWidth)); // BOTTOM
286 volBrick->AddNode(
287 volEmulsionFilm, n,
288 new TGeoTranslation(
289 0, 0,
290 -BrickZ / 2 + BrickPackageZ / 2 + 3 * EmulsionThickness / 2 +
291 PlasticBaseThickness + n * AllPlateWidth)); // TOP
292 volBrick->AddNode(
293 volPlBase, n,
294 new TGeoTranslation(0, 0,
295 -BrickZ / 2 + BrickPackageZ / 2 +
297 n * AllPlateWidth)); // PLASTIC BASE
298 }
299 }
300
301 volBrick->SetVisibility(kTRUE);
302 TGeoVolume* top = gGeoManager->GetTopVolume();
303 TGeoVolumeAssembly* tTauNuDet = new TGeoVolumeAssembly("tTauNuDet");
304 top->AddNode(tTauNuDet, 1, new TGeoTranslation(0, 0, 0));
305
306 tTauNuDet->AddNode(volTarget, 1, new TGeoTranslation(0, 0, fCenterZ));
307 TGeoBBox* Row = new TGeoBBox("row", WallXDim / 2, BrickY / 2, WallZDim / 2);
308 TGeoVolume* volRow = new TGeoVolume("Row", Row, air);
309 volRow->SetLineColor(20);
310
311 Double_t d_cl_x = -WallXDim / 2;
312 for (int j = 0; j < fNCol; j++) {
313 volRow->AddNode(volBrick, j,
314 new TGeoTranslation(d_cl_x + BrickX / 2, 0, 0));
315 d_cl_x += BrickX;
316 }
317 TGeoBBox* Wall =
318 new TGeoBBox("wall", WallXDim / 2, WallYDim / 2, WallZDim / 2);
319 TGeoVolume* volWall = new TGeoVolume("Wall", Wall, air);
320 volWall->SetLineColor(kGreen);
321
322 Double_t d_cl_y = -WallYDim / 2;
323 for (int k = 0; k < fNRow; k++) {
324 volWall->AddNode(volRow, k, new TGeoTranslation(0, d_cl_y + BrickY / 2, 0));
325
326 // 2mm is the distance for the structure that holds the brick
327 d_cl_y += BrickY + Ydistance;
328 }
329 // Columns
330
331 Double_t d_cl_z = -ZDimension / 2 + TTrackerZ;
332 for (int l = 0; l < fNWall; l++) {
333 volTarget->AddNode(volWall, l,
334 new TGeoTranslation(0, 0, d_cl_z + BrickZ / 2));
335
336 // 6 cm is the distance between 2 columns of consecutive Target for TT
337 // placement
338 d_cl_z += BrickZ + TTrackerZ;
339 }
340} // end construct geometry
Double_t fCenterZ
Definition: Target.h:90
Int_t fNRow
Definition: Target.h:103
Double_t BrickY
Definition: Target.h:133
Double_t BrickX
Definition: Target.h:134
Double_t LeadThickness
Definition: Target.h:121
Double_t PlasticBaseThickness
Definition: Target.h:120
Double_t ZDimension
Definition: Target.h:110
Double_t CellWidth
Definition: Target.h:136
Double_t WallXDim
Definition: Target.h:112
Double_t EmulsionY
Definition: Target.h:118
Double_t BrickPackageZ
Definition: Target.h:128
Double_t WallYDim
Definition: Target.h:113
Double_t AllPlateWidth
Definition: Target.h:124
Int_t number_of_plates
Definition: Target.h:106
Double_t WallZDim
Definition: Target.h:114
Double_t YDimension
Definition: Target.h:109
Double_t BrickZ
Definition: Target.h:132
Double_t EmulsionThickness
Definition: Target.h:116
Int_t fNWall
Definition: Target.h:104
Bool_t fPassive
Definition: Target.h:83
Int_t fNCol
Definition: Target.h:102
Bool_t fsingleemulsionfilm
Definition: Target.h:85
Double_t TTrackerZ
Definition: Target.h:139
Double_t EmPlateWidth
Definition: Target.h:122
Double_t XDimension
Definition: Target.h:108
Double_t EmulsionX
Definition: Target.h:117
Int_t InitMedium(const char *name)
Definition: ShipGeoUtil.h:20

◆ DecodeBrickID()

std::tuple< Int_t, Int_t, Int_t, Int_t, Bool_t > Target::DecodeBrickID ( Int_t  detID)
static

Decode detectorID into a struct with info about the film position in the target:

Definition at line 437 of file Target.cxx.

438 {
441 /*
442 \param detID detectorID for the TargetPoint
443 \return a struct providing the wall, row, column and plate number (starting
444 from 1), as well as a boolean for top/bottom emulsion layer. Examples:
445 11010031 -> Wall 1, Row 1, Column 1, Plate 3, true;
446 31010150 -> Wall 3, Row 1, Column 1, Plate 15, false;
447 */
448 auto divt_E7 = std::div(detID, 1E7);
449
450 Int_t NWall = divt_E7.quot;
451 auto divt_E6 = std::div(divt_E7.rem, 1E6);
452
453 Int_t NRow = divt_E6.quot;
454 auto divt_E4 = std::div(divt_E6.rem, 1E4);
455
456 Int_t NColumn = divt_E4.quot;
457 auto divt_E1 = std::div(divt_E4.rem, 1E1);
458
459 Int_t NPlate = divt_E1.quot;
460 Bool_t EmTop = static_cast<Bool_t>(divt_E1.rem);
461
462 return std::make_tuple(NWall, NRow, NColumn, NPlate, EmTop);
463}

◆ MakeNuTargetPassive()

void Target::MakeNuTargetPassive ( Bool_t  a)

Definition at line 75 of file Target.cxx.

75{ fPassive = a; }

◆ MergeTopBot()

void Target::MergeTopBot ( Bool_t  SingleEmFilm)

Definition at line 77 of file Target.cxx.

77 {
78 fsingleemulsionfilm = SingleEmFilm;
79}

◆ operator=()

Target & Target::operator= ( const Target )
delete

◆ ProcessHits()

Bool_t Target::ProcessHits ( FairVolume *  v = 0)
override

this method is called for each step during simulation (see FairMCApplication::Stepping())

This method is called from the MC stepping

Definition at line 342 of file Target.cxx.

342 {
344 // Set parameters at entrance of volume. Reset ELoss.
345 if (gMC->IsTrackEntering()) {
346 fELoss = 0.;
347 fTime = gMC->TrackTime() * 1.0e09;
348 fLength = gMC->TrackLength();
349 gMC->TrackPosition(fPos);
350 gMC->TrackMomentum(fMom);
351 }
352 // Sum energy loss for all steps in the active volume
353 fELoss += gMC->Edep();
354
355 // Create TargetPoint at exit of active volume
356 if (gMC->IsTrackExiting() || gMC->IsTrackStop() ||
357 gMC->IsTrackDisappeared()) {
358 fTrackID = gMC->GetStack()->GetCurrentTrackNumber();
359 // Int_t fTrackID = gMC->GetStack()->GetCurrentTrackNumber();
360 gMC->CurrentVolID(fVolumeID);
361 Int_t detID = fVolumeID;
362 // gGeoManager->PrintOverlaps();
363
364 // cout<< "detID = " << detID << endl;
365 Int_t MaxLevel = gGeoManager->GetLevel();
366 // cout << "MaxLevel = " << MaxLevel << endl;
367 // cout << gMC->CurrentVolPath()<< endl;
368
369 std::vector<Int_t> motherV(MaxLevel);
370 Bool_t EmTop = false;
371 Int_t NPlate = 0;
372 const char* name;
373
374 name = gMC->CurrentVolName();
375 // cout << name << endl;
376
377 if (strcmp(name, "Emulsion") == 0) {
378 NPlate = detID;
379 EmTop = 1;
380 }
381 if (strcmp(name, "Emulsion2") == 0) {
382 NPlate = detID;
383 EmTop = 0;
384 }
385
386 Int_t NWall = 0, NColumn = 0, NRow = 0;
387
388 for (Int_t i = 0; i < MaxLevel; i++) {
389 motherV[i] = gGeoManager->GetMother(i)->GetNumber();
390 const char* mumname = gMC->CurrentVolOffName(i);
391 if (motherV[0] == 1 && motherV[0] != detID) {
392 if (strcmp(mumname, "Brick") == 0) NColumn = motherV[i];
393 if (strcmp(mumname, "Cell") == 0) NRow = motherV[i];
394 if (strcmp(mumname, "Row") == 0) NWall = motherV[i];
395 if ((strcmp(mumname, "Wall") == 0) && (motherV[i] == 2))
396 NWall += fNWall;
397 } else {
398 if (strcmp(mumname, "Cell") == 0) NColumn = motherV[i];
399 if (strcmp(mumname, "Row") == 0) NRow = motherV[i];
400 if (strcmp(mumname, "Wall") == 0) NWall = motherV[i];
401 if ((strcmp(mumname, "volTarget") == 0) && (motherV[i] == 2))
402 NWall += fNWall;
403 }
404 // cout << i << " " << motherV[i] << " name = " << mumname << endl;
405 }
406
407 detID = (NWall + 1) * 1E7 + (NRow + 1) * 1E6 + (NColumn + 1) * 1E4 +
408 (NPlate + 1) * 1E1 + EmTop;
409
411
412 if (fELoss == 0.) {
413 return kFALSE;
414 }
415 TParticle* p = gMC->GetStack()->GetCurrentTrack();
416 // Int_t MotherID =gMC->GetStack()->GetCurrentParentTrackNumber();
417 Int_t pdgCode = p->GetPdgCode();
418
419 TLorentzVector Pos;
420 gMC->TrackPosition(Pos);
421 Double_t xmean = (fPos.X() + Pos.X()) / 2.;
422 Double_t ymean = (fPos.Y() + Pos.Y()) / 2.;
423 Double_t zmean = (fPos.Z() + Pos.Z()) / 2.;
424
425 AddHit(fTrackID, fVolumeID, TVector3(xmean, ymean, zmean),
426 TVector3(fMom.Px(), fMom.Py(), fMom.Pz()), fTime, fLength, fELoss,
427 pdgCode);
428
429 // Increment number of muon det points in TParticle
430 ShipStack* stack = dynamic_cast<ShipStack*>(gMC->GetStack());
431 stack->AddPoint(ktauTarget);
432 }
433
434 return kTRUE;
435}
Int_t fTrackID
event index
Definition: Detector.h:85
Int_t fVolumeID
track index
Definition: Detector.h:86
TLorentzVector fPos
volume id
Definition: Detector.h:87
Double_t fTime
momentum at entrance
Definition: Detector.h:89
TargetPoint * AddHit(Args &&... args)
Definition: Detector.h:38
TLorentzVector fMom
position at entrance
Definition: Detector.h:88
int i
Definition: ShipAna.py:97
ROOT p
Definition: makeDecay.py:76
int strcmp(const String &s1, const String &s2)
Definition: relates.cpp:14

◆ SetBaseDimension()

void Target::SetBaseDimension ( Double_t  X,
Double_t  Y,
Double_t  Z 
)

Definition at line 146 of file Target.cxx.

146 {
147 fBaseX = x;
148 fBaseY = y;
149 fBaseZ = z;
150}
Double_t fBaseX
Definition: Target.h:142
Double_t fBaseZ
Definition: Target.h:144
Double_t fBaseY
Definition: Target.h:143

◆ SetBaseHeight()

void Target::SetBaseHeight ( Double_t  Y)

Definition at line 136 of file Target.cxx.

136{ fMagnetBaseY = Y; }
Double_t fMagnetBaseY
Definition: Target.h:95

◆ SetBrickParam()

void Target::SetBrickParam ( Double_t  BrX,
Double_t  BrY,
Double_t  BrZ,
Double_t  BrPackX,
Double_t  BrPackY,
Double_t  BrPackZ,
Int_t  number_of_plates_ 
)

Definition at line 116 of file Target.cxx.

118 {
119 BrickPackageX = BrPackX;
120 BrickPackageY = BrPackY;
121 BrickPackageZ = BrPackZ;
122 BrickX = BrX;
123 BrickY = BrY;
124 BrickZ = BrZ;
125 number_of_plates = number_of_plates_;
126}
Double_t BrickPackageY
Definition: Target.h:127
Double_t BrickPackageX
Definition: Target.h:126

◆ SetCellParam()

void Target::SetCellParam ( Double_t  CellW)

Definition at line 128 of file Target.cxx.

128{ CellWidth = CellW; }

◆ SetCenterZ()

void Target::SetCenterZ ( Double_t  z)

Definition at line 144 of file Target.cxx.

144{ fCenterZ = z; }

◆ SetCoilDownHeight()

void Target::SetCoilDownHeight ( Double_t  H2)

Definition at line 140 of file Target.cxx.

140{ fCoilH2 = H2; }
Double_t fCoilH2
Definition: Target.h:97

◆ SetCoilUpHeight()

void Target::SetCoilUpHeight ( Double_t  H1)

Definition at line 138 of file Target.cxx.

138{ fCoilH1 = H1; }
Double_t fCoilH1
Definition: Target.h:96

◆ SetColumnHeight()

void Target::SetColumnHeight ( Double_t  Y)

Definition at line 134 of file Target.cxx.

134{ fColumnY = Y; }
Double_t fColumnY
Definition: Target.h:94

◆ SetDetectorDesign()

void Target::SetDetectorDesign ( Int_t  Design)

Definition at line 70 of file Target.cxx.

70 {
71 fDesign = Design;
72 Info("SetDetectorDesign", " to %i", fDesign);
73}
Int_t fDesign
Definition: Target.h:87

◆ SetDetectorDimension()

void Target::SetDetectorDimension ( Double_t  xdim,
Double_t  ydim,
Double_t  zdim 
)

Definition at line 98 of file Target.cxx.

98 {
99 XDimension = xdim;
100 YDimension = ydim;
101 ZDimension = zdim;
102}

◆ SetEmulsionParam()

void Target::SetEmulsionParam ( Double_t  EmTh,
Double_t  EmX,
Double_t  EmY,
Double_t  PBTh,
Double_t  EPlW,
Double_t  LeadTh,
Double_t  AllPW 
)

Definition at line 104 of file Target.cxx.

106 {
107 EmulsionThickness = EmTh;
108 EmulsionX = EmX;
109 EmulsionY = EmY;
111 EmPlateWidth = EPlW;
112 LeadThickness = LeadTh;
113 AllPlateWidth = AllPW;
114}

◆ SetHpTParam()

void Target::SetHpTParam ( Int_t  n,
Double_t  dd,
Double_t  DZ 
)

Definition at line 158 of file Target.cxx.

161{
162 fnHpT = n;
163 fHpTDistance = dd;
164 fHpTDZ = DZ;
165}
Double_t fHpTDistance
Definition: Target.h:150
Int_t fnHpT
Definition: Target.h:152
Double_t fHpTDZ
Definition: Target.h:151

◆ SetMagnetConfiguration()

void Target::SetMagnetConfiguration ( Int_t  config)

◆ SetMagnetHeight()

void Target::SetMagnetHeight ( Double_t  Y)

Definition at line 132 of file Target.cxx.

132{ fMagnetY = Y; }
Double_t fMagnetY
Definition: Target.h:93

◆ SetMagneticField()

void Target::SetMagneticField ( Double_t  B)

Definition at line 142 of file Target.cxx.

142{ fField = B; }
Double_t fField
Definition: Target.h:100
#define B
Definition: memgrp.cpp:39

◆ SetNumberBricks()

void Target::SetNumberBricks ( Double_t  col,
Double_t  row,
Double_t  wall 
)

Definition at line 83 of file Target.cxx.

83 {
84 fNCol = col;
85 fNRow = row;
86 fNWall = wall;
87}

◆ SetNumberTargets()

void Target::SetNumberTargets ( Int_t  target)

Definition at line 89 of file Target.cxx.

89{ fNTarget = target; }
Int_t fNTarget
Definition: Target.h:105

◆ SetPillarDimension()

void Target::SetPillarDimension ( Double_t  X,
Double_t  Y,
Double_t  Z 
)

Definition at line 152 of file Target.cxx.

152 {
153 fPillarX = x;
154 fPillarY = y;
155 fPillarZ = z;
156}
Double_t fPillarX
Definition: Target.h:145
Double_t fPillarZ
Definition: Target.h:147
Double_t fPillarY
Definition: Target.h:146

◆ SetTargetWallDimension()

void Target::SetTargetWallDimension ( Double_t  WallXDim,
Double_t  WallYDim,
Double_t  WallZDim 
)

Definition at line 91 of file Target.cxx.

92 {
93 WallXDim = WallXDim_;
94 WallYDim = WallYDim_;
95 WallZDim = WallZDim_;
96}

◆ SetTTzdimension()

void Target::SetTTzdimension ( Double_t  TTZ)

Definition at line 130 of file Target.cxx.

130{ TTrackerZ = TTZ; }

Member Data Documentation

◆ AllPlateWidth

Double_t Target::AllPlateWidth
protected

Definition at line 124 of file Target.h.

◆ BrickPackageX

Double_t Target::BrickPackageX
protected

Definition at line 126 of file Target.h.

◆ BrickPackageY

Double_t Target::BrickPackageY
protected

Definition at line 127 of file Target.h.

◆ BrickPackageZ

Double_t Target::BrickPackageZ
protected

Definition at line 128 of file Target.h.

◆ BrickX

Double_t Target::BrickX
protected

Definition at line 134 of file Target.h.

◆ BrickY

Double_t Target::BrickY
protected

Definition at line 133 of file Target.h.

◆ BrickZ

Double_t Target::BrickZ
protected

Definition at line 132 of file Target.h.

◆ CellWidth

Double_t Target::CellWidth
protected

Definition at line 136 of file Target.h.

◆ EmPlateWidth

Double_t Target::EmPlateWidth
protected

Definition at line 122 of file Target.h.

◆ EmulsionThickness

Double_t Target::EmulsionThickness
protected

Definition at line 116 of file Target.h.

◆ EmulsionX

Double_t Target::EmulsionX
protected

Definition at line 117 of file Target.h.

◆ EmulsionY

Double_t Target::EmulsionY
protected

Definition at line 118 of file Target.h.

◆ fBaseX

Double_t Target::fBaseX
protected

Definition at line 142 of file Target.h.

◆ fBaseY

Double_t Target::fBaseY
protected

Definition at line 143 of file Target.h.

◆ fBaseZ

Double_t Target::fBaseZ
protected

Definition at line 144 of file Target.h.

◆ fCenterZ

Double_t Target::fCenterZ
protected

Definition at line 90 of file Target.h.

◆ fCoilH1

Double_t Target::fCoilH1
protected

Definition at line 96 of file Target.h.

◆ fCoilH2

Double_t Target::fCoilH2
protected

Definition at line 97 of file Target.h.

◆ fColumnY

Double_t Target::fColumnY
protected

Definition at line 94 of file Target.h.

◆ fDesign

Int_t Target::fDesign
protected

Definition at line 87 of file Target.h.

◆ fField

Double_t Target::fField
protected

Definition at line 100 of file Target.h.

◆ fHpTDistance

Double_t Target::fHpTDistance
protected

Definition at line 150 of file Target.h.

◆ fHpTDZ

Double_t Target::fHpTDZ
protected

Definition at line 151 of file Target.h.

◆ fMagnetBaseY

Double_t Target::fMagnetBaseY
protected

Definition at line 95 of file Target.h.

◆ fMagnetY

Double_t Target::fMagnetY
protected

Definition at line 93 of file Target.h.

◆ fNCol

Int_t Target::fNCol
protected

Definition at line 102 of file Target.h.

◆ fnHpT

Int_t Target::fnHpT
protected

Definition at line 152 of file Target.h.

◆ fNRow

Int_t Target::fNRow
protected

Definition at line 103 of file Target.h.

◆ fNTarget

Int_t Target::fNTarget
protected

Definition at line 105 of file Target.h.

◆ fNWall

Int_t Target::fNWall
protected

Definition at line 104 of file Target.h.

◆ fPassive

Bool_t Target::fPassive
protected

Definition at line 83 of file Target.h.

◆ fPillarX

Double_t Target::fPillarX
protected

Definition at line 145 of file Target.h.

◆ fPillarY

Double_t Target::fPillarY
protected

Definition at line 146 of file Target.h.

◆ fPillarZ

Double_t Target::fPillarZ
protected

Definition at line 147 of file Target.h.

◆ fsingleemulsionfilm

Bool_t Target::fsingleemulsionfilm
protected

Definition at line 85 of file Target.h.

◆ LeadThickness

Double_t Target::LeadThickness
protected

Definition at line 121 of file Target.h.

◆ number_of_plates

Int_t Target::number_of_plates
protected

Definition at line 106 of file Target.h.

◆ PlasticBaseThickness

Double_t Target::PlasticBaseThickness
protected

Definition at line 120 of file Target.h.

◆ TTrackerZ

Double_t Target::TTrackerZ
protected

Definition at line 139 of file Target.h.

◆ WallXDim

Double_t Target::WallXDim
protected

Definition at line 112 of file Target.h.

◆ WallYDim

Double_t Target::WallYDim
protected

Definition at line 113 of file Target.h.

◆ WallZDim

Double_t Target::WallZDim
protected

Definition at line 114 of file Target.h.

◆ XDimension

Double_t Target::XDimension
protected

Definition at line 108 of file Target.h.

◆ YDimension

Double_t Target::YDimension
protected

Definition at line 109 of file Target.h.

◆ Ydistance

Double_t Target::Ydistance
protected

Definition at line 130 of file Target.h.

◆ ZDimension

Double_t Target::ZDimension
protected

Definition at line 110 of file Target.h.


The documentation for this class was generated from the following files: