Makoto Asai (SLAC) Geant4 Users CERN Nov. 12 th, 2002 Detector Sensitivity.

Slides:



Advertisements
Similar presentations
IEEE Nuclear Science Symposium and Medical Imaging Conference Short Course The Geant4 Simulation Toolkit Sunanda Banerjee (Saha Inst. Nucl. Phys., Kolkata,
Advertisements

Geant4 v9.2p02 Kernel III Makoto Asai (SLAC) Geant4 Tutorial Course.
Geant4 v9.2p02 Scoring II Makoto Asai (SLAC) Geant4 Tutorial Course.
Primary particle generation Makoto Asai (SLAC) Geant4 Users CERN Nov. 12 th, 2002.
Scoring I Makoto Asai (SLAC) Geant4 Tutorial Course Geant4 v8.2p01.
Geant4 v9.4 Geometry II Makoto Asai (SLAC) Geant4 Tutorial Course.
2006/11/10 Pasadena GEANT4-SPENVIS, Tsukasa Aso, TNCMT 1 Scorer and Sensitive Detector Filter Tsukasa Aso Toyama National College of Maritime Technology,
Makoto Asai (SLAC) Geant4 Users SLAC Feb. 18 th, 2002 Getting Started.
Makoto Asai (SLAC) Geant4 Users SLAC Feb. 20th, 2002 Stack management, Digitization and Pile-up.
Primary particle generation Makoto Asai (SLAC) Geant4 Users SLAC Feb. 18 th, 2002.
Geometry I Makoto Asai (SLAC) Geant4 Tutorial Course Geant4 v8.2p01.
Makoto Asai (SLAC) Geant4 Users CERN Nov. 15 th, 2002 Customizing Run Management.
Makoto Asai (SLAC) Geant4 Users SLAC Feb. 18 th, 2002 Detector Sensitivity.
Makoto Asai (SLAC) Geant4 Users CERN Nov. 11 th, 2002 Getting Started.
Nested Parameterization
Makoto Asai (SLAC) Geant4 Users SLAC Feb. 18 th, 2002 Getting Started.
Scoring II Makoto Asai (SLAC) Geant4 Tutorial Course Geant4 v8.2p01.
Geant4 v9.4 Geometry II Makoto Asai (SLAC) Geant4 Tutorial Course.
Makoto Asai (SLAC) Geant4 Users SLAC Feb. 20th, 2002 Stack management, Digitization and Pile-up.
S. Guatelli, M.G Pia, INFN Genova S. Guatelli ( CERN, INFN Genova ) CERN, 13 November 2002 Users Workshop Where to put analysis in Geant4 Applications.
Geant4 v9.3 Scoring II Makoto Asai (SLAC) Geant4 Tutorial Course.
Makoto Asai (SLAC) Geant4 Users CERN Nov. 13th, 2002 Stack management, Digitization and Pile-up.
Some tips for geometries of medical applications Makoto Asai (SLAC)
Geometry 5 I.Hrivnacova¹, J.Apostolakis² ¹IPN, Orsay; ²CERN Cours Paris June 2007.
parameterisation The aim of the exercise is again to build a lead-scintillator calorimeter, this time though the calorimeter will be a trapezoid.
ALICE Offline week, CERN 21 February 2005 I. Hrivnacova 1 New geometry framework in MUON I.Hrivnacova IPN, Orsay ALICE Offline week, CERN 21 February 2005.
Other GEANT4 capabilities Event biasing Parameterisation (fast simulation) Scoring Persistency Parallelisation and integration in a distributed computing.
Geant4 v9.3p01 Kernel III Makoto Asai (SLAC) Geant4 Tutorial Course.
17-19 Oct, 2007Geant4 Japan Oct, 2007Geant4 Japan Oct, 2007Geant4 Japan 2007 Geant4 Collaboration.
Maria Grazia Pia Detector Response Acknowledgements: A. Lechner, J. Apostolakis, M. Asai, G. Cosmo, A. Howard.
Geant4 internal Classes and Objects Gunter Folger / CERN Geant4 course, Annecy 2008 User Action & Information Classes.
山下智弘 JST CREST/ 神戸大学 Borrowing especially from presentations of M. Asai(SLAC) Geant4 Japan Oct, RCNS, based on Geant4 9.0.p01.
17-19 Oct, 2007Geant4 Japan Oct, 2007Geant4 Japan Oct, 2007Geant4 Japan 2007 Geant4 Collaboration.
Geant4 internal Classes and Objects Geant4 Users’ Tutorial February 2010 Gunter Folger / CERN User Action & Information Classes.
Geant zemi 2007/1/11. Sensitive detector In a simulation, we want to know –Position and time of the particle at the detector –Momentum and energy of the.
The GeoModel Toolkit for Detector Description Joe Boudreau Vakho Tsulaia University of Pittsburgh CHEP’04 Interlaken.
Maria Grazia Pia INFN Genova Salamanca, July 2002
Basics of Primary Particle Generation and Tracking Makoto Asai (SLAC) Geant4 Tutorial CERN May 25-27, 2005 May 2005, Geant4 v7.0p01.
Run and Event G4Run and G4RunManager In Geant4, the Run is the largest unit of simulation and it consist of a series of events Within a Run, the detector.
A Thread-Parallel Geant4 with Shared Geometry Gene Cooperman and Xin Dong College of Computer and Information Science Northeastern University 360 Huntington.
Architecture team and Inter-category design/interface Makoto Asai (SLAC) 10/Oct/2002 Geant4 delta-review.
IEEE Nuclear Science Symposium and Medical Imaging Conference Short Course The Geant4 Simulation Toolkit Sunanda Banerjee (Saha Inst. Nucl. Phys., Kolkata,
Makoto Asai (SLAC) Getting Started MGP: added class diagram of basic user application.
Geant4 internal Classes and Objects Gunter Folger / CERN MC-PAD, DESY/Hamburg January 2010 User Action & Information Classes.
Read-out and detector response
Physics II : processes Paris Geant4 Tutorial 5 June 2007 Marc Verderi Ecole Polytechnique - LLR.
Geometry 3 I.Hrivnacova IPN, Orsay Most slides thanks to M. Asai, SLAC Cours Paris June 2007.
Makoto Asai.  Parallel layered mass geometry  Other minor improvement  G4Exception.
Maria Grazia Pia Retrieving information from kernel Acknowledgements: A. Lechner, J. Apostolakis, M. Asai, G. Cosmo, A. Howard.
simpleSpectrometer and some Geant4 insights :s
Interaction with the Geant4 kernel
J. Apostolakis, M. Asai, G. Cosmo, A. Howard
Makoto Asai (SLAC) Geant4 Tutorial Course
Interaction with the Geant4 kernel
Geant4:User Actions and Analysis
Makoto Asai (SLAC) Geant4 Tutorial Course
Geant4 introduction 2008/03/18 Nobu Katayama KEK
Makoto Asai (SLAC) Geant4 Users CERN Nov. 11th, 2002
Read-out and detector response
Makoto Asai (SLAC) Geant4 Tutorial Course
Detector sensitivity Makoto Asai (SLAC Computing Services)
Makoto Asai (SLAC) Geant4 Tutorial Course
Read-out and detector response
Makoto Asai (SLAC) Geant4 Tutorial Course
Makoto Asai (SLAC) Geant4 Tutorial Course
Reference Counted Touchables Design
Customizing Run Management
Kernel Author: Makoto Asai.
Makoto Asai (SLAC) Geant4 Users CERN Nov. 13th, 2002
Geant4: Detector description module
Presentation transcript:

Makoto Asai (SLAC) Geant4 Users CERN Nov. 12 th, 2002 Detector Sensitivity

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 2 Contents Sensitive detector and hit Digitizer module and digit Hit class Sensitive detector class Touchable Readout geometry G4HCofThisEvent class and its use

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 3 Sensitive detector and Hit Each “ Logical Volume ” can have a pointer to a sensitive detector. Hit is a snapshot of the physical interaction of a track or an accumulation of interactions of tracks in the sensitive region of your detector. A sensitive detector creates hit(s) using the information given in G4Step object. The user has to provide his/her own implementation of the detector response. UserSteppingAction class should NOT do this. Hit objects, which are still the user ’ s class objects, are collected in a G4Event object at the end of an event.

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 4 Detector sensitivity A sensitive detector either constructs one or more hit objects or accumulates values to existing hits using information given in a G4Step object. Note that you must get the volume information from the “ PreStepPoint ”. Begin of step point End of step point Step Boundary

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 5 Digitizer module and digit Digit represents a detector output (e.g. ADC/TDC count, trigger signal, etc.). Digit is created with one or more hits and/or other digits by a concrete implementation derived from G4VDigitizerModule. In contradiction to the Hit which is generated at tracking time automatically, the digitize() method of each G4VDigitizerModule must be explicitly invoked by the user ’ s code (e.g. at EventAction).

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 6 Hit class Hit is a user-defined class derived from G4VHit. You can store various types information by implementing your own concrete Hit class. For example: Position and time of the step Momentum and energy of the track Energy deposition of the step Geometrical information or any combination of above

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 7 Hit class Hit objects of a concrete hit class must be stored in a dedicated collection which is instantiated from G4THitsCollection template class. The collection will be associated to a G4Event object via G4HCofThisEvent. Hits collections are accessible through G4Event at the end of event. Can be used for analyzing an event through G4SDManager during processing an event. Can be used for event filtering.

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 8 Implementation of Hit class #include "G4VHit.hh" #include "G4ThreeVector.hh" class T01DriftChamberHit : public G4VHit { public: T01DriftChamberHit(); T01DriftChamberHit(G4int z); virtual ~T01DriftChamberHit(); T01DriftChamberHit(const T01DriftChamberHit &right); const T01DriftChamberHit& operator=(const T01DriftChamberHit &right); int operator==(const T01DriftChamberHit &right) const; inline void *operator new(size_t); inline void operator delete(void *aHit); virtual void Draw(); virtual void Print();

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 9 Implementation of Hit class private: G4int layerID; G4double time; G4ThreeVector localPos; G4ThreeVector worldPos; public: // some set/get methods }; #include “G4THitsCollection.hh” typedef G4THitsCollection T01DriftChamberHitsCollection;

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 10 Implementation of Hit class #include “G4Allocator.hh” extern G4Allocator T01DriftChamberHitAllocator; inline void* T01DriftChamberHit::operator new(size_t) { void* aHit; aHit = (void*)T01DriftChamberHitAllocator.MallocSingle(); return aHit; } inline void T01DriftChamberHit::operator delete(void* aHit) { T01DriftChamberHitAllocator.FreeSingle((T01DriftChamberH it*) aHit); }

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 11 Sensitive Detector class Sensitive detector is a user-defined class derived from G4VSensitiveDetector. #include "G4VSensitiveDetector.hh" #include "T01DriftChamberHit.hh" class G4Step; class G4HCofThisEvent; class T01DriftChamber : public G4VSensitiveDetector { public: T01DriftChamber(G4String name); virtual ~T01DriftChamber(); virtual void Initialize(G4HCofThisEvent*HCE); virtual G4bool ProcessHits(G4Step*aStep, G4TouchableHistory*ROhist); virtual void EndOfEvent(G4HCofThisEvent*HCE); private: T01DriftChamberHitsCollection * hitsCollection; G4int HCID; };

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 12 Implementation of Sensitive Detector T01DriftChamber::T01DriftChamber(G4String name) :G4VSensitiveDetector(name) { G4String HCname; collectionName.insert(HCname="driftChamberColl"); HCID = -1; } void T01DriftChamber::Initialize(G4HCofThisEvent*HCE) { hitsCollection = new T01DriftChamberHitsCollection (SensitiveDetectorName,collectionName[0]); if(HCID<0) { HCID = G4SDManager::GetSDMpointer() ->GetCollectionID(hitsCollection); } HCE->AddHitsCollection(HCID,hitsCollection); }

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 13 Implementation of Sensitive Detector G4bool T01DriftChamber::ProcessHits (G4Step*aStep,G4TouchableHistory*ROhist) { T01DriftChamberHit* aHit = new T01DriftChamberHit(); // some set methods hitsCollection->insert(aHit); return true; } void T01DriftChamber::EndOfEvent(G4HCofThisEvent*HCE) {;}

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 14 Touchable As mentioned already, G4Step has two G4StepPoint objects as its starting and ending points. All the geometrical information of the particular step should be got from “ PreStepPoint ”. Geometrical information associated with G4Track is basically same as “ PostStepPoint ”. Each G4StepPoint object has Position in world coordinate system Global and local time Material G4TouchableHistory for geometrical information

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 15 Touchable G4TouchableHistory has information of geometrical hierarchy of the point. G4Step* aStep; G4StepPoint* preStepPoint = aStep->GetPreStepPoint(); G4TouchableHistory* theTouchable = (G4TouchableHistory*)(preStepPoint->GetTouchable()); G4int copyNo = theTouchable->GetVolume()->GetCopyNo(); G4int motherCopyNo = theTouchable->GetVolume(1)->GetCopyNo(); G4ThreeVector worldPos = preStepPoint->GetPosition(); G4ThreeVector localPos = theTouchable->GetHistory()-> GetTopTransform().TransformPoint(worldPos);

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 16 Readout geometry Readout geometry is a virtual and artificial geometry which can be defined in parallel to the real detector geometry. Readout geometry is optional. May have more than one. Each one should be associated to a sensitive detector.

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 17 Defining a sensitive detector Basic strategy G4LogicalVolume* myLogCalor = ……; G4VSensetiveDetector* pSensetivePart = new MyCalorimeterSD(“/mydet/calorimeter”); G4SDManager* SDMan = G4SDManager::GetSDMpointer(); SDMan->AddNewDetector(pSensitivePart); myLogCalor->SetSensitiveDetector(pSensetivePart) ; Each detector object must have a unique name. Some logical volumes can share one detector object More than one detector objects can be made from one detector class with different detector name. One logical volume cannot have more than one detector objects. But, one detector object can generate more than one kinds of hits.

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 18 G4HCofThisEvent A G4Event object has a G4HCofThisEvent object at the end of (successful) event processing. G4HCofThisEvent object stores all hits collections made within the event. Pointer(s) may be NULL if collection(s) are not created in the particular event. Hits collections are stored by pointers of G4VHitsCollection base class. Thus, you have to cast them to types of individual concrete classes.

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 19 Useage of G4HCofThisEvent G4SDManager* SDman = G4SDManager::GetSDMpointer(); DHC1ID = Sdman ->GetCollectionID(colName="chamber1/driftChamberColl"); DHC2ID = Sdman ->GetCollectionID(colName="chamber2/driftChamberColl"); G4HCofThisEvent * HCE = evt->GetHCofThisEvent(); T01DriftChamberHitsCollection* DHC1 = 0; T01DriftChamberHitsCollection* DHC2 = 0; if(HCE) { DHC1 = (T01DriftChamberHitsCollection*)(HCE- >GetHC(DHC1ID)); DHC2 = (T01DriftChamberHitsCollection*)(HCE- >GetHC(DHC2ID)); }

Detector Sensitivity - M.Asai (SLAC) - Geant4 Users CERN (Nov/12/2002) 20 Useage of G4HCofThisEvent if(DHC1) { int n_hit = DHC1->entries(); G4cout << "Drift Chamber 1 has ” << n_hit << " hits." << G4endl; for(int i1=0;i1<n_hit;i1++) { T01DriftChamberHit* aHit = (*DHC1)[i1]; aHit->Print(); } This scheme can also be utilized for Digitization.