CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
MaterialBudgetEcalHistos Class Reference

#include <MaterialBudgetEcalHistos.h>

Inheritance diagram for MaterialBudgetEcalHistos:
MaterialBudgetFormat

Public Member Functions

void fillEndTrack () override
 
void fillPerStep () override
 
void fillStartTrack () override
 
 MaterialBudgetEcalHistos (std::shared_ptr< MaterialBudgetData > data, std::shared_ptr< TestHistoMgr > mgr, const std::string &fileName)
 
 ~MaterialBudgetEcalHistos () override
 
- Public Member Functions inherited from MaterialBudgetFormat
 MaterialBudgetFormat (std::shared_ptr< MaterialBudgetData > data)
 
virtual ~MaterialBudgetFormat ()
 

Private Member Functions

virtual void book ()
 
virtual void hend ()
 

Private Attributes

std::shared_ptr< TestHistoMgrhmgr
 
int MAXNUMBERSTEPS
 
double * theDmb
 
double * theMateId
 
double * theVoluId
 
double * theX
 
double * theY
 
double * theZ
 

Additional Inherited Members

- Protected Attributes inherited from MaterialBudgetFormat
std::shared_ptr< MaterialBudgetDatatheData
 
std::string theFileName
 

Detailed Description

Definition at line 9 of file MaterialBudgetEcalHistos.h.

Constructor & Destructor Documentation

MaterialBudgetEcalHistos::MaterialBudgetEcalHistos ( std::shared_ptr< MaterialBudgetData data,
std::shared_ptr< TestHistoMgr mgr,
const std::string &  fileName 
)

Definition at line 7 of file MaterialBudgetEcalHistos.cc.

References book(), MillePedeFileConverter_cfg::fileName, and MaterialBudgetFormat::theFileName.

10 {
12  book();
13 }
std::shared_ptr< TestHistoMgr > hmgr
MaterialBudgetFormat(std::shared_ptr< MaterialBudgetData > data)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
MaterialBudgetEcalHistos::~MaterialBudgetEcalHistos ( )
inlineoverride

Definition at line 16 of file MaterialBudgetEcalHistos.h.

References book(), fillEndTrack(), fillPerStep(), fillStartTrack(), and hend().

16 { hend(); }

Member Function Documentation

void MaterialBudgetEcalHistos::book ( )
privatevirtual

Definition at line 16 of file MaterialBudgetEcalHistos.cc.

References gather_cfg::cout, and hmgr.

Referenced by MaterialBudgetEcalHistos(), and ~MaterialBudgetEcalHistos().

17 {
18  std::cout << "=== booking user histos ===" << std::endl;
19 
20  // total X0
21  hmgr->addHistoProf1( new TProfile("10", "MB prof Eta ", 250, -5., 5. ) );
22  hmgr->addHisto1( new TH1F("11", "Eta " , 501, -5., 5. ) );
23  hmgr->addHistoProf1( new TProfile("20", "MB prof Phi ", 180, -3.1416, 3.1416 ) );
24  hmgr->addHisto1( new TH1F("21", "Phi " , 180, -3.1416, 3.1416 ) );
25  hmgr->addHistoProf2( new TProfile2D("30", "MB prof Eta Phi ", 250, -5., 5., 180, -3.1416, 3.1416 ) );
26  hmgr->addHisto2( new TH2F("31", "Eta vs Phi " , 501, -5., 5., 180, -3.1416, 3.1416 ) );
27 
28  // rr
29 
30  // Support
31  hmgr->addHistoProf1( new TProfile("110", "MB prof Eta [Support]", 250, -5.0, 5.0 ) );
32  hmgr->addHisto1( new TH1F("111", "Eta [Support]" , 501, -5., 5. ) );
33  hmgr->addHistoProf1( new TProfile("120", "MB prof Phi [Support]", 180, -3.1416, 3.1416 ) );
34  hmgr->addHisto1( new TH1F("121", "Phi [Support]" , 180, -3.1416, 3.1416 ) );
35  hmgr->addHistoProf2( new TProfile2D("130", "MB prof Eta Phi [Support]", 250, -5., 5., 180, -3.1416, 3.1416 ) );
36  hmgr->addHisto2( new TH2F("131", "Eta vs Phi [Support]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
37  // Sensitive
38  hmgr->addHistoProf1( new TProfile("210", "MB prof Eta [Sensitive]", 250, -5.0, 5.0 ) );
39  hmgr->addHisto1( new TH1F("211", "Eta [Sensitive]" , 501, -5., 5. ) );
40  hmgr->addHistoProf1( new TProfile("220", "MB prof Phi [Sensitive]", 180, -3.1416, 3.1416 ) );
41  hmgr->addHisto1( new TH1F("221", "Phi [Sensitive]" , 180, -3.1416, 3.1416 ) );
42  hmgr->addHistoProf2( new TProfile2D("230", "MB prof Eta Phi [Sensitive]", 250, -5., 5., 180, -3.1416, 3.1416 ) );
43  hmgr->addHisto2( new TH2F("231", "Eta vs Phi [Sensitive]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
44  // Cables
45  hmgr->addHistoProf1( new TProfile("310", "MB prof Eta [Cables]", 250, -5.0, 5.0 ) );
46  hmgr->addHisto1( new TH1F("311", "Eta [Cables]" , 501, -5., 5. ) );
47  hmgr->addHistoProf1( new TProfile("320", "MB prof Phi [Cables]", 180, -3.1416, 3.1416 ) );
48  hmgr->addHisto1( new TH1F("321", "Phi [Cables]" , 180, -3.1416, 3.1416 ) );
49  hmgr->addHistoProf2( new TProfile2D("330", "MB prof Eta Phi [Cables]", 250, -5., 5., 180, -3.1416, 3.1416 ) );
50  hmgr->addHisto2( new TH2F("331", "Eta vs Phi [Cables]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
51  // Cooling
52  hmgr->addHistoProf1( new TProfile("410", "MB prof Eta [Cooling]", 250, -5.0, 5.0 ) );
53  hmgr->addHisto1( new TH1F("411", "Eta [Cooling]" , 501, -5., 5. ) );
54  hmgr->addHistoProf1( new TProfile("420", "MB prof Phi [Cooling]", 180, -3.1416, 3.1416 ) );
55  hmgr->addHisto1( new TH1F("421", "Phi [Cooling]" , 180, -3.1416, 3.1416 ) );
56  hmgr->addHistoProf2( new TProfile2D("430", "MB prof Eta Phi [Cooling]", 250, -5., 5., 180, -3.1416, 3.1416 ) );
57  hmgr->addHisto2( new TH2F("431", "Eta vs Phi [Cooling]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
58  // Electronics
59  hmgr->addHistoProf1( new TProfile("510", "MB prof Eta [Electronics]", 250, -5.0, 5.0 ) );
60  hmgr->addHisto1( new TH1F("511", "Eta [Electronics]" , 501, -5., 5. ) );
61  hmgr->addHistoProf1( new TProfile("520", "MB prof Phi [Electronics]", 180, -3.1416, 3.1416 ) );
62  hmgr->addHisto1( new TH1F("521", "Phi [Electronics]" , 180, -3.1416, 3.1416 ) );
63  hmgr->addHistoProf2( new TProfile2D("530", "MB prof Eta Phi [Electronics]", 250, -5., 5., 180, -3.1416, 3.1416 ) );
64  hmgr->addHisto2( new TH2F("531", "Eta vs Phi [Electronics]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
65  // Other
66  hmgr->addHistoProf1( new TProfile("610", "MB prof Eta [Other]", 250, -5.0, 5.0 ) );
67  hmgr->addHisto1( new TH1F("611", "Eta [Other]" , 501, -5., 5. ) );
68  hmgr->addHistoProf1( new TProfile("620", "MB prof Phi [Other]", 180, -3.1416, 3.1416 ) );
69  hmgr->addHisto1( new TH1F("621", "Phi [Other]" , 180, -3.1416, 3.1416 ) );
70  hmgr->addHistoProf2( new TProfile2D("630", "MB prof Eta Phi [Other]", 250, -5., 5., 180, -3.1416, 3.1416 ) );
71  hmgr->addHisto2( new TH2F("631", "Eta vs Phi [Other]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
72  // Air
73  hmgr->addHistoProf1( new TProfile("710", "MB prof Eta [Air]", 250, -5.0, 5.0 ) );
74  hmgr->addHisto1( new TH1F("711", "Eta [Air]" , 501, -5., 5. ) );
75  hmgr->addHistoProf1( new TProfile("720", "MB prof Phi [Air]", 180, -3.1416, 3.1416 ) );
76  hmgr->addHisto1( new TH1F("721", "Phi [Air]" , 180, -3.1416, 3.1416 ) );
77  hmgr->addHistoProf2( new TProfile2D("730", "MB prof Eta Phi [Air]", 250, -5., 5., 180, -3.1416, 3.1416 ) );
78  hmgr->addHisto2( new TH2F("731", "Eta vs Phi [Air]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
79  //
80 
81  // ECAL specific
82 
83  hmgr->addHistoProf1( new TProfile("1001", "MB prof Eta ECAL Barrel", 340, -1.5, 1.5 ) );
84  hmgr->addHistoProf1( new TProfile("1002", "MB prof Phi ECAL Barrel", 180, -3.1416, 3.1416 ) );
85  hmgr->addHistoProf1( new TProfile("1003", "MB prof Phi ECAL Barrel SM", 20, 0., 20. ) );
86  hmgr->addHistoProf1( new TProfile("2003", "MB prof Phi ECAL Barrel SM", 10, 0., 20. ) );
87  hmgr->addHistoProf1( new TProfile("1004", "MB prof Phi ECAL Barrel SM module 1", 20, 0., 20. ) );
88  hmgr->addHistoProf1( new TProfile("1005", "MB prof Phi ECAL Barrel SM module 2", 20, 0., 20. ) );
89  hmgr->addHistoProf1( new TProfile("1006", "MB prof Phi ECAL Barrel SM module 3", 20, 0., 20. ) );
90  hmgr->addHistoProf1( new TProfile("1007", "MB prof Phi ECAL Barrel SM module 4", 20, 0., 20. ) );
91 
92  hmgr->addHistoProf1( new TProfile("1011", "MB prof Eta ECAL Preshower +", 100, 1.65, 2.6 ) );
93  hmgr->addHistoProf1( new TProfile("1012", "MB prof Phi ECAL Preshower +", 180, -3.1416, 3.1416 ) );
94 
95  hmgr->addHistoProf1( new TProfile("1013", "MB prof Eta ECAL Preshower -", 100, -2.6, -1.65 ) );
96  hmgr->addHistoProf1( new TProfile("1014", "MB prof Phi ECAL Preshower -", 180, -3.1416, 3.1416 ) );
97 
98 
99  // rr
100 
101  std::cout << "=== booking user histos done ===" << std::endl;
102 
103 }
std::shared_ptr< TestHistoMgr > hmgr
void MaterialBudgetEcalHistos::fillEndTrack ( )
overridevirtual

Implements MaterialBudgetFormat.

Definition at line 118 of file MaterialBudgetEcalHistos.cc.

References hmgr, M_PI, phi, and MaterialBudgetFormat::theData.

Referenced by ~MaterialBudgetEcalHistos().

119 {
120  // Total X0
121  hmgr->getHisto1(11)->Fill(theData->getEta());
122  hmgr->getHisto1(21)->Fill(theData->getPhi());
123  hmgr->getHisto2(31)->Fill(theData->getEta(),theData->getPhi());
124 
125  hmgr->getHistoProf1(10)->Fill(theData->getEta(),theData->getTotalMB());
126  hmgr->getHistoProf1(20)->Fill(theData->getPhi(),theData->getTotalMB());
127  hmgr->getHistoProf2(30)->Fill(theData->getEta(),theData->getPhi(),theData->getTotalMB());
128 
129 
130  // ECAL specific
131 
132  if (fabs(theData->getEta()) <= 1.479 ) {
133  static const double twenty ( 20.*degree ) ;
134  const double phi ( theData->getPhi()+M_PI ) ;
135  const double phiModTwenty (( phi - floor(phi/twenty)*twenty )/degree) ;
136  hmgr->getHistoProf1(1001)->Fill(theData->getEta(),theData->getTotalMB());
137  hmgr->getHistoProf1(1002)->Fill(theData->getPhi(),theData->getTotalMB());
138  hmgr->getHistoProf1(1003)->Fill(phiModTwenty,theData->getTotalMB());
139  hmgr->getHistoProf1(2003)->Fill(phiModTwenty,theData->getTotalMB());
140  if (fabs(theData->getEta()) >= 0. && fabs(theData->getEta()) < 0.435 ) {
141  hmgr->getHistoProf1(1004)->Fill(phiModTwenty,theData->getTotalMB());
142  }
143  if (fabs(theData->getEta()) >= 0.435 && fabs(theData->getEta()) < 0.783 ) {
144  hmgr->getHistoProf1(1005)->Fill(phiModTwenty,theData->getTotalMB());
145  }
146  if (fabs(theData->getEta()) > 0.783 && fabs(theData->getEta()) <= 1.131 ) {
147  hmgr->getHistoProf1(1006)->Fill(phiModTwenty,theData->getTotalMB());
148  }
149  if (fabs(theData->getEta()) > 1.131 && fabs(theData->getEta()) <= 1.479 ) {
150  hmgr->getHistoProf1(1007)->Fill(phiModTwenty,theData->getTotalMB());
151  }
152 
153  }
154 
155  if (theData->getEta() >= 1.653 && theData->getEta() <= 2.6 ) {
156  hmgr->getHistoProf1(1011)->Fill(theData->getEta(),theData->getTotalMB());
157  hmgr->getHistoProf1(1012)->Fill(theData->getPhi(),theData->getTotalMB());
158  }
159 
160  if (theData->getEta() >= -2.6 && theData->getEta() <= -1.653 ) {
161  hmgr->getHistoProf1(1013)->Fill(theData->getEta(),theData->getTotalMB());
162  hmgr->getHistoProf1(1014)->Fill(theData->getPhi(),theData->getTotalMB());
163  }
164 
165 
166  // rr
167 }
std::shared_ptr< TestHistoMgr > hmgr
#define M_PI
std::shared_ptr< MaterialBudgetData > theData
void MaterialBudgetEcalHistos::fillPerStep ( )
overridevirtual

Implements MaterialBudgetFormat.

Definition at line 112 of file MaterialBudgetEcalHistos.cc.

Referenced by ~MaterialBudgetEcalHistos().

113 {
114 
115 }
void MaterialBudgetEcalHistos::fillStartTrack ( )
overridevirtual

Implements MaterialBudgetFormat.

Definition at line 106 of file MaterialBudgetEcalHistos.cc.

Referenced by ~MaterialBudgetEcalHistos().

107 {
108 
109 }
void MaterialBudgetEcalHistos::hend ( )
privatevirtual

Definition at line 170 of file MaterialBudgetEcalHistos.cc.

References gather_cfg::cout, hmgr, and MaterialBudgetFormat::theFileName.

Referenced by ~MaterialBudgetEcalHistos().

171 {
172  std::cout << "=== save user histos ===" << std::endl;
173  hmgr->save( theFileName );
174 
175 }
std::shared_ptr< TestHistoMgr > hmgr

Member Data Documentation

std::shared_ptr<TestHistoMgr> MaterialBudgetEcalHistos::hmgr
private

Definition at line 37 of file MaterialBudgetEcalHistos.h.

Referenced by book(), fillEndTrack(), and hend().

int MaterialBudgetEcalHistos::MAXNUMBERSTEPS
private

Definition at line 29 of file MaterialBudgetEcalHistos.h.

double* MaterialBudgetEcalHistos::theDmb
private

Definition at line 30 of file MaterialBudgetEcalHistos.h.

double* MaterialBudgetEcalHistos::theMateId
private

Definition at line 35 of file MaterialBudgetEcalHistos.h.

double* MaterialBudgetEcalHistos::theVoluId
private

Definition at line 34 of file MaterialBudgetEcalHistos.h.

double* MaterialBudgetEcalHistos::theX
private

Definition at line 31 of file MaterialBudgetEcalHistos.h.

double* MaterialBudgetEcalHistos::theY
private

Definition at line 32 of file MaterialBudgetEcalHistos.h.

double* MaterialBudgetEcalHistos::theZ
private

Definition at line 33 of file MaterialBudgetEcalHistos.h.