Different neutron dose results

I define a scorer to measure the neutron dose using the following code:
G4SDParticleFilter* neutronFilter
= new G4SDParticleFilter(filterName=“neutronFilter”,particleName=“neutron”);

primitive = new G4PSDoseDeposit(“neutron_DoseDeposit”);
primitive->SetFilter(neutronFilter);
det->RegisterPrimitive(primitive);

I find that when I use the physical list QGSP_BIC_HP, the neutron dose is always zero, but when I use QBBC, it is not zero. Why is this? Is there anything wrong with the scorer I defined?