#include <SimG4Core/HelpfulWatchers/interface/EcalTBH4Trigger.h>
Public Member Functions | |
EcalTBH4Trigger (const edm::ParameterSet &pSet) | |
void | update (const EndOfEvent *anEvent) |
void | update (const G4Step *iStep) |
void | update (const BeginOfEvent *anEvent) |
Private Attributes | |
bool | m_passedTrg1 |
bool | m_passedTrg3 |
bool | m_passedTrg4 |
bool | m_passedTrg5 |
bool | m_passedTrg6 |
bool | m_verbose |
int | nTriggeredEvents_ |
int | trigEvents_ |
Description: Simulates ECALTBH4 trigger an throw exception in case of non triggering event
Usage: <usage>
Definition at line 46 of file EcalTBH4Trigger.h.
EcalTBH4Trigger::EcalTBH4Trigger | ( | const edm::ParameterSet & | pSet | ) | [inline] |
Definition at line 60 of file EcalTBH4Trigger.h.
: m_verbose(pSet.getUntrackedParameter<bool>("verbose",false)), nTriggeredEvents_(0), trigEvents_(pSet.getUntrackedParameter<int>("trigEvents",-1)) { }
void EcalTBH4Trigger::update | ( | const BeginOfEvent * | anEvent | ) | [inline] |
Definition at line 74 of file EcalTBH4Trigger.h.
References m_passedTrg1, m_passedTrg3, m_passedTrg4, m_passedTrg5, and m_passedTrg6.
{ // std::cout <<"++ signal BeginOfEvent " ; // m_enteringTBH4BeamLine=false; // m_exitingTBH4BeamLine=false; // m_passedTrigger=false; m_passedTrg1=false; m_passedTrg3=false; m_passedTrg4=false; m_passedTrg5=false; m_passedTrg6=false; }
void EcalTBH4Trigger::update | ( | const EndOfEvent * | anEvent | ) | [inline] |
Definition at line 150 of file EcalTBH4Trigger.h.
References nTriggeredEvents_.
{ // std::cout <<"++ signal BeginOfEvent " ; // m_enteringTBH4BeamLine=false; // m_exitingTBH4BeamLine=false; // m_passedTrigger=false; nTriggeredEvents_++; }
void EcalTBH4Trigger::update | ( | const G4Step * | iStep | ) | [inline] |
Definition at line 88 of file EcalTBH4Trigger.h.
References gather_cfg::cout, m_passedTrg1, m_passedTrg3, m_passedTrg4, m_passedTrg5, m_passedTrg6, m_verbose, nTriggeredEvents_, pos, and trigEvents_.
{ if (trigEvents_ >= 0 && nTriggeredEvents_ >= trigEvents_) throw SimG4Exception("Number of needed trigger events reached in ECALTBH4"); const G4StepPoint* pre = iStep->GetPreStepPoint(); const G4StepPoint* post = iStep->GetPostStepPoint(); if(m_verbose) { std::cout <<"++ signal G4Step" ; const G4VTouchable* touch = iStep->GetPreStepPoint()->GetTouchable(); //Get name and copy numbers if (touch->GetHistoryDepth() > 0) { for (int ii = 0; ii <= touch->GetHistoryDepth() ; ii++) { std::cout << "EcalTBH4::Level " << ii << ": " << touch->GetVolume(ii)->GetName() << "[" << touch->GetReplicaNumber(ii) << "]"; } } std::cout <<std::endl; const G4Track* theTrack = iStep->GetTrack(); const G4ThreeVector pos = post->GetPosition(); std::cout << "( "<<pos.x()<<","<<pos.y()<<","<<pos.z()<<") "; std::cout << " released energy (MeV) " << iStep->GetTotalEnergyDeposit()/MeV ; if (theTrack) { const G4ThreeVector mom = theTrack->GetMomentum(); std::cout << " track length (cm) " << theTrack->GetTrackLength()/cm << " particle type " << theTrack->GetDefinition()->GetParticleName() << " momentum " << "( "<<mom.x()<<","<<mom.y()<<","<<mom.z()<<") "; if (theTrack->GetCreatorProcess()) std::cout << " created by " << theTrack->GetCreatorProcess()->GetProcessName(); } if(post->GetPhysicalVolume()) { std::cout << " " << pre->GetPhysicalVolume()->GetName() << "->" << post->GetPhysicalVolume()->GetName(); } std::cout <<std::endl; } if (post && post->GetPhysicalVolume()) { if (!m_passedTrg1 && post->GetPhysicalVolume()->GetName() == "TRG1") m_passedTrg1 = true; if (!m_passedTrg3 && post->GetPhysicalVolume()->GetName() == "TRG3") m_passedTrg3 = true; if (!m_passedTrg4 && post->GetPhysicalVolume()->GetName() == "TRG4") m_passedTrg4 = true; if (!m_passedTrg5 && post->GetPhysicalVolume()->GetName() == "TRG5") m_passedTrg5 = true; if (!m_passedTrg6 && post->GetPhysicalVolume()->GetName() == "TRG6") m_passedTrg6 = true; if (post->GetPhysicalVolume()->GetName() == "CMSSE") //Exiting TBH4BeamLine if (! (m_passedTrg1 && m_passedTrg6) ) // Trigger defined as Trg4 && Trg6 throw SimG4Exception("Event is not triggered by ECALTBH4"); } /* if (!m_enteringTBH4BeamLine && ( post->GetPhysicalVolume()->GetName() == */ }
bool EcalTBH4Trigger::m_passedTrg1 [private] |
Definition at line 169 of file EcalTBH4Trigger.h.
Referenced by update().
bool EcalTBH4Trigger::m_passedTrg3 [private] |
Definition at line 170 of file EcalTBH4Trigger.h.
Referenced by update().
bool EcalTBH4Trigger::m_passedTrg4 [private] |
Definition at line 171 of file EcalTBH4Trigger.h.
Referenced by update().
bool EcalTBH4Trigger::m_passedTrg5 [private] |
Definition at line 172 of file EcalTBH4Trigger.h.
Referenced by update().
bool EcalTBH4Trigger::m_passedTrg6 [private] |
Definition at line 173 of file EcalTBH4Trigger.h.
Referenced by update().
bool EcalTBH4Trigger::m_verbose [private] |
Definition at line 166 of file EcalTBH4Trigger.h.
Referenced by update().
int EcalTBH4Trigger::nTriggeredEvents_ [private] |
Definition at line 174 of file EcalTBH4Trigger.h.
Referenced by update().
int EcalTBH4Trigger::trigEvents_ [private] |
Definition at line 175 of file EcalTBH4Trigger.h.
Referenced by update().