SND@LHC Software
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 ()
 
virtual ~Target ()
 
void SetDetectorDesign (Int_t Design)
 
void MakeNuTargetPassive (Bool_t a)
 
void MergeTopBot (Bool_t SingleEmFilm)
 
void ConstructGeometry ()
 
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 SetCESParam (Double_t RohG, Double_t LayerCESW, Double_t CESW, Double_t CESPack)
 
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 DecodeBrickID (Int_t detID, Int_t &NWall, Int_t &NRow, Int_t &NColumn, Int_t &NPlate, Bool_t &EmCES, Bool_t &EmBrick, Bool_t &EmTop)
 
void SetHpTParam (Int_t n, Double_t dd, Double_t DZ)
 
virtual void Initialize ()
 
virtual Bool_t ProcessHits (FairVolume *v=0)
 
virtual void Register ()
 
virtual TClonesArray * GetCollection (Int_t iColl) const
 
virtual void Reset ()
 
TargetPointAddHit (Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss, Int_t pdgCode)
 
virtual void CopyClones (TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
 
virtual void SetSpecialPhysicsCuts ()
 
virtual void EndOfEvent ()
 
virtual void FinishPrimary ()
 
virtual void FinishRun ()
 
virtual void BeginPrimary ()
 
virtual void PostTrack ()
 
virtual void PreTrack ()
 
virtual void BeginEvent ()
 
 Target (const Target &)
 
Targetoperator= (const Target &)
 

Public Attributes

ClassDef(Target, 4) private Int_t fVolumeID
 track index
 
TLorentzVector fPos
 volume id
 
TLorentzVector fMom
 position at entrance
 
Double32_t fTime
 momentum at entrance
 
Double32_t fLength
 time
 
Double32_t fELoss
 length
 
TClonesArray * fTargetPointCollection
 energy loss
 

Protected Member Functions

Int_t InitMedium (const char *name)
 

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 CESPackageZ
 
Double_t Ydistance
 
Double_t BrickZ
 
Double_t BrickY
 
Double_t BrickX
 
Double_t RohacellGap
 
Double_t LayerCESWidth
 
Double_t CESWidth
 
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
 

Detailed Description

Definition at line 26 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 81 of file Target.cxx.

82 : FairDetector(name, true, ktauTarget),
83 fTrackID(-1),
84 fVolumeID(-1),
85 fPos(),
86 fMom(),
87 fTime(-1.),
88 fLength(-1.),
89 fELoss(-1),
90 fTargetPointCollection(new TClonesArray("TargetPoint"))
91{
93}
@ ktauTarget
Double_t Ydistance
Definition Target.h:194
Double32_t fLength
time
Definition Target.h:137
ClassDef(Target, 4) private Int_t fVolumeID
track index
Definition Target.h:125
TClonesArray * fTargetPointCollection
energy loss
Definition Target.h:141
TLorentzVector fPos
volume id
Definition Target.h:134
Double32_t fTime
momentum at entrance
Definition Target.h:136
Double32_t fELoss
length
Definition Target.h:138
TLorentzVector fMom
position at entrance
Definition Target.h:135

◆ Target() [2/3]

Target::Target ( )

Definition at line 68 of file Target.cxx.

69 : FairDetector("Target", "",kTRUE),
70 fTrackID(-1),
71 fVolumeID(-1),
72 fPos(),
73 fMom(),
74 fTime(-1.),
75 fLength(-1.),
76 fELoss(-1),
77 fTargetPointCollection(new TClonesArray("TargetPoint"))
78{
79}

◆ ~Target()

Target::~Target ( )
virtual

Definition at line 95 of file Target.cxx.

96{
98 fTargetPointCollection->Delete();
100 }
101}

◆ Target() [3/3]

Target::Target ( const Target )

Member Function Documentation

◆ AddHit()

TargetPoint * Target::AddHit ( Int_t  trackID,
Int_t  detID,
TVector3  pos,
TVector3  mom,
Double_t  time,
Double_t  length,
Double_t  eLoss,
Int_t  pdgCode 
)

This method is an example of how to add your own point of type muonPoint to the clones array

Definition at line 802 of file Target.cxx.

806{
807 TClonesArray& clref = *fTargetPointCollection;
808 Int_t size = clref.GetEntriesFast();
809 //cout << "brick hit called"<< pos.z()<<endl;
810 return new(clref[size]) TargetPoint(trackID,detID, pos, mom,
811 time, length, eLoss, pdgCode);
812}

◆ BeginEvent()

virtual void Target::BeginEvent ( )
inlinevirtual

Definition at line 119 of file Target.h.

119{;}

◆ BeginPrimary()

virtual void Target::BeginPrimary ( )
inlinevirtual

Definition at line 116 of file Target.h.

116{;}

◆ ConstructGeometry()

void Target::ConstructGeometry ( )

Definition at line 272 of file Target.cxx.

273{
274 // cout << "Design = " << fDesign << endl;
275 TGeoVolume *top=gGeoManager->GetTopVolume();
276
277 InitMedium("air");
278 TGeoMedium *air =gGeoManager->GetMedium("air");
279
280 InitMedium("iron");
281 TGeoMedium *Fe =gGeoManager->GetMedium("iron");
282
283 InitMedium("CoilAluminium");
284 TGeoMedium *Al = gGeoManager->GetMedium("CoilAluminium");
285
286 InitMedium("CoilCopper");
287 TGeoMedium *Cu = gGeoManager->GetMedium("CoilCopper");
288
289 InitMedium("PlasticBase");
290 TGeoMedium *PBase =gGeoManager->GetMedium("PlasticBase");
291
292 InitMedium("NuclearEmulsion");
293 TGeoMedium *NEmu =gGeoManager->GetMedium("NuclearEmulsion");
294
295 TGeoMaterial *NEmuMat = NEmu->GetMaterial(); //I need the materials to build the mixture
296 TGeoMaterial *PBaseMat = PBase->GetMaterial();
297
298 Double_t rho_film = (NEmuMat->GetDensity() * 2 * EmulsionThickness + PBaseMat->GetDensity() * PlasticBaseThickness)/(2* EmulsionThickness + PlasticBaseThickness);
299 Double_t frac_emu = NEmuMat->GetDensity() * 2 * EmulsionThickness /(NEmuMat->GetDensity() * 2 * EmulsionThickness + PBaseMat->GetDensity() * PlasticBaseThickness);
300
301 if (fsingleemulsionfilm) cout<<"TARGET PRINTOUT: Single volume for emulsion film chosen: average density: "<<rho_film<<" fraction in mass of emulsion "<<frac_emu<<endl;
302
303 TGeoMixture * emufilmmixture = new TGeoMixture("EmulsionFilmMixture", 2.00); // two nuclear emulsions separated by the plastic base
304
305 emufilmmixture->AddElement(NEmuMat,frac_emu);
306 emufilmmixture->AddElement(PBaseMat,1. - frac_emu);
307
308 TGeoMedium *Emufilm = new TGeoMedium("EmulsionFilm",100,emufilmmixture);
309
310 InitMedium("lead");
311 TGeoMedium *lead = gGeoManager->GetMedium("lead");
312
313 InitMedium("rohacell");
314 TGeoMedium *rohacell = gGeoManager->GetMedium("rohacell");
315
316 InitMedium("Concrete");
317 TGeoMedium *Conc =gGeoManager->GetMedium("Concrete");
318
319 InitMedium("steel");
320 TGeoMedium *Steel =gGeoManager->GetMedium("steel");
321
322 Int_t NPlates = number_of_plates; //Number of doublets emulsion + Pb
323 Int_t NRohacellGap = 2;
324
325 //Definition of the target box containing emulsion bricks + (CES if fDesign = 0 o 1) + target trackers (TT)
326 TGeoBBox *TargetBox = new TGeoBBox("TargetBox",XDimension/2, YDimension/2, ZDimension/2);
327 TGeoVolume *volTarget = new TGeoVolume("volTarget",TargetBox, air);
328
329 // In both fDesign=0 & fDesign=1 the emulsion target is inserted within a magnet
330 if(fDesign!=2)
331 {
332 TGeoVolume *MagnetVol;
333
334 //magnetic field in target
335 TGeoUniformMagField *magField2 = new TGeoUniformMagField();
336
337 if(fDesign==1) //TP
338 {
339 magField2->SetFieldValue(fField,0,0.);
340 MagnetVol=gGeoManager->GetVolume("Davide");
341 }
342 if(fDesign==0) //NEW
343 {
344 MagnetVol=gGeoManager->GetVolume("Goliath");
345 magField2->SetFieldValue(0.,fField,0.);
346 }
347 if(fDesign==3)
348 {
349 magField2->SetFieldValue(fField,0,0.);
350 MagnetVol=gGeoManager->GetVolume("NudetMagnet");
351 }
352
353 //Definition of the target box containing emulsion bricks + CES + target trackers (TT)
354 if (fDesign != 3) volTarget->SetField(magField2);
355 volTarget->SetVisibility(1);
356 volTarget->SetVisDaughters(1);
357 if(fDesign==0) //TP
358 MagnetVol->AddNode(volTarget,1,new TGeoTranslation(0,-fMagnetY/2+fColumnY+fCoilH2+YDimension/2,0));
359 if(fDesign==1) //NEW
360 MagnetVol->AddNode(volTarget,1,new TGeoTranslation(0,-fMagnetY/2+fColumnY+YDimension/2,0));
361 if(fDesign==3){
362 TGeoVolume *volMagRegion=gGeoManager->GetVolume("volMagRegion");
363 Double_t ZDimMagnetizedRegion = ((TGeoBBox*) volMagRegion->GetShape())->GetDZ() * 2.; //n.d.r. DZ is the semidimension
364 for (int i = 0; i < fNTarget; i++){
365 volMagRegion->AddNode(volTarget,i+1,new TGeoTranslation(0,0, -ZDimMagnetizedRegion/2 + ZDimension/2. + i*(ZDimension + 3 * fHpTDZ + 2* fHpTDistance)));
366 }
367 }
368 }
369
370
371
372
373
374
375
376 //
377 //Volumes definition
378 //
379
380 TGeoBBox *Cell = new TGeoBBox("cell", BrickX/2, BrickY/2, CellWidth/2);
381 TGeoVolume *volCell = new TGeoVolume("Cell",Cell,air);
382
383 //Brick
384 TGeoBBox *Brick = new TGeoBBox("brick", BrickX/2, BrickY/2, BrickZ/2);
385 TGeoVolume *volBrick = new TGeoVolume("Brick",Brick,air);
386 volBrick->SetLineColor(kCyan);
387 volBrick->SetTransparency(1);
388
389 TGeoBBox *Lead = new TGeoBBox("Pb", EmulsionX/2, EmulsionY/2, LeadThickness/2);
390 TGeoVolume *volLead = new TGeoVolume("Lead",Lead,lead);
391 volLead->SetTransparency(1);
392 volLead->SetLineColor(kGray);
393 //volLead->SetField(magField2);
394
395 for(Int_t n=0; n<NPlates; n++)
396 {
397 volBrick->AddNode(volLead, n, new TGeoTranslation(0,0,-BrickZ/2+BrickPackageZ/2+ EmPlateWidth + LeadThickness/2 + n*AllPlateWidth)); //LEAD
398 }
399 if (fsingleemulsionfilm){ //simplified configuration, unique sensitive layer for the whole emulsion plate
400 TGeoBBox *EmulsionFilm = new TGeoBBox("EmulsionFilm", EmulsionX/2, EmulsionY/2, EmPlateWidth/2);
401 TGeoVolume *volEmulsionFilm = new TGeoVolume("Emulsion",EmulsionFilm,Emufilm); //TOP
402 volEmulsionFilm->SetLineColor(kBlue);
403
404 if(fPassive==0)
405 {
406 AddSensitiveVolume(volEmulsionFilm);
407 }
408
409 for(Int_t n=0; n<NPlates+1; n++)
410 {
411 volBrick->AddNode(volEmulsionFilm, n, new TGeoTranslation(0,0,-BrickZ/2+BrickPackageZ/2+ EmPlateWidth/2 + n*AllPlateWidth));
412 }
413 }
414 else { //more accurate configuration, two emulsion films divided by a plastic base
415 TGeoBBox *EmulsionFilm = new TGeoBBox("EmulsionFilm", EmulsionX/2, EmulsionY/2, EmulsionThickness/2);
416 TGeoVolume *volEmulsionFilm = new TGeoVolume("Emulsion",EmulsionFilm,NEmu); //TOP
417 TGeoVolume *volEmulsionFilm2 = new TGeoVolume("Emulsion2",EmulsionFilm,NEmu); //BOTTOM
418 volEmulsionFilm->SetLineColor(kBlue);
419 volEmulsionFilm2->SetLineColor(kBlue);
420
421 if(fPassive==0)
422 {
423 AddSensitiveVolume(volEmulsionFilm);
424 AddSensitiveVolume(volEmulsionFilm2);
425 }
426 TGeoBBox *PlBase = new TGeoBBox("PlBase", EmulsionX/2, EmulsionY/2, PlasticBaseThickness/2);
427 TGeoVolume *volPlBase = new TGeoVolume("PlasticBase",PlBase,PBase);
428 volPlBase->SetLineColor(kYellow-4);
429 for(Int_t n=0; n<NPlates+1; n++)
430 {
431 volBrick->AddNode(volEmulsionFilm2, n, new TGeoTranslation(0,0,-BrickZ/2+BrickPackageZ/2+ EmulsionThickness/2 + n*AllPlateWidth)); //BOTTOM
432 volBrick->AddNode(volEmulsionFilm, n, new TGeoTranslation(0,0,-BrickZ/2+BrickPackageZ/2+3*EmulsionThickness/2+PlasticBaseThickness+n*AllPlateWidth)); //TOP
433 volBrick->AddNode(volPlBase, n, new TGeoTranslation(0,0,-BrickZ/2+BrickPackageZ/2+EmulsionThickness+PlasticBaseThickness/2+n*AllPlateWidth)); //PLASTIC BASE
434 }
435 }
436
437 volBrick->SetVisibility(kTRUE);
438
439 //The CES is required only in the option with magnet surrounding the emulsion target
440 if(fDesign!=2)
441 {
442 //CES
443
444 TGeoBBox *CES = new TGeoBBox("ces", EmulsionX/2, EmulsionY/2, CESWidth/2);
445 TGeoVolume *volCES = new TGeoVolume("CES", CES, air);
446 volCES->SetTransparency(5);
447 volCES->SetLineColor(kYellow-10);
448 volCES->SetVisibility(kTRUE);
449
450 TGeoBBox *RohGap = new TGeoBBox("RohGap", EmulsionX/2, EmulsionY/2, RohacellGap/2);
451 TGeoVolume *volRohGap = new TGeoVolume("RohacellGap",RohGap,air); //using AIR for CES, not rohacell
452 volRohGap->SetTransparency(1);
453 volRohGap->SetLineColor(kYellow);
454
455 for(Int_t n=0; n<NRohacellGap; n++)
456 {
457 volCES->AddNode(volRohGap, n, new TGeoTranslation(0,0,-CESWidth/2 +CESPackageZ/2+ EmPlateWidth + RohacellGap/2 + n*LayerCESWidth)); //ROHACELL
458 }
459 if(fsingleemulsionfilm){ //simplified configuration, unique sensitive layer for the whole emulsion plate
460 TGeoBBox *EmulsionFilmCES = new TGeoBBox("EmulsionFilmCES", EmulsionX/2, EmulsionY/2, EmPlateWidth/2);
461 TGeoVolume *volEmulsionFilmCES = new TGeoVolume("EmulsionCES",EmulsionFilmCES,Emufilm); //TOP
462 volEmulsionFilmCES->SetLineColor(kBlue);
463 if(fPassive==0)
464 {
465 AddSensitiveVolume(volEmulsionFilmCES);
466 }
467
468 for(Int_t n=0; n<NRohacellGap+1;n++)
469 {
470 volCES->AddNode(volEmulsionFilmCES,n, new TGeoTranslation(0,0,-CESWidth/2+CESPackageZ/2+EmPlateWidth/2+n*LayerCESWidth));
471 }
472
473 }
474 else{ //more accurate configuration, two emulsion films divided by a plastic base
475
476 TGeoBBox *EmulsionFilmCES = new TGeoBBox("EmulsionFilmCES", EmulsionX/2, EmulsionY/2, EmulsionThickness/2);
477 TGeoVolume *volEmulsionFilmCES = new TGeoVolume("EmulsionCES",EmulsionFilmCES,NEmu); //TOP
478 TGeoVolume *volEmulsionFilm2CES = new TGeoVolume("Emulsion2CES",EmulsionFilmCES,NEmu); //BOTTOM
479 volEmulsionFilmCES->SetLineColor(kBlue);
480 volEmulsionFilm2CES->SetLineColor(kBlue);
481 if(fPassive==0)
482 {
483 AddSensitiveVolume(volEmulsionFilmCES);
484 AddSensitiveVolume(volEmulsionFilm2CES);
485 }
486 //CES PLASTIC BASE
487 TGeoBBox *PlBaseCES = new TGeoBBox("PlBaseCES", EmulsionX/2, EmulsionY/2, PlasticBaseThickness/2);
488 TGeoVolume *volPlBaseCES = new TGeoVolume("PlasticBaseCES",PlBaseCES,PBase);
489 volPlBaseCES->SetLineColor(kYellow);
490 for(Int_t n=0; n<NRohacellGap+1;n++)
491 {
492 volCES->AddNode(volEmulsionFilm2CES,n, new TGeoTranslation(0,0,-CESWidth/2+CESPackageZ/2+EmulsionThickness/2+n*LayerCESWidth)); //BOTTOM
493 volCES->AddNode(volEmulsionFilmCES, n, new TGeoTranslation(0,0,-CESWidth/2+CESPackageZ/2+3*EmulsionThickness/2+PlasticBaseThickness+n*LayerCESWidth)); //TOP
494 volCES->AddNode(volPlBaseCES, n, new TGeoTranslation(0,0,-CESWidth/2+CESPackageZ/2+EmulsionThickness+PlasticBaseThickness/2+n*LayerCESWidth)); //PLASTIC BASE
495 // if(n == 2)
496 // cout << "-CESWidth/2+3*EmulsionThickness/2+PlasticBaseThickness+n*LayerCESWidth = " << -CESWidth/2+3*EmulsionThickness/2+PlasticBaseThickness+n*LayerCESWidth << endl;
497 }
498
499 }
500
501 volCell->AddNode(volBrick,1,new TGeoTranslation(0,0,-CellWidth/2 + BrickZ/2));
502 volCell->AddNode(volCES,1,new TGeoTranslation(0,0,-CellWidth/2 + BrickZ + CESWidth/2));
503
504 TGeoBBox *Row = new TGeoBBox("row",XDimension/2, BrickY/2, CellWidth/2);
505 TGeoVolume *volRow = new TGeoVolume("Row",Row,air);
506 volRow->SetLineColor(20);
507
508 Double_t d_cl_x = -WallXDim/2;
509 for(int j= 0; j < fNCol; j++)
510 {
511 volRow->AddNode(volCell,j,new TGeoTranslation(d_cl_x+BrickX/2, 0, 0));
512 d_cl_x += BrickX;
513 }
514
515 TGeoBBox *Wall = new TGeoBBox("wall",XDimension/2, YDimension/2, CellWidth/2);
516 TGeoVolume *volWall = new TGeoVolume("Wall",Wall,air);
517
518 Double_t d_cl_y = -WallYDim/2;
519 for(int k= 0; k< fNRow; k++)
520 {
521 volWall->AddNode(volRow,k,new TGeoTranslation(0, d_cl_y + BrickY/2, 0));
522
523 // 2mm is the distance for the structure that holds the brick
524 d_cl_y += BrickY + Ydistance;
525 }
526
527 //Columns
528
529 Double_t d_cl_z = - ZDimension/2 + TTrackerZ;
530 Double_t d_tt = -ZDimension/2 + TTrackerZ/2;
531
532 for(int l = 0; l < fNWall; l++)
533 {
534 volTarget->AddNode(volWall,l,new TGeoTranslation(0, 0, d_cl_z +CellWidth/2));
535
536 //6 cm is the distance between 2 columns of consecutive Target for TT placement
537 d_cl_z += CellWidth + TTrackerZ;
538 }
539 }
540
541
542 //in fDesign==2 the emulsion target is not surrounded by a magnet => no magnetic field inside
543 //In the no Magnetic field option, no CES is needed => only brick walls + TT
544 if(fDesign==2)
545 {
546 EmulsionMagnet emuMag;
547
548 TGeoVolume *tTauNuDet = gGeoManager->GetVolume("tTauNuDet");
549 cout<< "Tau Nu Detector fMagnetConfig: "<< fDesign<<endl;
550
551 tTauNuDet->AddNode(volTarget,1,new TGeoTranslation(0,0,fCenterZ));
552
553 TGeoBBox *Row = new TGeoBBox("row",XDimension/2, BrickY/2, CellWidth/2);
554 TGeoVolume *volRow = new TGeoVolume("Row",Row,air);
555 volRow->SetLineColor(20);
556
557 Double_t d_cl_x = -WallXDim/2;
558 for(int j= 0; j < fNCol; j++)
559 {
560 volRow->AddNode(volBrick,j,new TGeoTranslation(d_cl_x+BrickX/2, 0, 0));
561 d_cl_x += BrickX;
562 }
563 TGeoBBox *Wall = new TGeoBBox("wall",XDimension/2, YDimension/2, BrickZ/2);
564 TGeoVolume *volWall = new TGeoVolume("Wall",Wall,air);
565
566 Double_t d_cl_y = -WallYDim/2;
567 for(int k= 0; k< fNRow; k++)
568 {
569 volWall->AddNode(volRow,k,new TGeoTranslation(0, d_cl_y + BrickY/2, 0));
570
571 // 2mm is the distance for the structure that holds the brick
572 d_cl_y += BrickY + Ydistance;
573 }
574 //Columns
575
576 Double_t d_cl_z = - ZDimension/2 + TTrackerZ;
577 Double_t d_tt = -ZDimension/2 + TTrackerZ/2;
578
579 for(int l = 0; l < fNWall; l++)
580 {
581 volTarget->AddNode(volWall,l,new TGeoTranslation(0, 0, d_cl_z +BrickZ/2));
582
583 //6 cm is the distance between 2 columns of consecutive Target for TT placement
584 d_cl_z += BrickZ + TTrackerZ;
585 }
586
587 TGeoBBox *Base = new TGeoBBox("Base", fBaseX/2, fBaseY/2, fBaseZ/2);
588 TGeoVolume *volBase = new TGeoVolume("volBase",Base,Conc);
589 volBase->SetLineColor(kYellow-3);
590 tTauNuDet->AddNode(volBase,1, new TGeoTranslation(0,-WallYDim/2 - fBaseY/2,fCenterZ));
591
592 if(fDesign==2)
593 {
594 TGeoBBox *PillarBox = new TGeoBBox(fPillarX/2,fPillarY/2, fPillarZ/2);
595 TGeoVolume *PillarVol = new TGeoVolume("PillarVol",PillarBox,Steel);
596 PillarVol->SetLineColor(kGreen+3);
597 tTauNuDet->AddNode(PillarVol,1, new TGeoTranslation(-XDimension/2+fPillarX/2,-YDimension/2-fBaseY-fPillarY/2, fCenterZ-ZDimension/2+fPillarZ/2));
598 tTauNuDet->AddNode(PillarVol,2, new TGeoTranslation(XDimension/2-fPillarX/2,-YDimension/2-fBaseY-fPillarY/2, fCenterZ-ZDimension/2+fPillarZ/2));
599 tTauNuDet->AddNode(PillarVol,3, new TGeoTranslation(-XDimension/2+fPillarX/2,-YDimension/2-fBaseY-fPillarY/2, fCenterZ+ZDimension/2-fPillarZ/2));
600 tTauNuDet->AddNode(PillarVol,4, new TGeoTranslation(XDimension/2-fPillarX/2,-YDimension/2-fBaseY-fPillarY/2, fCenterZ+ZDimension/2-fPillarZ/2));
601 }
602 }
603}
Double_t fCenterZ
Definition Target.h:153
Double_t CESWidth
Definition Target.h:202
Int_t fNRow
Definition Target.h:166
Double_t BrickY
Definition Target.h:197
Double_t fHpTDistance
Definition Target.h:218
Double_t fBaseX
Definition Target.h:210
Double_t CESPackageZ
Definition Target.h:192
Double_t BrickX
Definition Target.h:198
Int_t fDesign
Definition Target.h:150
Double_t fBaseZ
Definition Target.h:212
Double_t LeadThickness
Definition Target.h:184
Double_t PlasticBaseThickness
Definition Target.h:183
Double_t fField
Definition Target.h:163
Double_t ZDimension
Definition Target.h:173
Double_t CellWidth
Definition Target.h:204
Double_t LayerCESWidth
Definition Target.h:201
Double_t WallXDim
Definition Target.h:175
Double_t EmulsionY
Definition Target.h:181
Double_t BrickPackageZ
Definition Target.h:191
Double_t RohacellGap
Definition Target.h:200
Int_t fNTarget
Definition Target.h:168
Double_t fHpTDZ
Definition Target.h:219
Double_t WallYDim
Definition Target.h:176
Double_t fPillarX
Definition Target.h:213
Int_t InitMedium(const char *name)
Definition Target.cxx:109
Double_t AllPlateWidth
Definition Target.h:186
Int_t number_of_plates
Definition Target.h:169
Double_t fBaseY
Definition Target.h:211
Double_t YDimension
Definition Target.h:172
Double_t fColumnY
Definition Target.h:157
Double_t BrickZ
Definition Target.h:196
Double_t EmulsionThickness
Definition Target.h:179
Int_t fNWall
Definition Target.h:167
Double_t fPillarZ
Definition Target.h:215
Bool_t fPassive
Definition Target.h:148
Int_t fNCol
Definition Target.h:165
Bool_t fsingleemulsionfilm
Definition Target.h:149
Double_t TTrackerZ
Definition Target.h:207
Double_t fPillarY
Definition Target.h:214
Double_t EmPlateWidth
Definition Target.h:185
Double_t XDimension
Definition Target.h:171
Double_t fCoilH2
Definition Target.h:160
Double_t EmulsionX
Definition Target.h:180
Double_t fMagnetY
Definition Target.h:156
int i
Definition ShipAna.py:86

◆ CopyClones()

virtual void Target::CopyClones ( TClonesArray *  cl1,
TClonesArray *  cl2,
Int_t  offset 
)
inlinevirtual

The following methods can be implemented if you need to make any optional action in your detector during the transport.

Definition at line 110 of file Target.h.

111 {;}

◆ DecodeBrickID()

void Target::DecodeBrickID ( Int_t  detID,
Int_t &  NWall,
Int_t &  NRow,
Int_t &  NColumn,
Int_t &  NPlate,
Bool_t &  EmCES,
Bool_t &  EmBrick,
Bool_t &  EmTop 
)

Definition at line 734 of file Target.cxx.

735{
736 Bool_t BrickorCES = 0, TopBot = 0;
737
738 NWall = detID/1E7;
739 NRow = (detID - NWall*1E7)/1E6;
740 NColumn = (detID - NWall*1E7 -NRow*1E6)/1E4;
741 Double_t b = (detID - NWall*1E7 -NRow*1E6 - NColumn*1E4)/1.E3;
742 if(b < 1)
743 {
744 BrickorCES = 0;
745 NPlate = (detID - NWall*1E7 -NRow*1E6 - NColumn*1E4 - BrickorCES*1E3)/1E1;
746// NPlate = detID - NWall*1E7 -NRow*1E6 - NColumn*1E4 - BrickorCES*1E3;
747 }
748 if(b >= 1)
749 {
750 BrickorCES = 1;
751 NPlate = (detID - NWall*1E7 -NRow*1E6 - NColumn*1E4 - BrickorCES*1E3)/1E1;
752// NPlate = detID - NWall*1E7 -NRow*1E6 - NColumn*1E4 - BrickorCES*1E3;
753 }
754 EmTop = (detID - NWall*1E7 -NRow*1E6 - NColumn*1E4- BrickorCES*1E3- NPlate*1E1)/1E0;
755 if(BrickorCES == 0)
756 {
757 EmCES = 1; EmBrick =0;
758 }
759 if(BrickorCES == 1)
760 {
761 EmBrick = 1; EmCES =0;
762 }
763
764 // cout << "NPlate = " << NPlate << "; NColumn = " << NColumn << "; NRow = " << NRow << "; NWall = " << NWall << endl;
765 // cout << "BrickorCES = " << BrickorCES <<endl;
766 // cout << "EmCES = " << EmCES << "; EmBrick = " << EmBick << endl;
767 // cout << endl;
768}

◆ EndOfEvent()

void Target::EndOfEvent ( )
virtual

Definition at line 771 of file Target.cxx.

772{
773 fTargetPointCollection->Clear();
774}

◆ FinishPrimary()

virtual void Target::FinishPrimary ( )
inlinevirtual

Definition at line 114 of file Target.h.

114{;}

◆ FinishRun()

virtual void Target::FinishRun ( )
inlinevirtual

Definition at line 115 of file Target.h.

115{;}

◆ GetCollection()

TClonesArray * Target::GetCollection ( Int_t  iColl) const
virtual

Gets the produced collections

Definition at line 790 of file Target.cxx.

791{
792 if (iColl == 0) { return fTargetPointCollection; }
793 else { return NULL; }
794}

◆ Initialize()

void Target::Initialize ( )
virtual

Initialization of the detector is done here

Definition at line 103 of file Target.cxx.

104{
105 FairDetector::Initialize();
106}

◆ InitMedium()

Int_t Target::InitMedium ( const char *  name)
protected

Definition at line 109 of file Target.cxx.

110{
111 static FairGeoLoader *geoLoad=FairGeoLoader::Instance();
112 static FairGeoInterface *geoFace=geoLoad->getGeoInterface();
113 static FairGeoMedia *media=geoFace->getMedia();
114 static FairGeoBuilder *geoBuild=geoLoad->getGeoBuilder();
115
116 FairGeoMedium *ShipMedium=media->getMedium(name);
117
118 if (!ShipMedium)
119 {
120 Fatal("InitMedium","Material %s not defined in media file.", name);
121 return -1111;
122 }
123 TGeoMedium* medium=gGeoManager->GetMedium(name);
124 if (medium!=NULL)
125 return ShipMedium->getMediumIndex();
126 return geoBuild->createMedium(ShipMedium);
127}

◆ MakeNuTargetPassive()

void Target::MakeNuTargetPassive ( Bool_t  a)

◆ MergeTopBot()

void Target::MergeTopBot ( Bool_t  SingleEmFilm)

Definition at line 141 of file Target.cxx.

◆ operator=()

Target & Target::operator= ( const Target )

◆ PostTrack()

virtual void Target::PostTrack ( )
inlinevirtual

Definition at line 117 of file Target.h.

117{;}

◆ PreTrack()

virtual void Target::PreTrack ( )
inlinevirtual

Definition at line 118 of file Target.h.

118{;}

◆ ProcessHits()

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

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

This method is called from the MC stepping

Definition at line 605 of file Target.cxx.

606{
608 //Set parameters at entrance of volume. Reset ELoss.
609 if ( gMC->IsTrackEntering() ) {
610 fELoss = 0.;
611 fTime = gMC->TrackTime() * 1.0e09;
612 fLength = gMC->TrackLength();
613 gMC->TrackPosition(fPos);
614 gMC->TrackMomentum(fMom);
615 }
616 // Sum energy loss for all steps in the active volume
617 fELoss += gMC->Edep();
618
619 // Create muonPoint at exit of active volume
620 if ( gMC->IsTrackExiting() ||
621 gMC->IsTrackStop() ||
622 gMC->IsTrackDisappeared() ) {
623 fTrackID = gMC->GetStack()->GetCurrentTrackNumber();
624 //Int_t fTrackID = gMC->GetStack()->GetCurrentTrackNumber();
625 gMC->CurrentVolID(fVolumeID);
626 Int_t detID = fVolumeID;
627 //gGeoManager->PrintOverlaps();
628
629 //cout<< "detID = " << detID << endl;
630 Int_t MaxLevel = gGeoManager->GetLevel();
631 const Int_t MaxL = MaxLevel;
632 //cout << "MaxLevel = " << MaxL << endl;
633 //cout << gMC->CurrentVolPath()<< endl;
634
635
636 Int_t motherV[MaxL];
637// Bool_t EmTop = 0, EmBot = 0, EmCESTop = 0, EmCESBot = 0;
638 Bool_t EmBrick = 0, EmCES = 0, EmTop;
639 Int_t NPlate =0;
640 const char *name;
641
642 name = gMC->CurrentVolName();
643 //cout << name << endl;
644
645 if(strcmp(name, "Emulsion") == 0)
646 {
647 EmBrick=1;
648 NPlate = detID;
649 EmTop=1;
650 }
651 if(strcmp(name, "Emulsion2") == 0)
652 {
653 EmBrick=1;
654 NPlate = detID;
655 EmTop=0;
656 }
657 if(strcmp(name, "EmulsionCES") == 0)
658 {
659 EmCES=1;
660 NPlate = detID;
661 EmTop=1;
662 }
663 if(strcmp(name, "Emulsion2CES") == 0)
664 {
665 EmCES=1;
666 NPlate = detID;
667 EmTop=0;
668 }
669
670 Int_t NWall = 0, NColumn =0, NRow =0;
671
672 for(Int_t i = 0; i < MaxL;i++)
673 {
674 motherV[i] = gGeoManager->GetMother(i)->GetNumber();
675 const char *mumname = gMC->CurrentVolOffName(i);
676 if(motherV[0]==1 && motherV[0]!=detID)
677 {
678 if(strcmp(mumname, "Brick") == 0 ||strcmp(mumname, "CES") == 0) NColumn = motherV[i];
679 if(strcmp(mumname, "Cell") == 0) NRow = motherV[i];
680 if(strcmp(mumname, "Row") == 0) NWall = motherV[i];
681 if((strcmp(mumname, "Wall") == 0)&& (motherV[i]==2)) NWall += fNWall;
682 }
683 else
684 {
685
686 if(strcmp(mumname, "Cell") == 0) NColumn = motherV[i];
687 if(strcmp(mumname, "Row") == 0) NRow = motherV[i];
688 if(strcmp(mumname, "Wall") == 0) NWall = motherV[i];
689 if((strcmp(mumname, "volTarget") == 0) && (motherV[i]==2)) NWall += fNWall;
690 }
691 //cout << i << " " << motherV[i] << " name = " << mumname << endl;
692 }
693
694 Bool_t BrickorCES = 0; //Brick = 1 / CES = 0;
695 if(EmBrick==1)
696 BrickorCES = 1;
697
698 Double_t zEnd = 0, zStart =0;
699
700
701 detID = (NWall+1) *1E7 + (NRow+1) * 1E6 + (NColumn+1)*1E4 + BrickorCES *1E3 + (NPlate+1)*1E1 + EmTop*1 ;
702
703
704 fVolumeID = detID;
705
706 if (fELoss == 0. ) { return kFALSE; }
707 TParticle* p=gMC->GetStack()->GetCurrentTrack();
708 //Int_t MotherID =gMC->GetStack()->GetCurrentParentTrackNumber();
709 Int_t fMotherID =p->GetFirstMother();
710 Int_t pdgCode = p->GetPdgCode();
711
712 // cout << "ID = "<< fTrackID << " pdg = " << pdgCode << "; M = " << fMotherID << " Npl = " << NPlate<<"; NCol = " << NColumn << "; NRow = " << NRow << "; NWall = " << NWall<< " P = " << fMom.Px() << ", "<< fMom.Py() << ", " << fMom.Pz() << endl;
713
714 TLorentzVector Pos;
715 gMC->TrackPosition(Pos);
716 Double_t xmean = (fPos.X()+Pos.X())/2. ;
717 Double_t ymean = (fPos.Y()+Pos.Y())/2. ;
718 Double_t zmean = (fPos.Z()+Pos.Z())/2. ;
719
720
721 AddHit(fTrackID,fVolumeID, TVector3(xmean, ymean, zmean),
722 TVector3(fMom.Px(), fMom.Py(), fMom.Pz()), fTime, fLength,
723 fELoss, pdgCode);
724
725 // Increment number of muon det points in TParticle
726 ShipStack* stack = (ShipStack*) gMC->GetStack();
727 stack->AddPoint(ktauTarget);
728 }
729
730 return kTRUE;
731}
TargetPoint * AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss, Int_t pdgCode)
Definition Target.cxx:802

◆ Register()

void Target::Register ( )
virtual

Registers the produced collections in FAIRRootManager.

This will create a branch in the output tree called TargetPoint, setting the last parameter to kFALSE means: this collection will not be written to the file, it will exist only during the simulation.

Definition at line 777 of file Target.cxx.

778{
779
786 FairRootManager::Instance()->Register("TargetPoint", "Target",
788}

◆ Reset()

void Target::Reset ( )
virtual

has to be called after each event to reset the containers

Definition at line 796 of file Target.cxx.

797{
798 fTargetPointCollection->Clear();
799}

◆ SetBaseDimension()

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

◆ SetBaseHeight()

void Target::SetBaseHeight ( Double_t  Y)

Definition at line 225 of file Target.cxx.

226{
228}
Double_t fMagnetBaseY
Definition Target.h:158

◆ 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_ 
)

◆ SetCellParam()

void Target::SetCellParam ( Double_t  CellW)

Definition at line 205 of file Target.cxx.

◆ SetCenterZ()

void Target::SetCenterZ ( Double_t  z)

Definition at line 245 of file Target.cxx.

246{
247 fCenterZ = z;
248}

◆ SetCESParam()

void Target::SetCESParam ( Double_t  RohG,
Double_t  LayerCESW,
Double_t  CESW,
Double_t  CESPack 
)

◆ SetCoilDownHeight()

void Target::SetCoilDownHeight ( Double_t  H2)

Definition at line 235 of file Target.cxx.

236{
237 fCoilH2=H2;
238}

◆ SetCoilUpHeight()

void Target::SetCoilUpHeight ( Double_t  H1)

Definition at line 230 of file Target.cxx.

231{
232 fCoilH1=H1;
233}
Double_t fCoilH1
Definition Target.h:159

◆ SetColumnHeight()

void Target::SetColumnHeight ( Double_t  Y)

Definition at line 220 of file Target.cxx.

221{
222 fColumnY=Y;
223}

◆ SetDetectorDesign()

void Target::SetDetectorDesign ( Int_t  Design)

Create the detector geometry

Definition at line 130 of file Target.cxx.

131{
132 fDesign = Design;
133 Info("SetDetectorDesign"," to %i", fDesign);
134}

◆ SetDetectorDimension()

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

◆ 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 
)

◆ SetHpTParam()

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

Definition at line 265 of file Target.cxx.

266{
267 fnHpT = n;
268 fHpTDistance = dd;
269 fHpTDZ = DZ;
270}
Int_t fnHpT
Definition Target.h:220

◆ SetMagnetConfiguration()

void Target::SetMagnetConfiguration ( Int_t  config)

◆ SetMagnetHeight()

void Target::SetMagnetHeight ( Double_t  Y)

Definition at line 215 of file Target.cxx.

216{
217 fMagnetY=Y;
218}

◆ SetMagneticField()

void Target::SetMagneticField ( Double_t  B)

Definition at line 240 of file Target.cxx.

241{
242 fField = B;
243}

◆ SetNumberBricks()

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

Definition at line 148 of file Target.cxx.

◆ SetNumberTargets()

void Target::SetNumberTargets ( Int_t  target)

Definition at line 155 of file Target.cxx.

◆ SetPillarDimension()

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

Definition at line 258 of file Target.cxx.

259{
260 fPillarX=x;
261 fPillarY=y;
262 fPillarZ=z;
263}

◆ SetSpecialPhysicsCuts()

virtual void Target::SetSpecialPhysicsCuts ( )
inlinevirtual

Definition at line 112 of file Target.h.

112{;}

◆ SetTargetWallDimension()

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

Definition at line 160 of file Target.cxx.

161{
162 WallXDim = WallXDim_;
163 WallYDim = WallYDim_;
164 WallZDim = WallZDim_;
165}
Double_t WallZDim
Definition Target.h:177

◆ SetTTzdimension()

void Target::SetTTzdimension ( Double_t  TTZ)

Definition at line 210 of file Target.cxx.

Member Data Documentation

◆ AllPlateWidth

Double_t Target::AllPlateWidth
protected

Definition at line 186 of file Target.h.

◆ BrickPackageX

Double_t Target::BrickPackageX
protected

Definition at line 189 of file Target.h.

◆ BrickPackageY

Double_t Target::BrickPackageY
protected

Definition at line 190 of file Target.h.

◆ BrickPackageZ

Double_t Target::BrickPackageZ
protected

Definition at line 191 of file Target.h.

◆ BrickX

Double_t Target::BrickX
protected

Definition at line 198 of file Target.h.

◆ BrickY

Double_t Target::BrickY
protected

Definition at line 197 of file Target.h.

◆ BrickZ

Double_t Target::BrickZ
protected

Definition at line 196 of file Target.h.

◆ CellWidth

Double_t Target::CellWidth
protected

Definition at line 204 of file Target.h.

◆ CESPackageZ

Double_t Target::CESPackageZ
protected

Definition at line 192 of file Target.h.

◆ CESWidth

Double_t Target::CESWidth
protected

Definition at line 202 of file Target.h.

◆ EmPlateWidth

Double_t Target::EmPlateWidth
protected

Definition at line 185 of file Target.h.

◆ EmulsionThickness

Double_t Target::EmulsionThickness
protected

Definition at line 179 of file Target.h.

◆ EmulsionX

Double_t Target::EmulsionX
protected

Definition at line 180 of file Target.h.

◆ EmulsionY

Double_t Target::EmulsionY
protected

Definition at line 181 of file Target.h.

◆ fBaseX

Double_t Target::fBaseX
protected

Definition at line 210 of file Target.h.

◆ fBaseY

Double_t Target::fBaseY
protected

Definition at line 211 of file Target.h.

◆ fBaseZ

Double_t Target::fBaseZ
protected

Definition at line 212 of file Target.h.

◆ fCenterZ

Double_t Target::fCenterZ
protected

Definition at line 153 of file Target.h.

◆ fCoilH1

Double_t Target::fCoilH1
protected

Definition at line 159 of file Target.h.

◆ fCoilH2

Double_t Target::fCoilH2
protected

Definition at line 160 of file Target.h.

◆ fColumnY

Double_t Target::fColumnY
protected

Definition at line 157 of file Target.h.

◆ fDesign

Int_t Target::fDesign
protected

Definition at line 150 of file Target.h.

◆ fELoss

Double32_t Target::fELoss

length

Definition at line 138 of file Target.h.

◆ fField

Double_t Target::fField
protected

Definition at line 163 of file Target.h.

◆ fHpTDistance

Double_t Target::fHpTDistance
protected

Definition at line 218 of file Target.h.

◆ fHpTDZ

Double_t Target::fHpTDZ
protected

Definition at line 219 of file Target.h.

◆ fLength

Double32_t Target::fLength

time

Definition at line 137 of file Target.h.

◆ fMagnetBaseY

Double_t Target::fMagnetBaseY
protected

Definition at line 158 of file Target.h.

◆ fMagnetY

Double_t Target::fMagnetY
protected

Definition at line 156 of file Target.h.

◆ fMom

TLorentzVector Target::fMom

position at entrance

Definition at line 135 of file Target.h.

◆ fNCol

Int_t Target::fNCol
protected

Definition at line 165 of file Target.h.

◆ fnHpT

Int_t Target::fnHpT
protected

Definition at line 220 of file Target.h.

◆ fNRow

Int_t Target::fNRow
protected

Definition at line 166 of file Target.h.

◆ fNTarget

Int_t Target::fNTarget
protected

Definition at line 168 of file Target.h.

◆ fNWall

Int_t Target::fNWall
protected

Definition at line 167 of file Target.h.

◆ fPassive

Bool_t Target::fPassive
protected

Definition at line 148 of file Target.h.

◆ fPillarX

Double_t Target::fPillarX
protected

Definition at line 213 of file Target.h.

◆ fPillarY

Double_t Target::fPillarY
protected

Definition at line 214 of file Target.h.

◆ fPillarZ

Double_t Target::fPillarZ
protected

Definition at line 215 of file Target.h.

◆ fPos

TLorentzVector Target::fPos

volume id

Definition at line 134 of file Target.h.

◆ fsingleemulsionfilm

Bool_t Target::fsingleemulsionfilm
protected

Definition at line 149 of file Target.h.

◆ fTargetPointCollection

TClonesArray* Target::fTargetPointCollection

energy loss

container for data points

Definition at line 141 of file Target.h.

◆ fTime

Double32_t Target::fTime

momentum at entrance

Definition at line 136 of file Target.h.

◆ fVolumeID

ClassDef (Target,4) private Int_t Target::fVolumeID

track index

Track information to be stored until the track leaves the active volume.

Definition at line 133 of file Target.h.

◆ LayerCESWidth

Double_t Target::LayerCESWidth
protected

Definition at line 201 of file Target.h.

◆ LeadThickness

Double_t Target::LeadThickness
protected

Definition at line 184 of file Target.h.

◆ number_of_plates

Int_t Target::number_of_plates
protected

Definition at line 169 of file Target.h.

◆ PlasticBaseThickness

Double_t Target::PlasticBaseThickness
protected

Definition at line 183 of file Target.h.

◆ RohacellGap

Double_t Target::RohacellGap
protected

Definition at line 200 of file Target.h.

◆ TTrackerZ

Double_t Target::TTrackerZ
protected

Definition at line 207 of file Target.h.

◆ WallXDim

Double_t Target::WallXDim
protected

Definition at line 175 of file Target.h.

◆ WallYDim

Double_t Target::WallYDim
protected

Definition at line 176 of file Target.h.

◆ WallZDim

Double_t Target::WallZDim
protected

Definition at line 177 of file Target.h.

◆ XDimension

Double_t Target::XDimension
protected

Definition at line 171 of file Target.h.

◆ YDimension

Double_t Target::YDimension
protected

Definition at line 172 of file Target.h.

◆ Ydistance

Double_t Target::Ydistance
protected

Definition at line 194 of file Target.h.

◆ ZDimension

Double_t Target::ZDimension
protected

Definition at line 173 of file Target.h.


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