source: trunk/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.hh @ 1279

Last change on this file since 1279 was 1230, checked in by garnier, 14 years ago

update to geant4.9.3

File size: 4.6 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26//
27// $Id: G4HCofThisEvent.hh,v 1.3 2006/06/29 17:35:30 gunter Exp $
28// GEANT4 tag $Name: geant4-09-03-cand-01 $
29//
30
31#ifndef G4HCofThisEvent_h
32#define G4HCofThisEvent_h 1
33
34#include "globals.hh"
35#include "G4Allocator.hh"
36#include "G4VHitsCollection.hh"
37#include <vector>
38
39// class description:
40//
41//  This is a class which stores hits collections generated at one event.
42// This class is exclusively constructed by G4SDManager when the first
43// hits collection of an event is passed to the manager, and this class
44// object is deleted by G4RunManager when a G4Event class object is deleted.
45//  Almost all public methods must be used by Geant4 kernel classes and
46// the user should not invoke them. The user can use two const methods,
47// GetHC() and GetNumberOfCollections() for accessing to the stored hits
48// collection(s).
49
50
51//vietha 2003/04/26 , include files needed to copy to the beginning of MarshaledG4HCofThisEvent.h
52// in order to compile
53//MSH_include_begin
54#include "G4SDManager.hh"
55#include "G4THitsCollection.hh"
56#include "ExN04TrackerHit.hh"
57#include "MarshaledExN04TrackerHit.h"
58#include "MarshaledG4THitsCollection.h"
59#include "MarshaledG4VHitsCollection.h"
60//MSH_include_end
61//MSH_BEGIN
62class G4HCofThisEvent 
63{
64  public:
65      G4HCofThisEvent();
66      G4HCofThisEvent(G4int cap);
67      ~G4HCofThisEvent();
68      inline void *operator new(size_t);
69      inline void operator delete(void* anHCoTE);
70
71      void AddHitsCollection(G4int HCID,G4VHitsCollection * aHC);
72
73  private:
74      std::vector<G4VHitsCollection*> * HC; /*MSH: ptr_as_array
75  [elementType: G4VHitsCollection*]
76  [elementCount: { $ELE_COUNT = $THIS->GetNumberOfCollections(); }]
77  [elementGet: { $ELEMENT = $THIS->GetHC($ELE_INDEX); }]
78  [elementSet: { $THIS->AddHitsCollection($ELE_INDEX, $ELEMENT); }]  */
79
80  public: // with description
81      inline G4VHitsCollection* GetHC(G4int i)
82      { return (*HC)[i]; }
83      //  Returns a pointer to a hits collection. Null will be returned
84      // if the particular collection is not stored at the current event.
85      // The integer argument is ID number which is assigned by G4SDManager
86      // and the number can be obtained by G4SDManager::GetHitsCollectionID()
87      // method.
88      inline G4int GetNumberOfCollections()
89      {
90        G4int n = 0;
91        for(size_t i=0;i<HC->size();i++)
92        {
93          if((*HC)[i]) n++;
94        }
95        return n;
96      }
97      //  Returns the number of hits collections which are stored in this class
98      // object.
99  public:
100      inline G4int GetCapacity()
101      {
102        return HC->size();
103      }
104};
105//MSH_END
106
107#if defined G4DIGI_ALLOC_EXPORT
108  extern G4DLLEXPORT G4Allocator<G4HCofThisEvent> anHCoTHAllocator;
109#else
110  extern G4DLLIMPORT G4Allocator<G4HCofThisEvent> anHCoTHAllocator;
111#endif
112
113inline void* G4HCofThisEvent::operator new(size_t)
114{
115  void* anHCoTH;
116  anHCoTH = (void*)anHCoTHAllocator.MallocSingle();
117  return anHCoTH;
118}
119
120inline void G4HCofThisEvent::operator delete(void* anHCoTH)
121{
122  anHCoTHAllocator.FreeSingle((G4HCofThisEvent*)anHCoTH);
123}
124
125
126#endif
127
Note: See TracBrowser for help on using the repository browser.