ClassImp(AliALIFE)
- AliALIFE::AliALIFE(const char* file1, const char* file2)
+AliALIFE::AliALIFE(const char* file1, const char* file2):
+ fNBodies(0),
+ fNVolumes(0),
+ fBodyFile(file1),
+ fVolumeFile(file2),
+ fFile1(fopen(fBodyFile,"w")),
+ fFile2(fopen(fVolumeFile,"w")),
+ fDefaultVolume1("DEFAU1"),
+ fDefaultVolume2("DEFAU2")
{
// Constructor
- fNBodies = 0;
- fNVolumes= 0;
- fBodyFile = file1; // File for Fluka bodies
- fVolumeFile = file2;
- fFile1=fopen(fBodyFile,"w");
- fFile2=fopen(fVolumeFile,"w");
BodyHeader();
VolumeHeader();
- fDefaultVolume1 = "DEFAU1";
- fDefaultVolume2 = "DEFAU2";
}
- AliALIFE::AliALIFE()
+AliALIFE::AliALIFE():
+ fNBodies(0),
+ fNVolumes(0),
+ fBodyFile("FlukaBody.inp"),
+ fVolumeFile("FlukaVolume.inp"),
+ fFile1(fopen(fBodyFile,"w")),
+ fFile2(fopen(fVolumeFile,"w")),
+ fDefaultVolume1("DEFAU1"),
+ fDefaultVolume2("DEFAU2")
{
// Default constructor
- fBodyFile = "FlukaBody.inp";
- fVolumeFile = "FlukaVolume.inp";
- fFile1=fopen(fBodyFile,"w");
- fFile2=fopen(fVolumeFile,"w");
BodyHeader();
VolumeHeader();
}
+
+AliALIFE::AliALIFE(const AliALIFE &rhs):
+ TObject(rhs),
+ fNBodies(0),
+ fNVolumes(0),
+ fBodyFile(0),
+ fVolumeFile(0),
+ fFile1(0),
+ fFile2(0),
+ fDefaultVolume1(0),
+ fDefaultVolume2(0)
+{
+ // Copy Constructor
+ rhs.Copy(*this);
+}
+
void AliALIFE::BodyHeader()
{
// Write header for body definitions
void AliALIFE:: Cylinder(Float_t rmin, Float_t rmax,
Float_t zmin, Float_t zmax,
Float_t pos[3],
- char* Material, char* Field, char* Cuts)
+ const char* Material,
+ const char* Field,
+ const char* Cuts)
{
// Simple cylinder
//
// Bodies
// ^^^^^^
- char name1[5], name2[5], name3[5], name4[5];
+ char name1[6], name2[6], name3[6], name4[6];
// outer radius
sprintf(name1, "R%4.4d", fNBodies++);
}
void AliALIFE::OnionCylinder(Float_t* r, Int_t nr, Float_t zmin, Float_t zmax,
- Float_t pos[3], char** Materials,
- char** Fields, char** Cuts)
+ Float_t pos[3], const char** Materials,
+ const char** Fields, const char** Cuts)
{
//
// Concentric cylinders
Float_t rmax1, Float_t rmax2,
Float_t zmin, Float_t zmax,
Float_t pos[3],
- char* Material, char* Field, char* Cuts)
+ const char* Material,
+ const char* Field,
+ const char* Cuts)
{
// Simple cone
void AliALIFE::OnionCone (Float_t* r1, Float_t* r2, Int_t nr,
Float_t zmin, Float_t zmax,
- Float_t pos[3], char** Materials, char** Fields,
- char** Cuts)
+ Float_t pos[3], const char** Materials,
+ const char** Fields, const char** Cuts)
{
// Concentric cones
//
void AliALIFE::PolyCone(Float_t* rmin, Float_t* rmax, Float_t* z,
Int_t nz,
Float_t pos[3],
- char* Material, char* Field, char* Cuts)
+ const char* Material,
+ const char* Field,
+ const char* Cuts)
{
//
// Equivalent to the Geant3 PCON
void AliALIFE::OnionPolyCone(Float_t** r, Float_t* z,
Int_t nr, Int_t nz,
Float_t pos[3],
- char** Materials, char** Fields, char** Cuts)
+ const char** Materials,
+ const char** Fields,const char** Cuts)
{
//
// Concentric PCONS
}
}
-void AliALIFE::Comment(char* Comment)
+void AliALIFE::Comment(const char* Comment)
{
// Insert comment line
fprintf(fFile1,"*%s\n", Comment);
}
-void AliALIFE::Finish()
+void AliALIFE::Finish(Bool_t iremove)
{
// Finish geometry definition
char s[BUFSIZ];
fclose(fFile1);
fclose(fFile2);
+ if (iremove) {
+ remove(fVolumeFile);
+ remove(fBodyFile);
+ }
}
+void AliALIFE::Copy(TObject&) const
+{
+ //
+ // Copy
+ //
+ Fatal("Copy","Not implemented!\n");
+}