ATLAS Offline Software
Loading...
Searching...
No Matches
Analysis_Tier0 Class Reference

#include <Analysis_Tier0.h>

Inheritance diagram for Analysis_Tier0:
Collaboration diagram for Analysis_Tier0:

Public Member Functions

 Analysis_Tier0 (const std::string &name, double pTCut, double etaCut, double d0Cut, double z0Cut)
virtual void initialise ()
 standard operation interface
virtual void execute (const std::vector< TIDA::Track * > &referenceTracks, const std::vector< TIDA::Track * > &testTracks, TrackAssociator *associator)
virtual void execute_vtx (const std::vector< TIDA::Vertex * > &vtx0, const std::vector< TIDA::Vertex * > &vtx1, const TIDA::Event *tevt=0)
virtual void finalise ()
void setvertices (int numvtx)
std::map< std::string, TH1 * >::const_iterator THbegin () const
std::map< std::string, TH1 * >::const_iterator THend () const
std::map< std::string, TProfile * >::const_iterator TEffbegin () const
std::map< std::string, TProfile * >::const_iterator TEffend () const
void set_monTool (ToolHandle< GenericMonitoringTool > *m)
ToolHandle< GenericMonitoringTool > * monTool ()
bool debug () const
void addHistogram (TH1 *h)
void addHistogram (TProfile *h)
double phi (double p)
virtual void execute (const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher, TrigObjectMatcher *)
virtual void execute (const std::vector< TIDA::Track * > &, const std::vector< TIDA::Track * > &, TrackAssociator *, const TIDA::Event *)
virtual void execute (const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher, const TIDA::Event *event, double *)
virtual void execute (const std::vector< TIDA::Track * > &, const std::vector< TIDA::Track * > &, TrackAssociator *, const TIDA::Event *, double *, TIDARoiDescriptor *)
const std::string & name () const
 return identifier
const std::map< std::string, TH1 * > & getHistograms () const
 access the histograms
std::map< std::string, TH1 * >::const_iterator begin () const
std::map< std::string, TH1 * >::const_iterator end () const
void setBeamRef (double x, double y, double z=0)
 set the beamline positions
void setBeamRef (const std::vector< double > &v)
void setBeamTest (double x, double y, double z=0)
void setBeamTest (const std::vector< double > &v)
double beamRefx () const
double beamRefy () const
double beamRefz () const
double beamTestx () const
double beamTesty () const
double beamTestz () const
TIDA::FeatureStorestore ()
const TIDA::Eventevent () const
void setevent (TIDA::Event *e)
const TIDARoiDescriptorroi () const
void setroi (TIDARoiDescriptor *r)

Protected Attributes

std::string m_name
 identifier of the of the analysis - also used for the root directory into which the histograms are put
double m_xBeamReference
 beamline positions reference sample
double m_yBeamReference
double m_zBeamReference
double m_xBeamTest
 test sample
double m_yBeamTest
double m_zBeamTest
TIDA::FeatureStore m_store
TIDA::Eventm_event
TIDARoiDescriptorm_roi

Private Attributes

std::map< std::string, TH1 * > m_histos
std::map< std::string, TProfile * > m_effhistos
TProfile * m_h_total_efficiency
TProfile * m_h_pTeff
TProfile * m_h_etaeff
TProfile * m_h_phieff
TProfile * m_h_d0eff
TProfile * m_h_z0eff
TProfile * m_h_nVtxeff
TProfile * m_h_lbeff
TProfile * m_h_pTres
TProfile * m_h_ipTres
TProfile * m_h_etares
TProfile * m_h_phires
TProfile * m_h_d0res
TProfile * m_h_z0res
TProfile * m_h_trkvtx_x_lb
TProfile * m_h_trkvtx_y_lb
TProfile * m_h_trkvtx_z_lb
TProfile * m_h_npixvseta
TProfile * m_h_npixvsphi
TProfile * m_h_npixvsd0
TProfile * m_h_npixvspT
TProfile * m_h_nsctvseta
TProfile * m_h_nsctvsphi
TProfile * m_h_nsctvsd0
TProfile * m_h_nsctvspT
TProfile * m_h_ntrtvseta
TProfile * m_h_ntrtvsphi
TProfile * m_h_nsihits_lb
TProfile * m_h_npixvseta_rec
TProfile * m_h_npixvsphi_rec
TProfile * m_h_npixvsd0_rec
TProfile * m_h_npixvspT_rec
TProfile * m_h_nsctvseta_rec
TProfile * m_h_nsctvsphi_rec
TProfile * m_h_nsctvsd0_rec
TProfile * m_h_nsctvspT_rec
TProfile * m_h_ntrtvseta_rec
TProfile * m_h_ntrtvsphi_rec
TProfile * m_h_nsihits_lb_rec
TProfile * m_h_d0vsphi
TProfile * m_h_d0vsphi_rec
TH1F * m_h_chain
TH1F * m_h_ntrk
TH1F * m_h_trkpT
TH1F * m_h_trketa
TH1F * m_h_trkphi
TH1F * m_h_trkd0
TH1F * m_h_trkz0
TH1F * m_h_trkdd0
TH1F * m_h_trkdz0
TH1F * m_h_trkd0sig
TH1F * m_h_npix
TH1F * m_h_nsct
TH1F * m_h_nsihits
TH1F * m_h_ntrt
TH1F * m_h_ntrk_rec
TH1F * m_h_layer
TH1F * m_h_trkpT_rec
TH1F * m_h_trketa_rec
TH1F * m_h_trkphi_rec
TH1F * m_h_trkd0_rec
TH1F * m_h_trkz0_rec
TH1F * m_h_trkdd0_rec
TH1F * m_h_trkdz0_rec
TH1F * m_h_trkd0sig_rec
TH1F * m_h_npix_rec
TH1F * m_h_nsct_rec
TH1F * m_h_nsihits_rec
TH1F * m_h_ntrt_rec
TH1F * m_h_layer_rec
TH1F * m_h_trkpT_residual
TH1F * m_h_trkipT_residual
TH1F * m_h_trketa_residual
TH1F * m_h_trkphi_residual
TH1F * m_h_trkd0_residual
TH1F * m_h_trkz0_residual
TH1F * m_h_trkdd0_residual
TH1F * m_h_trkdz0_residual
int m_nVtx
bool m_debug
unsigned long long m_eventid
VtxAnalysism_vtxanal
ToolHandle< GenericMonitoringTool > * m_monTool

Detailed Description

Definition at line 30 of file Analysis_Tier0.h.

Constructor & Destructor Documentation

◆ Analysis_Tier0()

Analysis_Tier0::Analysis_Tier0 ( const std::string & name,
double pTCut,
double etaCut,
double d0Cut,
double z0Cut )

Definition at line 18 of file Analysis_Tier0.cxx.

24 // m_pTCut(pTCut), /// left in commented for development purposes
25 // m_etaCut(etaCut),
26 // m_d0Cut(d0Cut),
27 // m_z0Cut(z0Cut),
28 m_h_total_efficiency{nullptr},
29 m_h_pTeff{nullptr},
30 m_h_etaeff{nullptr},
31 m_h_phieff{nullptr},
32 m_h_d0eff{nullptr},
33 m_h_z0eff{nullptr},
34 m_h_nVtxeff{nullptr},
35 m_h_lbeff{nullptr},
36 m_h_pTres{nullptr},
37 m_h_ipTres{nullptr},
38 m_h_etares{nullptr},
39 m_h_phires{nullptr},
40 m_h_d0res{nullptr},
41 m_h_z0res{nullptr},
42 m_h_trkvtx_x_lb{nullptr},
43 m_h_trkvtx_y_lb{nullptr},
44 m_h_trkvtx_z_lb{nullptr},
45 m_h_npixvseta{nullptr},
46 m_h_npixvsphi{nullptr},
47 m_h_npixvsd0{nullptr},
48 m_h_npixvspT{nullptr},
49 m_h_nsctvseta{nullptr},
50 m_h_nsctvsphi{nullptr},
51 m_h_nsctvsd0{nullptr},
52 m_h_nsctvspT{nullptr},
53 m_h_ntrtvseta{nullptr},
54 m_h_ntrtvsphi{nullptr},
55 m_h_nsihits_lb{nullptr},
56 m_h_npixvseta_rec{nullptr},
57 m_h_npixvsphi_rec{nullptr},
58 m_h_npixvsd0_rec{nullptr},
59 m_h_npixvspT_rec{nullptr},
60 m_h_nsctvseta_rec{nullptr},
61 m_h_nsctvsphi_rec{nullptr},
62 m_h_nsctvsd0_rec{nullptr},
63 m_h_nsctvspT_rec{nullptr},
64 m_h_ntrtvseta_rec{nullptr},
65 m_h_ntrtvsphi_rec{nullptr},
66 m_h_nsihits_lb_rec{nullptr},
67 m_h_d0vsphi{nullptr},
68 m_h_d0vsphi_rec{nullptr},
69 m_h_chain{nullptr},
70 m_h_ntrk{nullptr},
71 m_h_trkpT{nullptr},
72 m_h_trketa{nullptr},
73 m_h_trkphi{nullptr},
74 m_h_trkd0{nullptr},
75 m_h_trkz0{nullptr},
76 m_h_trkdd0{nullptr},
77 m_h_trkdz0{nullptr},
78 m_h_trkd0sig{nullptr},
79 m_h_npix{nullptr},
80 m_h_nsct{nullptr},
81 m_h_nsihits{nullptr},
82 m_h_ntrt{nullptr},
83 m_h_ntrk_rec{nullptr},
84 m_h_layer{nullptr},
85 m_h_trkpT_rec{nullptr},
86 m_h_trketa_rec{nullptr},
87 m_h_trkphi_rec{nullptr},
88 m_h_trkd0_rec{nullptr},
89 m_h_trkz0_rec{nullptr},
90 m_h_trkdd0_rec{nullptr},
91 m_h_trkdz0_rec{nullptr},
92 m_h_trkd0sig_rec{nullptr},
93 m_h_npix_rec{nullptr},
94 m_h_nsct_rec{nullptr},
95 m_h_nsihits_rec{nullptr},
96 m_h_ntrt_rec{nullptr},
97 m_h_layer_rec{nullptr},
98 m_h_trkpT_residual{nullptr},
99 m_h_trkipT_residual{nullptr},
100 m_h_trketa_residual{nullptr},
101 m_h_trkphi_residual{nullptr},
102 m_h_trkd0_residual{nullptr},
103 m_h_trkz0_residual{nullptr},
104 m_h_trkdd0_residual{nullptr},
105 m_h_trkdz0_residual{nullptr},
106 m_nVtx(0),
107 m_debug(false),
108 m_eventid(0),
109 m_vtxanal(nullptr),
110 m_monTool(nullptr)
111{}
TProfile * m_h_nsctvseta_rec
TProfile * m_h_npixvsphi
TH1F * m_h_trkpT_residual
TProfile * m_h_npixvspT_rec
ToolHandle< GenericMonitoringTool > * m_monTool
TProfile * m_h_pTres
TProfile * m_h_ntrtvseta
TProfile * m_h_ntrtvseta_rec
TProfile * m_h_trkvtx_y_lb
TProfile * m_h_etaeff
TH1F * m_h_trkipT_residual
TProfile * m_h_d0eff
TProfile * m_h_nsctvsphi
TProfile * m_h_npixvseta_rec
TProfile * m_h_phires
VtxAnalysis * m_vtxanal
TH1F * m_h_trketa_residual
TProfile * m_h_nsctvseta
TProfile * m_h_trkvtx_z_lb
TProfile * m_h_npixvsd0
TProfile * m_h_d0vsphi_rec
TProfile * m_h_npixvspT
unsigned long long m_eventid
TProfile * m_h_npixvsphi_rec
TH1F * m_h_trkdz0_residual
TProfile * m_h_trkvtx_x_lb
TProfile * m_h_nsctvspT_rec
TProfile * m_h_nsihits_lb_rec
TProfile * m_h_ntrtvsphi
TH1F * m_h_trkdd0_residual
TProfile * m_h_lbeff
TProfile * m_h_nVtxeff
TH1F * m_h_trkz0_residual
TProfile * m_h_nsctvsd0
TProfile * m_h_ntrtvsphi_rec
TProfile * m_h_nsihits_lb
TProfile * m_h_nsctvsphi_rec
TProfile * m_h_d0res
TH1F * m_h_trkphi_residual
TProfile * m_h_etares
TProfile * m_h_d0vsphi
TProfile * m_h_pTeff
TProfile * m_h_nsctvsd0_rec
TProfile * m_h_z0res
TProfile * m_h_z0eff
TProfile * m_h_phieff
TProfile * m_h_ipTres
TProfile * m_h_nsctvspT
TH1F * m_h_trkd0_residual
TProfile * m_h_total_efficiency
TProfile * m_h_npixvsd0_rec
TProfile * m_h_npixvseta
const std::string & name() const
return identifier
TrackAnalysis(const std::string &name)
the beam test parts are not really usable in a multithreaded environment

Member Function Documentation

◆ addHistogram() [1/2]

void Analysis_Tier0::addHistogram ( TH1 * h)
inline

Definition at line 70 of file Analysis_Tier0.h.

70 {
71 std::string name = h->GetName();
72 m_histos.insert( std::map<std::string, TH1*>::value_type( name, h) );
73 }
std::map< std::string, TH1 * > m_histos

◆ addHistogram() [2/2]

void Analysis_Tier0::addHistogram ( TProfile * h)
inline

Definition at line 75 of file Analysis_Tier0.h.

75 {
76 std::string name = h->GetName();
77 m_effhistos.insert( std::map<std::string, TProfile*>::value_type( name, h) );
78 }
std::map< std::string, TProfile * > m_effhistos

◆ beamRefx()

double TrackAnalysis::beamRefx ( ) const
inlineinherited

Definition at line 124 of file TrackAnalysis.h.

124{ return m_xBeamReference; }
double m_xBeamReference
beamline positions reference sample

◆ beamRefy()

double TrackAnalysis::beamRefy ( ) const
inlineinherited

Definition at line 125 of file TrackAnalysis.h.

125{ return m_yBeamReference; }
double m_yBeamReference

◆ beamRefz()

double TrackAnalysis::beamRefz ( ) const
inlineinherited

Definition at line 126 of file TrackAnalysis.h.

126{ return m_zBeamReference; }
double m_zBeamReference

◆ beamTestx()

double TrackAnalysis::beamTestx ( ) const
inlineinherited

Definition at line 128 of file TrackAnalysis.h.

128{ return m_xBeamTest; }
double m_xBeamTest
test sample

◆ beamTesty()

double TrackAnalysis::beamTesty ( ) const
inlineinherited

Definition at line 129 of file TrackAnalysis.h.

129{ return m_yBeamTest; }

◆ beamTestz()

double TrackAnalysis::beamTestz ( ) const
inlineinherited

Definition at line 130 of file TrackAnalysis.h.

130{ return m_zBeamTest; }

◆ begin()

std::map< std::string, TH1 * >::const_iterator TrackAnalysis::begin ( ) const
inlineinherited

Definition at line 105 of file TrackAnalysis.h.

105{ return m_histos.begin(); }
std::map< std::string, TH1 * > m_histos
lookup table for the histograms by name - does this need to be in the base class?

◆ debug()

bool Analysis_Tier0::debug ( ) const
inline

Definition at line 66 of file Analysis_Tier0.h.

66{ return m_debug; }

◆ end()

std::map< std::string, TH1 * >::const_iterator TrackAnalysis::end ( ) const
inlineinherited

Definition at line 106 of file TrackAnalysis.h.

106{ return m_histos.end(); }

◆ event()

const TIDA::Event * TrackAnalysis::event ( ) const
inlineinherited

Definition at line 135 of file TrackAnalysis.h.

135{ return m_event; }
TIDA::Event * m_event

◆ execute() [1/5]

virtual void TrackAnalysis::execute ( const std::vector< TIDA::Track * > & ,
const std::vector< TIDA::Track * > & ,
TrackAssociator * ,
const TIDA::Event *  )
inlinevirtual

Reimplemented from TrackAnalysis.

Definition at line 68 of file TrackAnalysis.h.

71 { }

◆ execute() [2/5]

virtual void TrackAnalysis::execute ( const std::vector< TIDA::Track * > & ,
const std::vector< TIDA::Track * > & ,
TrackAssociator * ,
const TIDA::Event * ,
double * ,
TIDARoiDescriptor *  )
inlinevirtual

Reimplemented from TrackAnalysis.

Definition at line 81 of file TrackAnalysis.h.

86 { }

◆ execute() [3/5]

void Analysis_Tier0::execute ( const std::vector< TIDA::Track * > & referenceTracks,
const std::vector< TIDA::Track * > & testTracks,
TrackAssociator * associator )
virtual

Loop over reference tracks

fill number of times this analysis was called - presumably the number of passed RoIs for this chain

if the event number has changed, this is a new event so update the event counts

fil the number of offline tracks

fil the number of offline tracks

NB: do we want to fill the actual trigger quantities, or the offline quantities for the matched tracks?

residual profiles vs the reference variable

residual profiles vs eta - the more easy to understand

test track distributions for test tracks with a reference track match

1d residual distributions

Implements TrackAnalysis.

Definition at line 553 of file Analysis_Tier0.cxx.

555 {
556
558 std::vector<TIDA::Track*>::const_iterator reference = referenceTracks.begin();
559 std::vector<TIDA::Track*>::const_iterator referenceEnd = referenceTracks.end();
560
563 m_h_chain->Fill( 0.5 );
564
565 if ( m_eventid != event()->event_number() ) {
569 m_h_chain->Fill( 1.5 );
570 }
571
572 m_h_ntrk->Fill( referenceTracks.size() );
573 m_h_ntrk_rec->Fill( testTracks.size() );
574
576 m_h_chain->Fill(4.5, testTracks.size() );
577
578
579 for( ; reference!=referenceEnd ; ++reference ) {
580
581 // Get reference parameters
582 double referenceEta = (*reference)->eta();
583 double referencePhi = phi((*reference)->phi());
584 double referenceZ0 = (*reference)->z0();
585 double referenceD0 = (*reference)->a0();
586 double referencePT = (*reference)->pT();
587
588 double referenceDZ0 = (*reference)->dz0();
589 double referenceDD0 = (*reference)->da0();
590
591 // Find matched tracks
592 const TIDA::Track* test = associator->matched(*reference);
593
594 double eff_weight = 0;
595 if (test) eff_weight = 1;
596
597 m_h_total_efficiency->Fill(0.5, eff_weight );
598
599 m_h_pTeff->Fill( std::fabs(referencePT)*0.001, eff_weight );
600 m_h_z0eff->Fill( referenceZ0, eff_weight );
601 m_h_d0eff->Fill( referenceD0, eff_weight );
602 m_h_etaeff->Fill( referenceEta, eff_weight );
603 m_h_phieff->Fill( referencePhi, eff_weight );
604 m_h_nVtxeff->Fill( m_nVtx, eff_weight );
605
606 m_h_lbeff->Fill( event()->lumi_block(), eff_weight );
607
608 m_h_trkpT->Fill( std::fabs(referencePT)*0.001 );
609 m_h_trketa->Fill( referenceEta );
610 m_h_trkphi->Fill( referencePhi );
611 m_h_trkd0->Fill( referenceD0 );
612 m_h_trkz0->Fill( referenceZ0 );
613
614 m_h_trkdd0->Fill( referenceDD0 );
615 m_h_trkdz0->Fill( referenceDZ0 );
616
617 if ( referenceDD0!=0 ) m_h_trkd0sig->Fill( referenceD0/referenceDD0 );
618
619 m_h_npixvseta->Fill( referenceEta, int(((*reference)->pixelHits()+0.5)*0.5) );
620 m_h_nsctvseta->Fill( referenceEta, (*reference)->sctHits() );
621 m_h_ntrtvseta->Fill( referenceEta, (*reference)->strawHits() );
622
623
624 m_h_npixvsphi->Fill( referencePhi, int(((*reference)->pixelHits()+0.5)*0.5) );
625 m_h_nsctvsphi->Fill( referencePhi, (*reference)->sctHits() );
626 m_h_ntrtvsphi->Fill( referencePhi, (*reference)->strawHits() );
627
628 m_h_npixvsd0->Fill( referenceD0, int(((*reference)->pixelHits()+0.5)*0.5) );
629 m_h_nsctvsd0->Fill( referenceD0, (*reference)->sctHits() );
630
631 m_h_npixvspT->Fill( std::fabs(referencePT)*0.001, int(((*reference)->pixelHits()+0.5)*0.5) );
632 m_h_nsctvspT->Fill( std::fabs(referencePT)*0.001, (*reference)->sctHits() );
633
634
635 m_h_npix->Fill( int(((*reference)->pixelHits()+0.5)*0.5) );
636 m_h_nsct->Fill( (*reference)->sctHits() );
637 m_h_nsihits->Fill( (*reference)->siHits() );
638 m_h_ntrt->Fill( (*reference)->strawHits() );
639
640
641 m_h_nsihits_lb->Fill( event()->lumi_block(), (*reference)->siHits() );
642
643 m_h_d0vsphi->Fill(referencePhi, referenceD0 );
644
646 m_h_chain->Fill(2.5);
647
648
649 for ( size_t ilayer=0 ; ilayer<32 ; ilayer++ ) {
650 if ( (*reference)->hitPattern()&(1U<<ilayer) ) m_h_layer->Fill( ilayer );
651 }
652
653 if (test) {
654
655 m_h_chain->Fill(3.5);
656
659
661 // m_h_pTres->Fill( referencePT*0.001, (test->pT() - referencePT)*0.001 );
662 // m_h_ipTres->Fill( 1000/referencePT, (1000/test->pT() - 1000/referencePT) );
663 // m_h_etares->Fill( referenceEta, test->eta() - referenceEta );
664 // m_h_phires->Fill( referencePhi, phi(test->phi() - referencePhi) );
665 // m_h_d0res->Fill( referenceD0, test->a0() - referenceD0 );
666 // m_h_z0res->Fill( referenceZ0, test->z0() - referenceZ0 );
667
669 m_h_pTres->Fill( referenceEta, (test->pT() - referencePT)*0.001 );
670 m_h_ipTres->Fill( referenceEta, (1000/test->pT() - 1000/referencePT) );
671 m_h_etares->Fill( referenceEta, test->eta() - referenceEta );
672 m_h_phires->Fill( referenceEta, phi(test->phi() - referencePhi) );
673 m_h_d0res->Fill( referenceEta, test->a0() - referenceD0 );
674 m_h_z0res->Fill( referenceEta, test->z0() - referenceZ0 );
675
676 m_h_trkvtx_x_lb->Fill( event()->lumi_block(), beamTestx() );
677 m_h_trkvtx_y_lb->Fill( event()->lumi_block(), beamTesty() );
678 m_h_trkvtx_z_lb->Fill( event()->lumi_block(), beamTestz() );
679
680 for ( size_t ilayer=0 ; ilayer<32 ; ilayer++ ) {
681 if ( test->hitPattern()&(1U<<ilayer) ) m_h_layer_rec->Fill( ilayer );
682 }
683
684 // std::cout << "SUTT beam x " << beamTestx() << " " << "\tx " << beamTesty() << " " << "\ty " << beamTestz() << std::endl;
685
686#if 0
688 m_h_trkpT_rec->Fill( referencePT*0.001 );
689 m_h_trketa_rec->Fill( referenceEta );
690 m_h_trkphi_rec->Fill( referencePhi );
691 m_h_trkd0_rec->Fill( referenceD0 );
692 m_h_trkz0_rec->Fill( referenceZ0 );
693
694#endif
695
697 m_h_trkpT_rec->Fill( std::fabs(test->pT())*0.001 );
698 m_h_trketa_rec->Fill( test->eta() );
699 m_h_trkphi_rec->Fill( test->phi() );
700 m_h_trkd0_rec->Fill( test->a0() );
701 m_h_trkz0_rec->Fill( test->z0() );
702
703 m_h_trkdd0_rec->Fill( test->da0() );
704 m_h_trkdz0_rec->Fill( test->dz0() );
705
706 if ( test->da0()!=0 ) m_h_trkd0sig_rec->Fill( test->a0()/test->da0() );
707
708
710 m_h_trkpT_residual->Fill( (test->pT() - referencePT)*0.001 );
711 m_h_trkipT_residual->Fill( (1000/test->pT() - 1000/referencePT) );
712 m_h_trketa_residual->Fill( test->eta() - referenceEta );
713 m_h_trkphi_residual->Fill( phi(test->phi() - referencePhi) );
714
715 m_h_trkd0_residual->Fill( test->a0() - referenceD0 );
716 m_h_trkz0_residual->Fill( test->z0() - referenceZ0 );
717
718 m_h_trkdd0_residual->Fill( test->da0() - referenceDD0 );
719 m_h_trkdz0_residual->Fill( test->dz0() - referenceDZ0 );
720
721 m_h_npixvseta_rec->Fill( referenceEta, int((test->pixelHits()+0.5)*0.5) );
722 m_h_nsctvseta_rec->Fill( referenceEta, test->sctHits() );
723
724 m_h_npixvsphi_rec->Fill( referencePhi, int((test->pixelHits()+0.5)*0.5) );
725 m_h_nsctvsphi_rec->Fill( referencePhi, test->sctHits() );
726
727 m_h_npixvsd0_rec->Fill( referenceD0, int((test->pixelHits()+0.5)*0.5) );
728 m_h_nsctvsd0_rec->Fill( referenceD0, test->sctHits() );
729
730 m_h_npixvspT_rec->Fill( std::fabs(referencePT)*0.001, int((test->pixelHits()+0.5)*0.5) );
731 m_h_nsctvspT_rec->Fill( std::fabs(referencePT)*0.001, test->sctHits() );
732
733 m_h_npix_rec->Fill( int((test->pixelHits()+0.5)*0.5) );
734 m_h_nsct_rec->Fill( test->sctHits() );
735 m_h_nsihits_rec->Fill( test->siHits() );
736
737 m_h_nsihits_lb_rec->Fill( event()->lumi_block(), test->siHits() );
738
739
740 m_h_ntrt_rec->Fill( test->strawHits() );
741
742 m_h_ntrtvseta_rec->Fill( referenceEta, test->strawHits() );
743 m_h_ntrtvsphi_rec->Fill( referencePhi, test->strawHits() );
744
745 m_h_d0vsphi_rec->Fill( test->phi(), test->a0() );
746
747 }
748
749 }
750}
Scalar phi() const
phi method
virtual const S * matched(T *t)
void event_number(unsigned long long e)
Definition TIDAEvent.h:43
const TIDA::Event * event() const
double beamTestz() const
double beamTesty() const
double beamTestx() const

◆ execute() [4/5]

virtual void TrackAnalysis::execute ( const std::vector< TIDA::Track * > & tracks1,
const std::vector< TIDA::Track * > & tracks2,
TrackAssociator * matcher,
const TIDA::Event * event,
double *  )
inlinevirtual

Reimplemented from TrackAnalysis.

Definition at line 73 of file TrackAnalysis.h.

77 {
78 execute( tracks1, tracks2, matcher, event );
79 }
virtual void execute(const std::vector< TIDA::Track * > &referenceTracks, const std::vector< TIDA::Track * > &testTracks, TrackAssociator *associator)

◆ execute() [5/5]

virtual void TrackAnalysis::execute ( const std::vector< TIDA::Track * > & tracks1,
const std::vector< TIDA::Track * > & tracks2,
TrackAssociator * matcher,
TrigObjectMatcher *  )
inlinevirtual

Reimplemented from TrackAnalysis.

Definition at line 61 of file TrackAnalysis.h.

64 {
65 execute( tracks1, tracks2, matcher );
66 }

◆ execute_vtx()

void Analysis_Tier0::execute_vtx ( const std::vector< TIDA::Vertex * > & vtx0,
const std::vector< TIDA::Vertex * > & vtx1,
const TIDA::Event * tevt = 0 )
virtual

Reimplemented from TrackAnalysis.

Definition at line 755 of file Analysis_Tier0.cxx.

757 {
758 if ( m_vtxanal ) m_vtxanal->execute( vtx0, vtx1, tevt );
759}

◆ finalise()

void Analysis_Tier0::finalise ( )
virtual

Implements TrackAnalysis.

Definition at line 762 of file Analysis_Tier0.cxx.

762 {
763 if ( m_vtxanal ) m_vtxanal->finalise();
764}

◆ getHistograms()

const std::map< std::string, TH1 * > & TrackAnalysis::getHistograms ( ) const
inlineinherited

access the histograms

Definition at line 103 of file TrackAnalysis.h.

103{ return m_histos; }

◆ initialise()

void Analysis_Tier0::initialise ( )
virtual

standard operation interface

archive the chain name

variable width bins for track occupancy

Limit the bins - to only the first 77 bins - so a range up to ~ 1000 leave the previous selection commented for the time being

reference track distributions

the error estimates are always positive ...

test track distributions

Limit the bins - to only the first 77 bins - so a range up to ~ 1000 leave the previous selection commented for the time being

trigger tracking efficiencies

han config too stufid to deal with spaces in histogram names

trigger tracking differential resolutions

change all these residiuals to be vs eta, rather than vs themselves

residuals

miscelaneous histograms

if ( cnams.extra().find("probe")!=std::string::npos ) { m_h_invmass = new TH1F( "invmass", "invariant mass;mass [GeV]", 320, 0, 200 ); addHistogram( m_h_invmass ); }

vertex analyses if required ...

is this needed ?

initialise the vtx analysis

store the historams

Implements TrackAnalysis.

Definition at line 113 of file Analysis_Tier0.cxx.

113 {
114
115 ChainString cname = name();
116
117 // std::cout << "Analysis_Tier0::initialise() name " << name() << std::endl;
118
119#if 0
120 std::cout << "\nAnalysis_Tier0:: chain specification: " << cname << "\t" << cname.raw() << std::endl;
121 std::cout << "\tchain: " << cname.head() << std::endl;
122 std::cout << "\tkey: " << cname.tail() << std::endl;
123 std::cout << "\troi: " << cname.roi() << std::endl;
124 std::cout << "\tvtx: " << cname.vtx() << std::endl;
125 std::cout << "\tte: " << cname.element() << std::endl;
126#endif
127
128 m_debug = false;
129
130 m_h_chain = new TH1F( "Chain", cname.c_str(), 5, 0, 5 );
131 m_h_chain->GetXaxis()->SetBinLabel(1, "Nrois" );
132 m_h_chain->GetXaxis()->SetBinLabel(2, "Nevents" );
133 m_h_chain->GetXaxis()->SetBinLabel(3, "N ref tracks" );
134 m_h_chain->GetXaxis()->SetBinLabel(4, "N matched tracks" );
135 m_h_chain->GetXaxis()->SetBinLabel(5, "N total test tracks" );
136
137
139
141
143
144#if 0
145
146 double vnbins[81] = {
147 -0.5,
148 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5,
149 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5,
150 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5,
151 31.5, 32.5, 33.5, 34.5, 36.5, 37.5, 39.5,
152 40.5, 42.5, 43.5, 45.5, 47.5, 49.5,
153 50.5, 52.5, 54.5, 57.5, 59.5,
154 61.5, 63.5, 66.5, 69.5,
155 71.5, 74.5, 77.5,
156 80.5, 83.5, 86.5,
157 90.5, 93.5, 97.5,
158 100.5, 104.5, 108.5,
159 113.5, 117.5,
160 122.5, 126.5,
161 131.5, 136.5,
162 142.5, 147.5,
163 153.5, 159.5,
164 165.5,
165 171.5, 178.5,
166 185.5,
167 192.5,
168 200.5 };
169#endif
170
171 double vnbins[101] = {
172 -0.5,
173 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 17.5, 18.5, 19.5, 21.5,
174 23.5, 24.5, 26.5, 28.5, 30.5, 32.5, 35.5, 37.5, 40.5, 43.5, 46.5, 50.5, 53.5, 57.5, 61.5, 66.5, 71.5, 76.5, 81.5, 87.5,
175 93.5, 100.5, 107.5, 114.5, 123.5, 131.5, 141.5, 150.5, 161.5, 172.5, 185.5, 198.5, 211.5, 226.5, 242.5, 259.5, 277.5, 297.5, 317.5, 340.5,
176 363.5, 389.5, 416.5, 445.5, 476.5, 509.5,
177 544.5, 582.5, 623.5, 666.5, 713.5, 762.5, 815.5, 872.5, 933.5, 998.5, 1067.5,
178 1141.5, 1221.5, 1305.5, 1396.5, 1493.5, 1597.5,
179 1708.5, 1827.5, 1953.5, 2089.5,
180 2234.5, 2389.5, 2555.5,
181 2733.5, 2923.5, 3125.5,
182 3342.5, 3574.5,
183 3823.5, 4088.5,
184 4372.5, 4675.5,
185 5000.5
186 };
187
188
191 // m_h_ntrk = new TH1F( "reftrk_N", "Reference tracks", 100, vnbins );
192 m_h_ntrk = new TH1F( "reftrk_N", "Reference tracks", 77, vnbins );
193
195
197
198 // double pt_bins[25] = { 0, 1, 2, 3, 4, 8, 10, 12, 14, 16, 18, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80, 90, 100 };
199
200 std::vector<double> ptbins;
201
202 for ( int i=0 ; i<=25 ; i++ ) {
203
204 double y = std::log10(1) + i*( std::log10(100)-std::log10(1) )/25;
205
206 double x = std::pow(10, y);
207 ptbins.push_back(x);
208
209 }
210
211 // m_h_trkpT = new TH1F("reftrk_pT" , "Reference track pT", 50, 0., 100.);
212 m_h_trkpT = new TH1F("reftrk_pT" , "Reference track pT", 25, &ptbins[0] );
213 m_h_trkphi = new TH1F("reftrk_phi", "Reference track Phi", 25, -M_PI, M_PI);
214 m_h_trketa = new TH1F("reftrk_eta", "Reference track Eta", 25, -2.5, 2.5) ;
215 if (name().find("LRT")!=std::string::npos || name().find("lrt")!=std::string::npos) {
216 m_h_trkd0 = new TH1F("reftrk_d0" , "Reference track d0", 201, -100.0, 100.0 );
217 } else {
218 m_h_trkd0 = new TH1F("reftrk_d0" , "Reference track d0", 101, -5.0, 5.0 );
219 }
220 m_h_trkz0 = new TH1F("reftrk_z0" , "Reference track z0", 50, -225., 225.);
221
223 m_h_trkdd0 = new TH1F("reftrk_dd0" , "Reference track sigma(d0)", 50, 0, 0.5);
224 m_h_trkdz0 = new TH1F("reftrk_dz0" , "Reference track sigma(z0)", 50, 0, 2.5);
225
226 m_h_trkd0sig = new TH1F("reftrk_d0sig" , "Reference track d0 significance", 101, -5., 5.);
227
233
234
237
239
241
244 // m_h_ntrk_rec = new TH1F( "testtrk_N", "Test tracks", 100, vnbins );
245 m_h_ntrk_rec = new TH1F( "testtrk_N", "Test tracks", 77, vnbins );
246
248
249 // m_h_trkpT_rec = new TH1F("testtrk_pT" , "Test track pT", 25, 0., 100.);
250 m_h_trkpT_rec = new TH1F("testtrk_pT" , "Test track pT", 25, &ptbins[0] );
251 m_h_trkphi_rec = new TH1F("testtrk_phi", "Test track Phi", 25, -M_PI, M_PI);
252 m_h_trketa_rec = new TH1F("testtrk_eta", "Test track Eta", 25, -2.5, 2.5) ;
253 if (name().find("LRT")!=std::string::npos || name().find("lrt")!=std::string::npos) {
254 m_h_trkd0_rec = new TH1F("testtrk_d0" , "Test track d0", 201, -100.0, 100.0 );
255 } else {
256 m_h_trkd0_rec = new TH1F("testtrk_d0" , "Test track d0", 101, -5.0, 5.0 );
257 }
258 m_h_trkz0_rec = new TH1F("testtrk_z0" , "Test track z0", 50, -225., 225.);
259
260 m_h_trkdd0_rec = new TH1F("testtrk_dd0" , "Test track sigma(d0)", 50, 0, 0.5);
261 m_h_trkdz0_rec = new TH1F("testtrk_dz0" , "Test track sigma(z0)", 50, 0, 2.5);
262
263 m_h_trkd0sig_rec = new TH1F("testtrk_d0sig" , "Test track d0 significance", 101, -5.0, 5.0);
264
265
271
274
276
278
279 double d0bins_LRT[124] = { -100.5,
280 -97.5, -93.5, -90.5,
281 -86.5, -83.5, -80.5,
282 -77.5, -74.5, -71.5,
283 -69.5, -66.5, -63.5, -61.5,
284 -59.5, -57.5, -54.5, -52.5, -50.5,
285 -49.5, -47.5, -45.5, -43.5, -42.5, -40.5,
286 -39.5, -37.5, -36.5, -34.5, -33.5, -32.5, -31.5,
287 -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, -21.5, -20.5,
288 -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, -11.5, -10.5,
289 -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5, -0.5,
290 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5,
291 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5,
292 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5,
293 31.5, 32.5, 33.5, 34.5, 36.5, 37.5, 39.5,
294 40.5, 42.5, 43.5, 45.5, 47.5, 49.5,
295 50.5, 52.5, 54.5, 57.5, 59.5,
296 61.5, 63.5, 66.5, 69.5,
297 71.5, 74.5, 77.5,
298 80.5, 83.5, 86.5,
299 90.5, 93.5, 97.5,
300 100.5 };
301
302 double d0bins[40] = { -5.0, -4.0, -3.0, -2.5,
303 -2.0, -1.8, -1.6, -1.4, -1.2,
304 -1.05, -0.95, -0.85, -0.75, -0.65, -0.55, -0.45, -0.35, -0.25, -0.15, -0.05,
305 0.05, 0.15, 0.25, 0.35, 0.45, 0.55, 0.65, 0.75, 0.85, 0.95, 1.05,
306 1.2, 1.4, 1.6, 1.8, 2.0,
307 2.5, 3.0, 4.0, 5.0 };
308
309
310
311 m_h_total_efficiency = new TProfile ("Eff_overall", "total efficiency", 1, 0., 1.);
312
313 // m_h_pTeff = new TProfile( "Eff_pT", "pT efficiency", 25, 0., 100. );
314 m_h_pTeff = new TProfile( "Eff_pT", "pT efficiency", 25, &ptbins[0] );
315 m_h_etaeff = new TProfile( "Eff_Eta", "eta efficiency", 25, -2.5, 2.5 );
316 m_h_phieff = new TProfile( "Eff_Phi", "phi efficiency", 25, -M_PI, M_PI );
317 if (name().find("LRT")!=std::string::npos || name().find("lrt")!=std::string::npos) {
318 m_h_d0eff = new TProfile( "Eff_d0", "d0 efficiency", 123, d0bins_LRT );
319 } else {
320 m_h_d0eff = new TProfile( "Eff_d0", "d0 efficiency", 39, d0bins );
321 }
322 m_h_z0eff = new TProfile( "Eff_z0", "z0 efficiency", 50, -225., 225. );
323 m_h_nVtxeff = new TProfile( "Eff_nVtx", "nVtx efficiency", 101, -0.5, 100.5 );
324
325
326 m_h_lbeff = new TProfile( "Eff_lb", "efficinecy vs lumiblock", 301, -0.5, 3009.5 );
327
329
330 m_h_trkvtx_x_lb = new TProfile( "trkvtx_x_vs_lb", "track vertex x vs lumiblock", 301, -0.5, 3009.5 );
331 m_h_trkvtx_y_lb = new TProfile( "trkvtx_y_vs_lb", "track vertex y vs lumiblock", 301, -0.5, 3009.5 );
332 m_h_trkvtx_z_lb = new TProfile( "trkvtx_z_vs_lb", "track vertex z vs lumiblock", 301, -0.5, 3009.5 );
333
337
339 m_h_npixvseta = new TProfile("npix_vs_eta", "offline npix vs eta;offline #eta;# mean number of offline pixel hits", 30, -2.5, 2.5);
340 m_h_npixvseta_rec = new TProfile("npix_vs_eta_rec", "trigger npix vs eta;offline #eta;# mean number of trigger pixel hits", 30, -2.5, 2.5);
341
342 m_h_nsctvseta = new TProfile("nsct_vs_eta", "offline nsct vs eta;offline #eta;# mean number of offline sct hits", 30, -2.5, 2.5);
343 m_h_nsctvseta_rec = new TProfile("nsct_vs_eta_rec", "trigger nsct vs eta;offline #eta;# mean number of trigger sct hits", 30, -2.5, 2.5);
344
345 m_h_ntrtvseta = new TProfile("ntrt_vs_eta", "offline ntrt vs eta;offline #eta;# mean number of offline trt hits", 30, -2.5, 2.5 );
346 m_h_ntrtvseta_rec = new TProfile("ntrt_vs_eta_rec", "trigger ntrt vs eta;offline #eta;# mean number of trigger trt hits", 30, -2.5, 2.5 );
347
348 m_h_npixvsphi = new TProfile("npix_vs_phi", "offline npix vs phi;offline #phi;# mean number of offline pixel hits", 30, -M_PI, M_PI);
349 m_h_npixvsphi_rec = new TProfile("npix_vs_phi_rec", "trigger npix vs phi;offline #phi;# mean number of trigger pixel hits", 30, -M_PI, M_PI);
350
351 m_h_nsctvsphi = new TProfile("nsct_vs_phi", "offline nsct vs phi;offline #phi;# mean number of offline sct hits", 30, -M_PI, M_PI);
352 m_h_nsctvsphi_rec = new TProfile("nsct_vs_phi_rec", "trigger nsct vs phi;offline #phi;# mean number of trigger sct hits", 30, -M_PI, M_PI);
353
354 m_h_ntrtvsphi = new TProfile("ntrt_vs_phi", "offline ntrt vs phi;offline #phi;# mean number of offline trt hits", 30, -M_PI, M_PI );
355 m_h_ntrtvsphi_rec = new TProfile("ntrt_vs_phi_rec", "trigger ntrt vs phi;offline #phi;# mean number of trigger trt hits", 30, -M_PI, M_PI );
356
357 if (name().find("LRT")!=std::string::npos || name().find("lrt")!=std::string::npos) {
358 m_h_npixvsd0 = new TProfile("npix_vs_d0", "offline npix vs d0;offline #d0;# mean number of offline pixel hits", 123, d0bins_LRT );
359 m_h_npixvsd0_rec = new TProfile("npix_vs_d0_rec", "trigger npix vs d0;offline #d0;# mean number of trigger pixel hits", 123, d0bins_LRT );
360
361 m_h_nsctvsd0 = new TProfile("nsct_vs_d0", "offline nsct vs d0;offline #d0;# mean number of offline sct hits", 123, d0bins_LRT );
362 m_h_nsctvsd0_rec = new TProfile("nsct_vs_d0_rec", "trigger nsct vs d0;offline #d0;# mean number of trigger sct hits", 123, d0bins_LRT );
363 } else {
364 m_h_npixvsd0 = new TProfile("npix_vs_d0", "offline npix vs d0;offline #d0;# mean number of offline pixel hits", 39, d0bins );
365 m_h_npixvsd0_rec = new TProfile("npix_vs_d0_rec", "trigger npix vs d0;offline #d0;# mean number of trigger pixel hits", 39, d0bins );
366
367 m_h_nsctvsd0 = new TProfile("nsct_vs_d0", "offline nsct vs d0;offline #d0;# mean number of offline sct hits", 39, d0bins );
368 m_h_nsctvsd0_rec = new TProfile("nsct_vs_d0_rec", "trigger nsct vs d0;offline #d0;# mean number of trigger sct hits", 39, d0bins );
369 }
370
371 m_h_npixvspT = new TProfile("npix_vs_pT", "offline npix vs pT;offline #p_{T};# mean number of offline pixel hits", 25, &ptbins[0] );
372 m_h_npixvspT_rec = new TProfile("npix_vs_pT_rec", "trigger npix vs pT;offline #p_{T};# mean number of trigger pixel hits", 25, &ptbins[0] );
373
374 m_h_nsctvspT = new TProfile("nsct_vs_pT", "offline nsct vs pT;offline #p_{T} [GeV];# mean number of offline pixel hits", 25, &ptbins[0] );
375 m_h_nsctvspT_rec = new TProfile("nsct_vs_pT_rec", "trigger nsct vs pT;offline #p_{T} [GeV];# mean number of trigger pixel hits", 25, &ptbins[0] );
376
377
378 m_h_nsihits_lb = new TProfile( "nsihits_lb", "offline n sihits vs lumiblock", 301, -0.5, 3009.5 );
379 m_h_nsihits_lb_rec = new TProfile( "nsihits_lb_rec", "trigger n sihits vs lumiblock", 301, -0.5, 3009.5 );
380
383
384 m_h_layer_rec = new TH1F("layer_rec" , "hit layers", 32, -0.5, 31.5 );
385 m_h_layer = new TH1F("layer", "hit layers", 32, -0.5, 31.5 );
386
389
390
391
399
402
405
408
411
414
417
420
423
426
429
431
433
434 // m_h_pTres = new TProfile("Res_pT", "pT residual;pT [Gev];pT_{trig}-pT_{ref} [GeV]", 25, 0., 100.);
435 // m_h_pTres = new TProfile("Res_pT", "pT residual;pT [Gev];pT_{trig}-pT_{ref} [GeV]", 25, &ptbins[0] );
436 // m_h_ipTres = new TProfile("Res_ipT", "ipT residual;pT^{-1} [Gev^{-1}];1/pT_{trig}-1/pT_{ref} [GeV^{-1}]", 55, -5, 5 );
437 // m_h_etares = new TProfile("Res_eta", "Eta residual;#eta;#eta_{trig}-#eta_{ref}", 25, -2.5, 2.5);
438 // m_h_phires = new TProfile("Res_phi", "Phi residual;#phi;#phi_{trig}-#phi_{ref}", 25, -M_PI, M_PI);
439 // m_h_d0res = new TProfile("Res_d0", "d0 residual;d0 [mm];d0_{trig}-d0_{ref} [mm]", 50, -10., 10.);
440 // m_h_z0res = new TProfile("Res_z0", "z0 residual;z0 [mm];z0_{trig}-z0_{ref} [mm]", 50, -225., 225.);
441
442 m_h_pTres = new TProfile("Res_pT", "pT residual;#eta_{ref};#Delta pT [Gev]", 25, -2.5, 2.5 );
443 m_h_ipTres = new TProfile("Res_ipT", "ipT residual;#eta_{ref};#Delta pT^{-1} [Gev^{-1}]", 25, -2.5, 2.5);
444 m_h_etares = new TProfile("Res_eta", "Eta residual;#eta_{ref};#Delta #eta", 25, -2.5, 2.5);
445 m_h_phires = new TProfile("Res_phi", "Phi residual;#eta_{ref};#Delta #phi", 25, -2.5, 2.5);
446 m_h_d0res = new TProfile("Res_d0", "d0 residual;#eta_{ref};#Delta d0 [mm]", 25, -2.5, 2.5);
447 m_h_z0res = new TProfile("Res_z0", "z0 residual;#eta_{ref};#Delta z0 [mm]", 25, -2.5, 2.5);
448
455
457
458 m_h_trkpT_residual = new TH1F("residual_pT" , "track pT residual", 201, -100.0, 100.0 );
459 m_h_trkipT_residual = new TH1F("residual_ipT", "track ipT residual", 55, -5.5, 5.5 );
460 m_h_trkphi_residual = new TH1F("residual_phi", "track Phi residual", 50, -0.02, 0.02 );
461 m_h_trketa_residual = new TH1F("residual_eta", "track Eta residual", 50, -0.02, 0.02 );
462 m_h_trkd0_residual = new TH1F("residual_d0" , "track d0 residual ", 251, -2.5, 2.5 );
463 m_h_trkz0_residual = new TH1F("residual_z0" , "track z0 residual", 401, -20.0, 20.0 );
464
465 m_h_trkdd0_residual = new TH1F("residual_dd0" , "track sigma d0 residual ", 251, -0.5, 0.5 );
466 m_h_trkdz0_residual = new TH1F("residual_dz0" , "track sigma z0 residual", 401, -1.0, 1.0 );
467
474
477
478 m_h_npix = new TH1F("npix", "npix", 26, -0.5, 25.5 );
479 m_h_npix_rec = new TH1F("npix_rec", "npix_rec", 26, -0.5, 25.5 );
480
481 m_h_nsct = new TH1F("nsct", "nsct", 31, -0.5, 30.5 );
482 m_h_nsct_rec = new TH1F("nsct_rec", "nsct_rec", 31, -0.5, 30.5 );
483
484 m_h_nsihits = new TH1F("nsiHits", "nsiHits", 41, -0.5, 40.5 );
485 m_h_nsihits_rec = new TH1F("nsiHits_rec", "nsiHits_rec", 41, -0.5, 40.5 );
486
487 m_h_ntrt = new TH1F("ntrt", "ntrt", 91, -0.5, 91.5 );
488 m_h_ntrt_rec = new TH1F("ntrt_rec", "ntrt_rec", 91, -0.5, 91.5 );
489
494
499
501
502 m_h_d0vsphi = new TProfile( "d0_vs_phi_prof", "d0 vs phi_prof", 25, -M_PI, M_PI );
503 m_h_d0vsphi_rec = new TProfile( "d0_vs_phi_rec_prof", "d0 vs phi_rec_prof", 25, -M_PI, M_PI );
504
507
512
513 // h2d_d0vsphi = 0; // new TH2D( "d0_vs_phi", "d0 vs phi", 25, -M_PI, M_PI, 50, -2.6, 2.6 );
514 // h2d_d0vsphi_rec = 0; // new TH2D( "d0_vs_phi_rec", "d0 vs phi rec", 25, -M_PI, M_PI, 50, -2.6, 2.6 );
515
516 // addHistogram( h2d_d0vsphi );
517 // addHistogram( h2d_d0vsphi_rec );
518
519 m_vtxanal = 0;
520
521#if 1
522
523 // std::cout << "Analysis_Tier0 vertex info: " << name() << std::endl;
524
526 if ( name().find("vtx")!=std::string::npos || name().find("Vtx")!=std::string::npos ||
527 name().find("vx")!=std::string::npos || name().find("Vx")!=std::string::npos ) {
528
529 // std::cout << "Analysis_Tier0 vertex info: " << name() << std::endl;
530
531 m_vtxanal = new VtxAnalysis("VTX");
532
534 store().insert( m_vtxanal, "VTX" );
535
537 m_vtxanal->initialise();
538
539 // std::cout << "vtxanal obj size() " << m_vtxanal->objects().size() << std::endl;
540 // std::cout << "vtxanal prof size() " << m_vtxanal->profs().size() << std::endl;
541
543 for ( unsigned i=0 ; i<m_vtxanal->objects().size() ; i++ ) addHistogram( m_vtxanal->objects()[i] );
544 for ( unsigned i=0 ; i<m_vtxanal->profs().size() ; i++ ) addHistogram( m_vtxanal->profs()[i] );
545 }
546#endif
547
548}
#define M_PI
#define y
#define x
void addHistogram(TH1 *h)
void insert(T *t, const std::string &key)
TIDA::FeatureStore & store()
std::string find(const std::string &s)
return a remapped string
Definition hcg.cxx:138
TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)

◆ monTool()

ToolHandle< GenericMonitoringTool > * Analysis_Tier0::monTool ( )
inline

Definition at line 63 of file Analysis_Tier0.h.

63{ return m_monTool; }

◆ name()

const std::string & TrackAnalysis::name ( ) const
inlineinherited

return identifier

Definition at line 52 of file TrackAnalysis.h.

52{ return m_name; }
std::string m_name
identifier of the of the analysis - also used for the root directory into which the histograms are pu...

◆ phi()

double Analysis_Tier0::phi ( double p)

Definition at line 768 of file Analysis_Tier0.cxx.

768 {
769 if(p < -M_PI) p += 2*M_PI;
770 if(p > M_PI) p -= 2*M_PI;
771 return p;
772}

◆ roi()

const TIDARoiDescriptor * TrackAnalysis::roi ( ) const
inlineinherited

Definition at line 138 of file TrackAnalysis.h.

138{ return m_roi; }
TIDARoiDescriptor * m_roi

◆ set_monTool()

void Analysis_Tier0::set_monTool ( ToolHandle< GenericMonitoringTool > * m)
inline

Definition at line 61 of file Analysis_Tier0.h.

◆ setBeamRef() [1/2]

void TrackAnalysis::setBeamRef ( const std::vector< double > & v)
inlineinherited

Definition at line 112 of file TrackAnalysis.h.

112 {
113 if ( v.size()>0 ) m_xBeamReference = v[0];
114 if ( v.size()>1 ) m_yBeamReference = v[1];
115 if ( v.size()>2 ) m_zBeamReference = v[2];
116 }

◆ setBeamRef() [2/2]

void TrackAnalysis::setBeamRef ( double x,
double y,
double z = 0 )
inlineinherited

set the beamline positions

Definition at line 109 of file TrackAnalysis.h.

◆ setBeamTest() [1/2]

void TrackAnalysis::setBeamTest ( const std::vector< double > & v)
inlineinherited

Definition at line 118 of file TrackAnalysis.h.

118 {
119 if ( v.size()>0 ) m_xBeamTest = v[0];
120 if ( v.size()>1 ) m_yBeamTest = v[1];
121 if ( v.size()>2 ) m_zBeamTest = v[2];
122 }

◆ setBeamTest() [2/2]

void TrackAnalysis::setBeamTest ( double x,
double y,
double z = 0 )
inlineinherited

Definition at line 110 of file TrackAnalysis.h.

◆ setevent()

void TrackAnalysis::setevent ( TIDA::Event * e)
inlineinherited

Definition at line 136 of file TrackAnalysis.h.

◆ setroi()

void TrackAnalysis::setroi ( TIDARoiDescriptor * r)
inlineinherited

Definition at line 139 of file TrackAnalysis.h.

139{ m_roi=r; }
int r
Definition globals.cxx:22

◆ setvertices()

void Analysis_Tier0::setvertices ( int numvtx)
inline

Definition at line 52 of file Analysis_Tier0.h.

52{m_nVtx = numvtx;}

◆ store()

TIDA::FeatureStore & TrackAnalysis::store ( )
inlineinherited

Definition at line 133 of file TrackAnalysis.h.

133{ return m_store; }
TIDA::FeatureStore m_store

◆ TEffbegin()

std::map< std::string, TProfile * >::const_iterator Analysis_Tier0::TEffbegin ( ) const
inline

Definition at line 57 of file Analysis_Tier0.h.

57{ return m_effhistos.begin(); }

◆ TEffend()

std::map< std::string, TProfile * >::const_iterator Analysis_Tier0::TEffend ( ) const
inline

Definition at line 58 of file Analysis_Tier0.h.

58{ return m_effhistos.end(); }

◆ THbegin()

std::map< std::string, TH1 * >::const_iterator Analysis_Tier0::THbegin ( ) const
inline

Definition at line 54 of file Analysis_Tier0.h.

54{ return m_histos.begin(); }

◆ THend()

std::map< std::string, TH1 * >::const_iterator Analysis_Tier0::THend ( ) const
inline

Definition at line 55 of file Analysis_Tier0.h.

55{ return m_histos.end(); }

Member Data Documentation

◆ m_debug

bool Analysis_Tier0::m_debug
private

Definition at line 218 of file Analysis_Tier0.h.

◆ m_effhistos

std::map<std::string, TProfile*> Analysis_Tier0::m_effhistos
private

Definition at line 85 of file Analysis_Tier0.h.

◆ m_event

TIDA::Event* TrackAnalysis::m_event
protectedinherited

Definition at line 164 of file TrackAnalysis.h.

◆ m_eventid

unsigned long long Analysis_Tier0::m_eventid
private

Definition at line 220 of file Analysis_Tier0.h.

◆ m_h_chain

TH1F* Analysis_Tier0::m_h_chain
private

Definition at line 147 of file Analysis_Tier0.h.

◆ m_h_d0eff

TProfile* Analysis_Tier0::m_h_d0eff
private

Definition at line 91 of file Analysis_Tier0.h.

◆ m_h_d0res

TProfile* Analysis_Tier0::m_h_d0res
private

Definition at line 100 of file Analysis_Tier0.h.

◆ m_h_d0vsphi

TProfile* Analysis_Tier0::m_h_d0vsphi
private

Definition at line 138 of file Analysis_Tier0.h.

◆ m_h_d0vsphi_rec

TProfile* Analysis_Tier0::m_h_d0vsphi_rec
private

Definition at line 139 of file Analysis_Tier0.h.

◆ m_h_etaeff

TProfile* Analysis_Tier0::m_h_etaeff
private

Definition at line 89 of file Analysis_Tier0.h.

◆ m_h_etares

TProfile* Analysis_Tier0::m_h_etares
private

Definition at line 98 of file Analysis_Tier0.h.

◆ m_h_ipTres

TProfile* Analysis_Tier0::m_h_ipTres
private

Definition at line 97 of file Analysis_Tier0.h.

◆ m_h_layer

TH1F* Analysis_Tier0::m_h_layer
private

Definition at line 174 of file Analysis_Tier0.h.

◆ m_h_layer_rec

TH1F* Analysis_Tier0::m_h_layer_rec
private

Definition at line 194 of file Analysis_Tier0.h.

◆ m_h_lbeff

TProfile* Analysis_Tier0::m_h_lbeff
private

Definition at line 94 of file Analysis_Tier0.h.

◆ m_h_npix

TH1F* Analysis_Tier0::m_h_npix
private

Definition at line 167 of file Analysis_Tier0.h.

◆ m_h_npix_rec

TH1F* Analysis_Tier0::m_h_npix_rec
private

Definition at line 188 of file Analysis_Tier0.h.

◆ m_h_npixvsd0

TProfile* Analysis_Tier0::m_h_npixvsd0
private

Definition at line 110 of file Analysis_Tier0.h.

◆ m_h_npixvsd0_rec

TProfile* Analysis_Tier0::m_h_npixvsd0_rec
private

Definition at line 125 of file Analysis_Tier0.h.

◆ m_h_npixvseta

TProfile* Analysis_Tier0::m_h_npixvseta
private

Definition at line 108 of file Analysis_Tier0.h.

◆ m_h_npixvseta_rec

TProfile* Analysis_Tier0::m_h_npixvseta_rec
private

Definition at line 123 of file Analysis_Tier0.h.

◆ m_h_npixvsphi

TProfile* Analysis_Tier0::m_h_npixvsphi
private

Definition at line 109 of file Analysis_Tier0.h.

◆ m_h_npixvsphi_rec

TProfile* Analysis_Tier0::m_h_npixvsphi_rec
private

Definition at line 124 of file Analysis_Tier0.h.

◆ m_h_npixvspT

TProfile* Analysis_Tier0::m_h_npixvspT
private

Definition at line 111 of file Analysis_Tier0.h.

◆ m_h_npixvspT_rec

TProfile* Analysis_Tier0::m_h_npixvspT_rec
private

Definition at line 126 of file Analysis_Tier0.h.

◆ m_h_nsct

TH1F* Analysis_Tier0::m_h_nsct
private

Definition at line 168 of file Analysis_Tier0.h.

◆ m_h_nsct_rec

TH1F* Analysis_Tier0::m_h_nsct_rec
private

Definition at line 189 of file Analysis_Tier0.h.

◆ m_h_nsctvsd0

TProfile* Analysis_Tier0::m_h_nsctvsd0
private

Definition at line 115 of file Analysis_Tier0.h.

◆ m_h_nsctvsd0_rec

TProfile* Analysis_Tier0::m_h_nsctvsd0_rec
private

Definition at line 130 of file Analysis_Tier0.h.

◆ m_h_nsctvseta

TProfile* Analysis_Tier0::m_h_nsctvseta
private

Definition at line 113 of file Analysis_Tier0.h.

◆ m_h_nsctvseta_rec

TProfile* Analysis_Tier0::m_h_nsctvseta_rec
private

Definition at line 128 of file Analysis_Tier0.h.

◆ m_h_nsctvsphi

TProfile* Analysis_Tier0::m_h_nsctvsphi
private

Definition at line 114 of file Analysis_Tier0.h.

◆ m_h_nsctvsphi_rec

TProfile* Analysis_Tier0::m_h_nsctvsphi_rec
private

Definition at line 129 of file Analysis_Tier0.h.

◆ m_h_nsctvspT

TProfile* Analysis_Tier0::m_h_nsctvspT
private

Definition at line 116 of file Analysis_Tier0.h.

◆ m_h_nsctvspT_rec

TProfile* Analysis_Tier0::m_h_nsctvspT_rec
private

Definition at line 131 of file Analysis_Tier0.h.

◆ m_h_nsihits

TH1F* Analysis_Tier0::m_h_nsihits
private

Definition at line 169 of file Analysis_Tier0.h.

◆ m_h_nsihits_lb

TProfile* Analysis_Tier0::m_h_nsihits_lb
private

Definition at line 121 of file Analysis_Tier0.h.

◆ m_h_nsihits_lb_rec

TProfile* Analysis_Tier0::m_h_nsihits_lb_rec
private

Definition at line 136 of file Analysis_Tier0.h.

◆ m_h_nsihits_rec

TH1F* Analysis_Tier0::m_h_nsihits_rec
private

Definition at line 190 of file Analysis_Tier0.h.

◆ m_h_ntrk

TH1F* Analysis_Tier0::m_h_ntrk
private

Definition at line 149 of file Analysis_Tier0.h.

◆ m_h_ntrk_rec

TH1F* Analysis_Tier0::m_h_ntrk_rec
private

Definition at line 172 of file Analysis_Tier0.h.

◆ m_h_ntrt

TH1F* Analysis_Tier0::m_h_ntrt
private

Definition at line 170 of file Analysis_Tier0.h.

◆ m_h_ntrt_rec

TH1F* Analysis_Tier0::m_h_ntrt_rec
private

Definition at line 191 of file Analysis_Tier0.h.

◆ m_h_ntrtvseta

TProfile* Analysis_Tier0::m_h_ntrtvseta
private

Definition at line 118 of file Analysis_Tier0.h.

◆ m_h_ntrtvseta_rec

TProfile* Analysis_Tier0::m_h_ntrtvseta_rec
private

Definition at line 133 of file Analysis_Tier0.h.

◆ m_h_ntrtvsphi

TProfile* Analysis_Tier0::m_h_ntrtvsphi
private

Definition at line 119 of file Analysis_Tier0.h.

◆ m_h_ntrtvsphi_rec

TProfile* Analysis_Tier0::m_h_ntrtvsphi_rec
private

Definition at line 134 of file Analysis_Tier0.h.

◆ m_h_nVtxeff

TProfile* Analysis_Tier0::m_h_nVtxeff
private

Definition at line 93 of file Analysis_Tier0.h.

◆ m_h_phieff

TProfile* Analysis_Tier0::m_h_phieff
private

Definition at line 90 of file Analysis_Tier0.h.

◆ m_h_phires

TProfile* Analysis_Tier0::m_h_phires
private

Definition at line 99 of file Analysis_Tier0.h.

◆ m_h_pTeff

TProfile* Analysis_Tier0::m_h_pTeff
private

Definition at line 88 of file Analysis_Tier0.h.

◆ m_h_pTres

TProfile* Analysis_Tier0::m_h_pTres
private

Definition at line 96 of file Analysis_Tier0.h.

◆ m_h_total_efficiency

TProfile* Analysis_Tier0::m_h_total_efficiency
private

Definition at line 87 of file Analysis_Tier0.h.

◆ m_h_trkd0

TH1F* Analysis_Tier0::m_h_trkd0
private

Definition at line 154 of file Analysis_Tier0.h.

◆ m_h_trkd0_rec

TH1F* Analysis_Tier0::m_h_trkd0_rec
private

Definition at line 180 of file Analysis_Tier0.h.

◆ m_h_trkd0_residual

TH1F* Analysis_Tier0::m_h_trkd0_residual
private

Definition at line 201 of file Analysis_Tier0.h.

◆ m_h_trkd0sig

TH1F* Analysis_Tier0::m_h_trkd0sig
private

Definition at line 165 of file Analysis_Tier0.h.

◆ m_h_trkd0sig_rec

TH1F* Analysis_Tier0::m_h_trkd0sig_rec
private

Definition at line 186 of file Analysis_Tier0.h.

◆ m_h_trkdd0

TH1F* Analysis_Tier0::m_h_trkdd0
private

Definition at line 162 of file Analysis_Tier0.h.

◆ m_h_trkdd0_rec

TH1F* Analysis_Tier0::m_h_trkdd0_rec
private

Definition at line 183 of file Analysis_Tier0.h.

◆ m_h_trkdd0_residual

TH1F* Analysis_Tier0::m_h_trkdd0_residual
private

Definition at line 204 of file Analysis_Tier0.h.

◆ m_h_trkdz0

TH1F* Analysis_Tier0::m_h_trkdz0
private

Definition at line 163 of file Analysis_Tier0.h.

◆ m_h_trkdz0_rec

TH1F* Analysis_Tier0::m_h_trkdz0_rec
private

Definition at line 184 of file Analysis_Tier0.h.

◆ m_h_trkdz0_residual

TH1F* Analysis_Tier0::m_h_trkdz0_residual
private

Definition at line 205 of file Analysis_Tier0.h.

◆ m_h_trketa

TH1F* Analysis_Tier0::m_h_trketa
private

Definition at line 152 of file Analysis_Tier0.h.

◆ m_h_trketa_rec

TH1F* Analysis_Tier0::m_h_trketa_rec
private

Definition at line 178 of file Analysis_Tier0.h.

◆ m_h_trketa_residual

TH1F* Analysis_Tier0::m_h_trketa_residual
private

Definition at line 199 of file Analysis_Tier0.h.

◆ m_h_trkipT_residual

TH1F* Analysis_Tier0::m_h_trkipT_residual
private

Definition at line 198 of file Analysis_Tier0.h.

◆ m_h_trkphi

TH1F* Analysis_Tier0::m_h_trkphi
private

Definition at line 153 of file Analysis_Tier0.h.

◆ m_h_trkphi_rec

TH1F* Analysis_Tier0::m_h_trkphi_rec
private

Definition at line 179 of file Analysis_Tier0.h.

◆ m_h_trkphi_residual

TH1F* Analysis_Tier0::m_h_trkphi_residual
private

Definition at line 200 of file Analysis_Tier0.h.

◆ m_h_trkpT

TH1F* Analysis_Tier0::m_h_trkpT
private

Definition at line 151 of file Analysis_Tier0.h.

◆ m_h_trkpT_rec

TH1F* Analysis_Tier0::m_h_trkpT_rec
private

Definition at line 177 of file Analysis_Tier0.h.

◆ m_h_trkpT_residual

TH1F* Analysis_Tier0::m_h_trkpT_residual
private

Definition at line 197 of file Analysis_Tier0.h.

◆ m_h_trkvtx_x_lb

TProfile* Analysis_Tier0::m_h_trkvtx_x_lb
private

Definition at line 103 of file Analysis_Tier0.h.

◆ m_h_trkvtx_y_lb

TProfile* Analysis_Tier0::m_h_trkvtx_y_lb
private

Definition at line 104 of file Analysis_Tier0.h.

◆ m_h_trkvtx_z_lb

TProfile* Analysis_Tier0::m_h_trkvtx_z_lb
private

Definition at line 105 of file Analysis_Tier0.h.

◆ m_h_trkz0

TH1F* Analysis_Tier0::m_h_trkz0
private

Definition at line 155 of file Analysis_Tier0.h.

◆ m_h_trkz0_rec

TH1F* Analysis_Tier0::m_h_trkz0_rec
private

Definition at line 181 of file Analysis_Tier0.h.

◆ m_h_trkz0_residual

TH1F* Analysis_Tier0::m_h_trkz0_residual
private

Definition at line 202 of file Analysis_Tier0.h.

◆ m_h_z0eff

TProfile* Analysis_Tier0::m_h_z0eff
private

Definition at line 92 of file Analysis_Tier0.h.

◆ m_h_z0res

TProfile* Analysis_Tier0::m_h_z0res
private

Definition at line 101 of file Analysis_Tier0.h.

◆ m_histos

std::map<std::string, TH1*> Analysis_Tier0::m_histos
private

Definition at line 84 of file Analysis_Tier0.h.

◆ m_monTool

ToolHandle<GenericMonitoringTool>* Analysis_Tier0::m_monTool
private

Definition at line 224 of file Analysis_Tier0.h.

◆ m_name

std::string TrackAnalysis::m_name
protectedinherited

identifier of the of the analysis - also used for the root directory into which the histograms are put

Definition at line 145 of file TrackAnalysis.h.

◆ m_nVtx

int Analysis_Tier0::m_nVtx
private

Definition at line 216 of file Analysis_Tier0.h.

◆ m_roi

TIDARoiDescriptor* TrackAnalysis::m_roi
protectedinherited

Definition at line 165 of file TrackAnalysis.h.

◆ m_store

TIDA::FeatureStore TrackAnalysis::m_store
protectedinherited

Definition at line 162 of file TrackAnalysis.h.

◆ m_vtxanal

VtxAnalysis* Analysis_Tier0::m_vtxanal
private

Definition at line 222 of file Analysis_Tier0.h.

◆ m_xBeamReference

double TrackAnalysis::m_xBeamReference
protectedinherited

beamline positions reference sample

Definition at line 153 of file TrackAnalysis.h.

◆ m_xBeamTest

double TrackAnalysis::m_xBeamTest
protectedinherited

test sample

Definition at line 158 of file TrackAnalysis.h.

◆ m_yBeamReference

double TrackAnalysis::m_yBeamReference
protectedinherited

Definition at line 154 of file TrackAnalysis.h.

◆ m_yBeamTest

double TrackAnalysis::m_yBeamTest
protectedinherited

Definition at line 159 of file TrackAnalysis.h.

◆ m_zBeamReference

double TrackAnalysis::m_zBeamReference
protectedinherited

Definition at line 155 of file TrackAnalysis.h.

◆ m_zBeamTest

double TrackAnalysis::m_zBeamTest
protectedinherited

Definition at line 160 of file TrackAnalysis.h.


The documentation for this class was generated from the following files: