4#include "FairDetector.h"
6#include "TLorentzVector.h"
15class veto:
public FairDetector
24 veto(
const char* Name, Bool_t Active);
55 void SetZpositions(Float_t z0, Float_t z1, Float_t z2, Float_t z3, Float_t z4, Int_t c);
56 void SetTubZpositions(Float_t z1, Float_t z2, Float_t z3, Float_t z4, Float_t z5, Float_t z6);
57 void SetTublengths(Float_t l1, Float_t l2, Float_t l3, Float_t l6);
69 TVector3 pos, TVector3 mom,
70 Double_t time, Double_t length,
71 Double_t eLoss,Int_t pdgcode,TVector3 Lpos, TVector3 Lmom);
77 virtual void CopyClones( TClonesArray* cl1, TClonesArray* cl2 ,
160 TGeoVolume*
GeoTrapezoid(TString xname,Double_t wz,Double_t wX_start,Double_t wX_end,Double_t wY_start,Double_t wY_end,
161 Int_t color,TGeoMedium *material,Bool_t sens);
162 TGeoVolume*
GeoTrapezoidNew(TString xname,Double_t thick,Double_t wz,Double_t wX_start,Double_t wX_end,Double_t wY_start,Double_t wY_end,Int_t color,TGeoMedium *material,Bool_t sens);
163 void AddBlock(TGeoVolumeAssembly *tInnerWall,TGeoVolumeAssembly *tDecayVacuum, TGeoVolumeAssembly *tOuterWall,TGeoVolumeAssembly *tLongitRib,TGeoVolumeAssembly *tVerticalRib,TGeoVolumeAssembly *ttLiSc,
int& liScCounter,
164 int blockNr ,
int nx,
int ny,
165 double z1,
double z2 ,
double Zshift,
double dist,
double distC,
166 double wallThick,
double liscThick1,
double liscThick2,
double ribThick);
168 TGeoVolumeAssembly*
GeoCornerRib(TString xname,
double ribThick,
double lt1,
double lt2 ,
double dz,
double slopeX,
double slopeY,Int_t color, TGeoMedium *material, Bool_t sens);
169 int makeId(
double z,
double x,
double y);
170 int liscId(TString ShapeTypeName,
int blockNr,
int Zlayer,
int number,
int position);
173 TGeoVolume*
GeoSideObj(TString xname,
double dz,
174 double a1,
double b1,
double a2,
double b2,
double dA,
double dB,
175 Int_t color, TGeoMedium *material, Bool_t sens);
176 TGeoVolume*
GeoCornerLiSc1(TString xname,
double dz,
bool isClockwise,
177 double a,
double b1,
double b2,
double dA,
double dB,
178 Int_t color, TGeoMedium *material, Bool_t sens);
179 TGeoVolume*
GeoCornerLiSc2(TString xname,
double dz,
bool isClockwise,
180 double a,
double b1,
double b2,
double dA,
double dB,
181 Int_t color, TGeoMedium *material, Bool_t sens);
184 TGeoVolume*
MakeSegments(Double_t dz,Double_t dx_start,Double_t dy,Double_t slopex,Double_t slopey,Double_t floorHeight);
194 {
return (iz*1000+iplank)*10+region+
fDeltaCpy; }
197 void InnerAddToMap(Int_t ncpy, Double_t x, Double_t y, Double_t z, Double_t dx=-1111, Double_t dy=-1111, Double_t dz=-1111);
TGeoVolume * GeoCornerLiSc2(TString xname, double dz, bool isClockwise, double a, double b1, double b2, double dA, double dB, Int_t color, TGeoMedium *material, Bool_t sens)
void SetFloorHeight(Float_t a, Float_t b)
TClonesArray * fvetoPointCollection
TString supportMedIn_name
medium of veto counter, liquid or plastic scintillator
Float_t fT4z
z-position of tracking station 3
void SetXYstart(Float_t b, Float_t fx, Float_t c, Float_t fy)
int liscId(TString ShapeTypeName, int blockNr, int Zlayer, int number, int position)
virtual Bool_t ProcessHits(FairVolume *v=0)
TString decayVolumeMed_name
medium of support structure, aluminium, balloon
TGeoVolume * GeoTrapezoidNew(TString xname, Double_t thick, Double_t wz, Double_t wX_start, Double_t wX_end, Double_t wY_start, Double_t wY_end, Int_t color, TGeoMedium *material, Bool_t sens)
void SetUseSupport(Int_t use=1)
int makeId(double z, double x, double y)
void SetTubZpositions(Float_t z1, Float_t z2, Float_t z3, Float_t z4, Float_t z5, Float_t z6)
void SetPlasticVeto(Int_t plastic=1)
TGeoVolume * GeoCornerLiSc1(TString xname, double dz, bool isClockwise, double a, double b1, double b2, double dA, double dB, Int_t color, TGeoMedium *material, Bool_t sens)
void SetVesselStructure(Float_t a, Float_t b, Float_t c, TString d, Float_t l, TString e, TString f, TString v, Float_t r)
TGeoVolume * MakeMagnetSegment(Int_t seg)
TGeoMedium * vetoMed
medium of decay volume, vacuum/air/helium
Int_t fVolumeID
track index
TGeoMedium * supportMedOut
Int_t GetPlasticVeto() const
virtual void CopyClones(TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
Float_t fTime
momentum at entrance
TGeoMedium * decayVolumeMed
TLorentzVector fMom
position at entrance
virtual void SetSpecialPhysicsCuts()
std::map< Int_t, TVector3 > fCenters
TGeoVolume * GeoSideObj(TString xname, double dz, double a1, double b1, double a2, double b2, double dA, double dB, Int_t color, TGeoMedium *material, Bool_t sens)
TGeoVolumeAssembly * GeoCornerRib(TString xname, double ribThick, double lt1, double lt2, double dz, double slopeX, double slopeY, Int_t color, TGeoMedium *material, Bool_t sens)
Int_t GetLiquidVeto() const
Float_t f_OuterSupportThickness
Float_t fT3z
z-position of tracking station 2
TGeoVolume * MakeLidSegments(Int_t seg, Double_t dx, Double_t dy)
void SetLiquidVeto(Int_t liquid=1)
Int_t fDesign
z-position of tracking station 4
void InnerAddToMap(Int_t ncpy, Double_t x, Double_t y, Double_t z, Double_t dx=-1111, Double_t dy=-1111, Double_t dz=-1111)
virtual void BeginPrimary()
virtual void FinishPrimary()
TGeoMedium * supportMedIn
TString supportMedOut_name
medium of support structure, iron, balloon
Bool_t fFastMuon
1: cylindrical with basic tracking chambers,
void SetZpositions(Float_t z0, Float_t z1, Float_t z2, Float_t z3, Float_t z4, Int_t c)
void SetTublengths(Float_t l1, Float_t l2, Float_t l3, Float_t l6)
veto & operator=(const veto &)
TGeoVolume * MakeSegments(Double_t dz, Double_t dx_start, Double_t dy, Double_t slopex, Double_t slopey, Double_t floorHeight)
void AddBlock(TGeoVolumeAssembly *tInnerWall, TGeoVolumeAssembly *tDecayVacuum, TGeoVolumeAssembly *tOuterWall, TGeoVolumeAssembly *tLongitRib, TGeoVolumeAssembly *tVerticalRib, TGeoVolumeAssembly *ttLiSc, int &liScCounter, int blockNr, int nx, int ny, double z1, double z2, double Zshift, double dist, double distC, double wallThick, double liscThick1, double liscThick2, double ribThick)
Float_t f_InnerSupportThickness
TGeoVolume * GeoTrapezoid(TString xname, Double_t wz, Double_t wX_start, Double_t wX_end, Double_t wY_start, Double_t wY_end, Int_t color, TGeoMedium *material, Bool_t sens)
TLorentzVector fPos
volume id
Float_t fT2z
z-position of tracking station 1
Int_t InitMedium(const char *name)
virtual void EndOfEvent()
virtual TClonesArray * GetCollection(Int_t iColl) const
Float_t fT1z
z-position of veto station
virtual void BeginEvent()
vetoPoint * AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss, Int_t pdgcode, TVector3 Lpos, TVector3 Lmom)
Float_t f_PhiRibsThickness
virtual void Initialize()
Int_t GetUseSupport() const
Int_t GetCopyNumber(Int_t iz, Int_t iplank, Int_t region)
Map of copy number to center of tiles.