Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ class SimTraits
/*RCH*/ VS{ "RCHHit" },
/*MI3*/ VS{ "MI3Hit" },
/*ECL*/ VS{ "ECLHit" },
/*FD */ VS{ "FDHit" }
/*FD3*/ VS{ "FD3Hit" }
#endif
};
// clang-format on
Expand Down Expand Up @@ -176,6 +176,10 @@ namespace focal
{
class Hit;
}
namespace fd3
{
class Hit;
}
namespace detectors
{

Expand Down Expand Up @@ -260,6 +264,10 @@ template <>
struct DetIDToHitTypes<o2::detectors::DetID::FCT> {
using HitType = o2::itsmft::Hit;
};
template <>
struct DetIDToHitTypes<o2::detectors::DetID::FD3> {
using HitType = o2::fd3::Hit;
};
#endif

} // namespace detectors
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
/// \file Hit.h
/// \brief Definition of the FD3 Hit class (based on ITSMFT and FV0)

#ifndef ALICEO2_FVD_HIT_H_
#define ALICEO2_FVD_HIT_H_
#ifndef ALICEO2_FD3_HIT_H_
#define ALICEO2_FD3_HIT_H_

#include <iosfwd>
#include "SimulationDataFormat/BaseHits.h" // for BasicXYZEHit
Expand Down
25 changes: 14 additions & 11 deletions Detectors/Upgrades/ALICE3/FD3/base/include/FD3Base/Constants.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// Copyright 2019-2026 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
Expand All @@ -10,9 +10,7 @@
// or submit itself to any jurisdiction.

/// \file Constants.h
/// \brief General constants in FV0
///
/// \author Maciej Slupecki, University of Jyvaskyla, Finland
/// \brief General constants in FD3

#ifndef ALICEO2_FD3_CONSTANTS_
#define ALICEO2_FD3_CONSTANTS_
Expand All @@ -22,15 +20,20 @@ namespace o2
namespace fd3
{
struct Constants {
static constexpr unsigned int nsect = 8;
static constexpr unsigned int nringsA = 5;
static constexpr unsigned int nringsC = 6;
static constexpr unsigned int nSectScint = 8;
static constexpr unsigned int nRingsScint = 5;

static constexpr float etaMax = 7.0f;
static constexpr float etaMin = 4.0f;
static constexpr float zScint = 420.0f;
static constexpr float zCher = 430.0f;

static constexpr unsigned int nringsA_withMG = 3;
static constexpr float etaMinA_withMG = 5.0f;
static constexpr float dzScint = 4.0f;
static constexpr float dzCher = 2.0f;

static constexpr float etaMin = 2.5f;
static constexpr float etaMax = 4.9f;
static constexpr float etaMax2 = 5.5f; // asymmetric configuration

static constexpr float rsizeq = 1.025f; // quartz radiator transverse size
};

} // namespace fd3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,16 @@
#include "FD3Base/GeometryTGeo.h"
#include "FD3Base/Constants.h"
#include "CommonUtils/ConfigurableParamHelper.h"
#include <string>

namespace o2
{
namespace fd3
{
struct FD3BaseParam : public o2::conf::ConfigurableParamHelper<FD3BaseParam> {

float zmodA = 1700.0f;
float zmodC = -1850.0f;
float dzscint = 4.0f;

bool withMG = false; // modified geometry with 3 rings on A side
struct FD3BaseParam : public o2::conf::ConfigurableParamHelper<FD3BaseParam> {

bool plateBehindA = false;
bool fullContainer = false;
float dzplate = 1.0f; // Aluminium plate width
bool isSymmetric = true;

O2ParamDef(FD3BaseParam, "FD3Base");
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// Copyright 2019-2026 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
Expand All @@ -8,6 +8,7 @@
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.

#ifndef ALICEO2_FD3_GEOMETRYTGEO_H_
#define ALICEO2_FD3_GEOMETRYTGEO_H_

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// Copyright 2019-2026 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
Expand Down Expand Up @@ -57,8 +57,12 @@ class Detector : public o2::base::DetImpl<Detector>
o2::fd3::Hit* addHit(int trackId, unsigned int detId,
const math_utils::Point3D<float>& startPos,
const math_utils::Point3D<float>& endPos,
const math_utils::Vector3D<float>& startMom, double startE,
double endTime, double eLoss, int particlePdg);
const math_utils::Vector3D<float>& startMom,
double startE,
double endTime,
double eLoss,
int particlePdg);

// unsigned int startStatus,
// unsigned int endStatus);

Expand Down Expand Up @@ -86,7 +90,7 @@ class Detector : public o2::base::DetImpl<Detector>

enum EMedia {
Scintillator,
Aluminium
RadiatorOpticalGlass,
};

private:
Expand All @@ -96,20 +100,14 @@ class Detector : public o2::base::DetImpl<Detector>
std::vector<o2::fd3::Hit>* mHits = nullptr;
GeometryTGeo* mGeometryTGeo = nullptr;

TGeoVolumeAssembly* buildModuleA();
TGeoVolumeAssembly* buildModuleC();

float ringSize(float zmod, float eta);

unsigned int mNumberOfRingsA, mNumberOfRingsC, mNumberOfSectors;
float mDzScint, mDzPlate;

std::vector<float> mRingSizesA = {}, mRingSizesC = {};
TGeoVolumeAssembly* buildModuleScint(float etaMin, float etaMax);
TGeoVolumeAssembly* buildModuleCherenkov_v1();
TGeoVolumeAssembly* buildModuleCherenkov_v2();

float mEtaMaxA, mEtaMaxC, mEtaMinA, mEtaMinC;
float mZA, mZC;
int mChannelCounter;
std::map<int, int> mChannelId;

bool mPlateBehindA, mFullContainer;
float getRingSize(float zmod, float eta);

void defineSensitiveVolumes();
void definePassiveVolumes();
Expand Down
Loading
Loading