CMS 3D CMS Logo

EcalTBH4Trigger Class Reference

Description: Simulates ECALTBH4 trigger an throw exception in case of non triggering event. More...

#include <SimG4Core/HelpfulWatchers/interface/EcalTBH4Trigger.h>

Inheritance diagram for EcalTBH4Trigger:

SimWatcher

List of all members.

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_


Detailed Description

Description: Simulates ECALTBH4 trigger an throw exception in case of non triggering event.

Usage: <usage>

Definition at line 46 of file EcalTBH4Trigger.h.


Constructor & Destructor Documentation

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   }


Member Function Documentation

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     } 


Member Data Documentation

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().


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:19:57 2009 for CMSSW by  doxygen 1.5.4