RPC example running problem

Hello, I tried to run the example RPC and found that no output signal was generated.

1. I looked at the code of the example and found a problem.

This is the code in the example

 // The geometry of the RPC.
  const double gap = 0.2;  // [cm]
  const double thickness = 0.2;  // [cm]
  const double eps = 8.;  // [1]
  const double voltage = -9500;  // [V]
  const double sigma = 1e-2; // [S/m]
  ComponentParallelPlate* RPC = new ComponentParallelPlate();
  RPC->Setup(gap, thickness, eps, voltage, sigma);

The parameter gap indicates the thickness of the air gap

This is the definition of ComponentParallelPlate->Setup

void ComponentParallelPlate::Setup(const int N, std::vector<double> eps,
                                   std::vector<double> d, const double V,
                                   std::vector<int> sigmaIndex) {

There is no definition of the parameter gap, the parameter N is amount of layers in the geometry, this includes the gas gaps`

I don’t know why this is.

2. The second question

Is it possible to replace the ComponentParallelPlate function with COMSOL?

I checked the code of ComponentParallelPlate . I guess the main role of ComponentParallelPlate is to build the geometric model of the detector, define the material properties and calculate the weighted electric field.

I was wondering if building the geometric model and calculating the weight field could be done in COMSOL if we assume that the weight field is not changing with time.

In other words, the weight field of MRPC is calculated using COMSOL and then imported into Garfield++ for simulation.

Looking forward to your reply.

I think @hschindl can help you.


  1. yes, you are absolutely right, the example needs updating.

  2. @djjansse can give you more details, but yes, you can also use Comsol to compute the electrostatic and weighting potentials.


As @hschindl pointed out, the example needs to be updated to reflect the overhaul the ComponentParallelPlate class has undergone since it was written. Now the Setup function allows for the modelling of an MRPC with N layers (the sum of the gas gaps and the resistive and insulating layers), where the height of each layer is given in vector d, their relative permittivities ineps and potential difference between the cathode and anode V. The final vector sigmaIndex is a collection of indices of the layers that are resistive. All your final signal calculations will only be done for the prompt component. I hope this will help you advance with your work until the example is up to date.

On the topic of using COMSOL: yes, this is possible using the ComponentComsol class for 3D models. For instructions, I would like to point to the relevant example on the Garfield++ webpage, which outlines step-by-step how to export your solution from COMSOL and import it into Garfield++. If you want an example from COMSOL to get you started, I can send you one if you send me a mail at djunes.janssens@cern.ch.

If you have any other questions, do not hesitate to ask.

Kind regards,


Thank you for your reply. I have sent you the email.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.