172 art::ServiceHandle<geo::Geometry> geom;
174 std::vector<sim::SimPhotons>
const& optical = *(
evt.getValidHandle<std::vector<sim::SimPhotons>>(
photonLabel));
175 std::vector<sim::SimChannel>
const& charge = *(
evt.getValidHandle<std::vector<sim::SimChannel>>(
chargeLabel));
184 auto type =
evt.getMany< std::vector<simb::MCTruth> >();
186 for(
size_t mcl = 0; mcl <
type.size(); ++mcl)
188 art::Handle< std::vector<simb::MCTruth> > mclistHandle =
type[mcl];
190 for(
size_t m = 0;
m < mclistHandle->size(); ++
m)
192 art::Ptr<simb::MCTruth> mct(mclistHandle,
m);
226 for (
int u=0; u<360; u++)
240 for (std::size_t chargechannel = 0; chargechannel<charge.size(); ++chargechannel)
242 auto const& channeltdcide = charge.at(chargechannel).TDCIDEMap();
244 for (std::size_t TDCnu = 0; TDCnu<channeltdcide.size(); ++TDCnu)
247 sim::TDCIDE const& tdcide = channeltdcide.at(TDCnu);
249 for (std::size_t IDEnu = 0; IDEnu<tdcide.second.size(); ++IDEnu)
251 sim::IDE const& ida = tdcide.second.at(IDEnu);
280 for (std::size_t channel = 0; channel < optical.size(); ++channel) {
284 noPMT[channel] = channel;
301 geom->OpDetGeoFromOpChannel(channel).GetCenter(xyz);
303 PMTx[channel] = xyz[0];
304 PMTy[channel] = xyz[1];
305 PMTz[channel] = xyz[2];
313 if (photons_collected[channel]>0)
315 for (
size_t i = 0; i<photon_vec.size() && int(i)<
MaxPhotons; ++i)
333 if (
PMTx[channel]<-200){
TPC[channel]=0;}
334 if (
PMTx[channel]>-200 &&
PMTx[channel]<0){
TPC[channel]=1;}
335 if (
PMTx[channel]<200 &&
PMTx[channel]>0){
TPC[channel]=2;}
336 if (
PMTx[channel]>200){
TPC[channel]=3;}
float photon_time[nPMTs][MaxPhotons]
float total_quenched_energy
float z
z position of ionization [cm]
std::pair< unsigned short, std::vector< sim::IDE > > TDCIDE
List of energy deposits at the same time (on this channel)
art::InputTag chargeLabel
float x
x position of ionization [cm]
tuple m
now if test mode generate materials, CRT shell, world, gdml header else just generate CRT shell for u...
Ionization at a point of the TPC sensitive volume.
float energy
energy deposited by ionization by this track ID and time [MeV]
float y
y position of ionization [cm]
Collection of photons which recorded on one channel.
art::InputTag photonLabel
float photons_collected[nPMTs]
float QE_photons_collected[nPMTs]
float firstphoton_time[nPMTs]
BEGIN_PROLOG could also be cout