#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_ |
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.
00060 : 00061 m_verbose(pSet.getUntrackedParameter<bool>("verbose",false)), nTriggeredEvents_(0), trigEvents_(pSet.getUntrackedParameter<int>("trigEvents",-1)) { 00062 }
void EcalTBH4Trigger::update | ( | const EndOfEvent * | anEvent | ) | [inline] |
Definition at line 150 of file EcalTBH4Trigger.h.
References nTriggeredEvents_.
00151 { 00152 // std::cout <<"++ signal BeginOfEvent " ; 00153 // m_enteringTBH4BeamLine=false; 00154 // m_exitingTBH4BeamLine=false; 00155 // m_passedTrigger=false; 00156 nTriggeredEvents_++; 00157 }
void EcalTBH4Trigger::update | ( | const G4Step * | iStep | ) | [inline] |
Definition at line 88 of file EcalTBH4Trigger.h.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), m_passedTrg1, m_passedTrg3, m_passedTrg4, m_passedTrg5, m_passedTrg6, m_verbose, nTriggeredEvents_, and trigEvents_.
00089 { 00090 if (trigEvents_ >= 0 && nTriggeredEvents_ >= trigEvents_) 00091 throw SimG4Exception("Number of needed trigger events reached in ECALTBH4"); 00092 00093 const G4StepPoint* pre = iStep->GetPreStepPoint(); 00094 const G4StepPoint* post = iStep->GetPostStepPoint(); 00095 if(m_verbose) { 00096 std::cout <<"++ signal G4Step" ; 00097 const G4VTouchable* touch = iStep->GetPreStepPoint()->GetTouchable(); 00098 //Get name and copy numbers 00099 if (touch->GetHistoryDepth() > 0) { 00100 for (int ii = 0; ii <= touch->GetHistoryDepth() ; ii++) { 00101 std::cout << "EcalTBH4::Level " << ii 00102 << ": " << touch->GetVolume(ii)->GetName() << "[" 00103 << touch->GetReplicaNumber(ii) << "]"; 00104 } 00105 } 00106 std::cout <<std::endl; 00107 const G4Track* theTrack = iStep->GetTrack(); 00108 const G4ThreeVector pos = post->GetPosition(); 00109 std::cout << "( "<<pos.x()<<","<<pos.y()<<","<<pos.z()<<") "; 00110 std::cout << " released energy (MeV) " << iStep->GetTotalEnergyDeposit()/MeV ; 00111 if (theTrack) 00112 { 00113 const G4ThreeVector mom = theTrack->GetMomentum(); 00114 std::cout << " track length (cm) " << theTrack->GetTrackLength()/cm 00115 << " particle type " << theTrack->GetDefinition()->GetParticleName() 00116 << " momentum " << "( "<<mom.x()<<","<<mom.y()<<","<<mom.z()<<") "; 00117 if (theTrack->GetCreatorProcess()) 00118 std::cout << " created by " << theTrack->GetCreatorProcess()->GetProcessName(); 00119 } 00120 if(post->GetPhysicalVolume()) { 00121 std::cout << " " << pre->GetPhysicalVolume()->GetName() << "->" << post->GetPhysicalVolume()->GetName(); 00122 } 00123 std::cout <<std::endl; 00124 } 00125 00126 if (post && post->GetPhysicalVolume()) 00127 { 00128 00129 if (!m_passedTrg1 && post->GetPhysicalVolume()->GetName() == "TRG1") 00130 m_passedTrg1 = true; 00131 if (!m_passedTrg3 && post->GetPhysicalVolume()->GetName() == "TRG3") 00132 m_passedTrg3 = true; 00133 if (!m_passedTrg4 && post->GetPhysicalVolume()->GetName() == "TRG4") 00134 m_passedTrg4 = true; 00135 if (!m_passedTrg5 && post->GetPhysicalVolume()->GetName() == "TRG5") 00136 m_passedTrg5 = true; 00137 if (!m_passedTrg6 && post->GetPhysicalVolume()->GetName() == "TRG6") 00138 m_passedTrg6 = true; 00139 if (post->GetPhysicalVolume()->GetName() == "CMSSE") //Exiting TBH4BeamLine 00140 if (! (m_passedTrg1 && m_passedTrg6) ) // Trigger defined as Trg4 && Trg6 00141 throw SimG4Exception("Event is not triggered by ECALTBH4"); 00142 } 00143 00144 /* if (!m_enteringTBH4BeamLine && ( post->GetPhysicalVolume()->GetName() == */ 00145 00146 }
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.
00075 { 00076 // std::cout <<"++ signal BeginOfEvent " ; 00077 // m_enteringTBH4BeamLine=false; 00078 // m_exitingTBH4BeamLine=false; 00079 // m_passedTrigger=false; 00080 m_passedTrg1=false; 00081 m_passedTrg3=false; 00082 m_passedTrg4=false; 00083 m_passedTrg5=false; 00084 m_passedTrg6=false; 00085 }
bool EcalTBH4Trigger::m_passedTrg1 [private] |
bool EcalTBH4Trigger::m_passedTrg3 [private] |
bool EcalTBH4Trigger::m_passedTrg4 [private] |
bool EcalTBH4Trigger::m_passedTrg5 [private] |
bool EcalTBH4Trigger::m_passedTrg6 [private] |
bool EcalTBH4Trigger::m_verbose [private] |
int EcalTBH4Trigger::nTriggeredEvents_ [private] |
int EcalTBH4Trigger::trigEvents_ [private] |