CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
MaterialBudgetTrackerHistos Class Reference

#include <MaterialBudgetTrackerHistos.h>

Inheritance diagram for MaterialBudgetTrackerHistos:
MaterialBudgetFormat

Public Member Functions

virtual void fillEndTrack ()
 
virtual void fillPerStep ()
 
virtual void fillStartTrack ()
 
 MaterialBudgetTrackerHistos (MaterialBudgetData *data, TestHistoMgr *mgr, const std::string &fileName)
 
virtual ~MaterialBudgetTrackerHistos ()
 
- Public Member Functions inherited from MaterialBudgetFormat
 MaterialBudgetFormat (MaterialBudgetData *data)
 
virtual ~MaterialBudgetFormat ()
 

Private Member Functions

virtual void book ()
 
virtual void hend ()
 

Private Attributes

TestHistoMgrhmgr
 
int MAXNUMBERSTEPS
 
double * theDmb
 
double * theMateId
 
double * theVoluId
 
double * theX
 
double * theY
 
double * theZ
 

Additional Inherited Members

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

Detailed Description

Definition at line 7 of file MaterialBudgetTrackerHistos.h.

Constructor & Destructor Documentation

MaterialBudgetTrackerHistos::MaterialBudgetTrackerHistos ( MaterialBudgetData data,
TestHistoMgr mgr,
const std::string &  fileName 
)
virtual MaterialBudgetTrackerHistos::~MaterialBudgetTrackerHistos ( )
inlinevirtual

Definition at line 14 of file MaterialBudgetTrackerHistos.h.

References hend().

Member Function Documentation

void MaterialBudgetTrackerHistos::book ( )
privatevirtual

Definition at line 20 of file MaterialBudgetTrackerHistos.cc.

References TestHistoMgr::addHisto1(), TestHistoMgr::addHisto2(), TestHistoMgr::addHistoProf1(), TestHistoMgr::addHistoProf2(), gather_cfg::cout, and hmgr.

Referenced by MaterialBudgetTrackerHistos().

21 {
22  std::cout << "=== booking user histos ===" << std::endl;
23 
24  // Parameters for 2D histograms
25  int nzbin = 1200;
26  float zMax = 3000.;
27  float zMin = -3000.;
28  int nrbin = 290;
29  float rMin = -50.;
30  float rMax = 1400.;
31 
32  // total X0
33  hmgr->addHistoProf1( new TProfile("10", "MB prof Eta;#eta;x/X_{0} ", 250, -5., 5. ) );
34  hmgr->addHisto1( new TH1F("11", "Eta " , 501, -5., 5. ) );
35  hmgr->addHistoProf1( new TProfile("20", "MB prof Phi;#varphi [rad];x/X_{0} ", 180, -3.1416, 3.1416 ) );
36  hmgr->addHisto1( new TH1F("21", "Phi " , 180, -3.1416, 3.1416 ) );
37  hmgr->addHistoProf2( new TProfile2D("30", "MB prof Eta Phi;#eta;#varphi;x/X_{0} ", 250, -5., 5., 180, -3.1416, 3.1416 ) );
38  hmgr->addHisto2( new TH2F("31", "Eta vs Phi " , 501, -5., 5., 180, -3.1416, 3.1416 ) );
39  hmgr->addHistoProf1( new TProfile("40", "MB prof R;R [mm];x/X_{0} ", 200, 0., 2000. ) );
40  hmgr->addHisto1( new TH1F("41", "R " , 200, 0., 2000. ) );
41  hmgr->addHistoProf2( new TProfile2D("50", "MB prof sum R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
42  hmgr->addHisto2( new TH2F("999", "Tot track length for MB", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
43  hmgr->addHisto2( new TH2F("51", "R vs z " , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
44  hmgr->addHisto2( new TH2F("60", "MB prof local R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
45  hmgr->addHisto2( new TH2F("61", "R vs z " , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
46 
47  // Support
48  hmgr->addHistoProf1( new TProfile("110", "MB prof Eta [Support];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
49  hmgr->addHisto1( new TH1F("111", "Eta [Support]" , 501, -5., 5. ) );
50  hmgr->addHistoProf1( new TProfile("120", "MB prof Phi [Support];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
51  hmgr->addHisto1( new TH1F("121", "Phi [Support]" , 180, -3.1416, 3.1416 ) );
52  hmgr->addHistoProf2( new TProfile2D("130", "MB prof Eta Phi [Support];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
53  hmgr->addHisto2( new TH2F("131", "Eta vs Phi [Support]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
54  hmgr->addHistoProf1( new TProfile("140", "MB prof R [Support];R [mm];x/X_{0}", 200, 0., 2000. ) );
55  hmgr->addHisto1( new TH1F("141", "R [Support]" , 200, 0., 2000. ) );
56  hmgr->addHistoProf2( new TProfile2D("150", "MB prof sum R z [Support];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
57  hmgr->addHisto2( new TH2F("151", "R vs z [Support]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
58  hmgr->addHisto2( new TH2F("160", "MB prof local R z [Support];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
59  hmgr->addHisto2( new TH2F("161", "R vs z [Support]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
60  // Sensitive
61  hmgr->addHistoProf1( new TProfile("210", "MB prof Eta [Sensitive];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
62  hmgr->addHisto1( new TH1F("211", "Eta [Sensitive]" , 501, -5., 5. ) );
63  hmgr->addHistoProf1( new TProfile("220", "MB prof Phi [Sensitive];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
64  hmgr->addHisto1( new TH1F("221", "Phi [Sensitive]" , 180, -3.1416, 3.1416 ) );
65  hmgr->addHistoProf2( new TProfile2D("230", "MB prof Eta Phi [Sensitive];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
66  hmgr->addHisto2( new TH2F("231", "Eta vs Phi [Sensitive]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
67  hmgr->addHistoProf1( new TProfile("240", "MB prof R [Sensitive];R [mm];x/X_{0}", 200, 0., 2000. ) );
68  hmgr->addHisto1( new TH1F("241", "R [Sensitive]" , 200, 0., 2000. ) );
69  hmgr->addHistoProf2( new TProfile2D("250", "MB prof sum R z [Sensitive];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
70  hmgr->addHisto2( new TH2F("251", "R vs z [Sensitive]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
71  hmgr->addHisto2( new TH2F("260", "MB prof local R z [Sensitive];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
72  hmgr->addHisto2( new TH2F("261", "R vs z [Sensitive]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
73  // Cables
74  hmgr->addHistoProf1( new TProfile("310", "MB prof Eta [Cables];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
75  hmgr->addHisto1( new TH1F("311", "Eta [Cables]" , 501, -5., 5. ) );
76  hmgr->addHistoProf1( new TProfile("320", "MB prof Phi [Cables];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
77  hmgr->addHisto1( new TH1F("321", "Phi [Cables]" , 180, -3.1416, 3.1416 ) );
78  hmgr->addHistoProf2( new TProfile2D("330", "MB prof Eta Phi [Cables];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
79  hmgr->addHisto2( new TH2F("331", "Eta vs Phi [Cables]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
80  hmgr->addHistoProf1( new TProfile("340", "MB prof R [Cables];R [mm];x/X_{0}", 200, 0., 2000. ) );
81  hmgr->addHisto1( new TH1F("341", "R [Cables]" , 200, 0., 2000. ) );
82  hmgr->addHistoProf2( new TProfile2D("350", "MB prof sum R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
83  hmgr->addHisto2( new TH2F("351", "R vs z [Cables]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
84  hmgr->addHisto2( new TH2F("360", "MB prof local R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
85  hmgr->addHisto2( new TH2F("361", "R vs z [Cables]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
86  // Cooling
87  hmgr->addHistoProf1( new TProfile("410", "MB prof Eta [Cooling];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
88  hmgr->addHisto1( new TH1F("411", "Eta [Cooling]" , 501, -5., 5. ) );
89  hmgr->addHistoProf1( new TProfile("420", "MB prof Phi [Cooling];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
90  hmgr->addHisto1( new TH1F("421", "Phi [Cooling]" , 180, -3.1416, 3.1416 ) );
91  hmgr->addHistoProf2( new TProfile2D("430", "MB prof Eta Phi [Cooling];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
92  hmgr->addHisto2( new TH2F("431", "Eta vs Phi [Cooling]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
93  hmgr->addHistoProf1( new TProfile("440", "MB prof R [Cooling];R [mm];x/X_{0}", 200, 0., 2000. ) );
94  hmgr->addHisto1( new TH1F("441", "R [Cooling]" , 200, 0., 2000. ) );
95  hmgr->addHistoProf2( new TProfile2D("450", "MB prof sum R z [Cooling];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
96  hmgr->addHisto2( new TH2F("451", "R vs z [Cooling]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
97  hmgr->addHisto2( new TH2F("460", "MB prof local R z [Cooling];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
98  hmgr->addHisto2( new TH2F("461", "R vs z [Cooling]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
99  // Electronics
100  hmgr->addHistoProf1( new TProfile("510", "MB prof Eta [Electronics];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
101  hmgr->addHisto1( new TH1F("511", "Eta [Electronics]" , 501, -5., 5. ) );
102  hmgr->addHistoProf1( new TProfile("520", "MB prof Phi [Electronics];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
103  hmgr->addHisto1( new TH1F("521", "Phi [Electronics]" , 180, -3.1416, 3.1416 ) );
104  hmgr->addHistoProf2( new TProfile2D("530", "MB prof Eta Phi [Electronics];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
105  hmgr->addHisto2( new TH2F("531", "Eta vs Phi [Electronics]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
106  hmgr->addHistoProf1( new TProfile("540", "MB prof R [Electronics];R [mm];x/X_{0}", 200, 0., 2000. ) );
107  hmgr->addHisto1( new TH1F("541", "R [Electronics]" , 200, 0., 2000. ) );
108  hmgr->addHistoProf2( new TProfile2D("550", "MB prof sum R z [Electronics];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
109  hmgr->addHisto2( new TH2F("551", "R vs z [Electronics]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
110  hmgr->addHisto2( new TH2F("560", "MB prof local R z [Electronics];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
111  hmgr->addHisto2( new TH2F("561", "R vs z [Electronics]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
112  // Other
113  hmgr->addHistoProf1( new TProfile("610", "MB prof Eta [Other];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
114  hmgr->addHisto1( new TH1F("611", "Eta [Other]" , 501, -5., 5. ) );
115  hmgr->addHistoProf1( new TProfile("620", "MB prof Phi [Other];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
116  hmgr->addHisto1( new TH1F("621", "Phi [Other]" , 180, -3.1416, 3.1416 ) );
117  hmgr->addHistoProf2( new TProfile2D("630", "MB prof Eta Phi [Other];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
118  hmgr->addHisto2( new TH2F("631", "Eta vs Phi [Other]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
119  hmgr->addHistoProf1( new TProfile("640", "MB prof R [Other];R [mm];x/X_{0}", 200, 0., 2000. ) );
120  hmgr->addHisto1( new TH1F("641", "R [Other]" , 200, 0., 2000. ) );
121  hmgr->addHistoProf2( new TProfile2D("650", "MB prof sum R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
122  hmgr->addHisto2( new TH2F("651", "R vs z [Other]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
123  hmgr->addHisto2( new TH2F("660", "MB prof local R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
124  hmgr->addHisto2( new TH2F("661", "R vs z [Other]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
125  // Air
126  hmgr->addHistoProf1( new TProfile("710", "MB prof Eta [Air];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
127  hmgr->addHisto1( new TH1F("711", "Eta [Air]" , 501, -5., 5. ) );
128  hmgr->addHistoProf1( new TProfile("720", "MB prof Phi [Air];#varphi [rad];x/X_{0}", 180, -3.1416, 3.1416 ) );
129  hmgr->addHisto1( new TH1F("721", "Phi [Air]" , 180, -3.1416, 3.1416 ) );
130  hmgr->addHistoProf2( new TProfile2D("730", "MB prof Eta Phi [Air];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
131  hmgr->addHisto2( new TH2F("731", "Eta vs Phi [Air]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
132  hmgr->addHistoProf1( new TProfile("740", "MB prof R [Air];R [mm];x/X_{0}", 200, 0., 2000. ) );
133  hmgr->addHisto1( new TH1F("741", "R [Air]" , 200, 0., 2000. ) );
134  hmgr->addHistoProf2( new TProfile2D("750", "MB prof sum R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
135  hmgr->addHisto2( new TH2F("751", "R vs z [Air]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
136  hmgr->addHisto2( new TH2F("760", "MB prof local R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
137  hmgr->addHisto2( new TH2F("761", "R vs z [Air]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
138  //
139 
140  // total Lambda0
141  hmgr->addHistoProf1( new TProfile("1010", "MB prof Eta;#eta;#lambda/#lambda_{0} ", 250, -5., 5. ) );
142  hmgr->addHisto1( new TH1F("1011", "Eta " , 501, -5., 5. ) );
143  hmgr->addHistoProf1( new TProfile("1020", "MB prof Phi;#varphi [rad];#lambda/#lambda_{0} ", 180, -3.1416, 3.1416 ) );
144  hmgr->addHisto1( new TH1F("1021", "Phi " , 180, -3.1416, 3.1416 ) );
145  hmgr->addHistoProf2( new TProfile2D("1030", "MB prof Eta Phi;#eta;#varphi;#lambda/#lambda_{0} ", 250, -5., 5., 180, -3.1416, 3.1416 ) );
146  hmgr->addHisto2( new TH2F("1031", "Eta vs Phi " , 501, -5., 5., 180, -3.1416, 3.1416 ) );
147 
148  // rr
149  hmgr->addHistoProf1( new TProfile("1040", "MB prof R;R [mm];#lambda/#lambda_{0} ", 200, 0., 2000. ) );
150  hmgr->addHisto1( new TH1F("1041", "R " , 200, 0., 2000. ) );
151  hmgr->addHistoProf2( new TProfile2D("1050", "MB prof sum R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
152  hmgr->addHisto2( new TH2F("1999", "Tot track length for l0", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
153  hmgr->addHisto2( new TH2F("1051", "R vs z " , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
154  hmgr->addHisto2( new TH2F("1060", "MB prof local R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
155  hmgr->addHisto2( new TH2F("1061", "R vs z " , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
156 
157  // Support
158  hmgr->addHistoProf1( new TProfile("1110", "MB prof Eta [Support];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
159  hmgr->addHisto1( new TH1F("1111", "Eta [Support]" , 501, -5., 5. ) );
160  hmgr->addHistoProf1( new TProfile("1120", "MB prof Phi [Support];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
161  hmgr->addHisto1( new TH1F("1121", "Phi [Support]" , 180, -3.1416, 3.1416 ) );
162  hmgr->addHistoProf2( new TProfile2D("1130", "MB prof Eta Phi [Support];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
163  hmgr->addHisto2( new TH2F("1131", "Eta vs Phi [Support]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
164  hmgr->addHistoProf1( new TProfile("1140", "MB prof R [Support];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
165  hmgr->addHisto1( new TH1F("1141", "R [Support]" , 200, 0., 2000. ) );
166  hmgr->addHistoProf2( new TProfile2D("1150", "MB prof sum R z [Support];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
167  hmgr->addHisto2( new TH2F("1151", "R vs z [Support]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
168  hmgr->addHisto2( new TH2F("1160", "MB prof local R z [Support];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
169  hmgr->addHisto2( new TH2F("1161", "R vs z [Support]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
170  // Sensitive
171  hmgr->addHistoProf1( new TProfile("1210", "MB prof Eta [Sensitive];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
172  hmgr->addHisto1( new TH1F("1211", "Eta [Sensitive]" , 501, -5., 5. ) );
173  hmgr->addHistoProf1( new TProfile("1220", "MB prof Phi [Sensitive];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
174  hmgr->addHisto1( new TH1F("1221", "Phi [Sensitive]" , 180, -3.1416, 3.1416 ) );
175  hmgr->addHistoProf2( new TProfile2D("1230", "MB prof Eta Phi [Sensitive];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
176  hmgr->addHisto2( new TH2F("1231", "Eta vs Phi [Sensitive]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
177  hmgr->addHistoProf1( new TProfile("1240", "MB prof R [Sensitive];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
178  hmgr->addHisto1( new TH1F("1241", "R [Sensitive]" , 200, 0., 2000. ) );
179  hmgr->addHistoProf2( new TProfile2D("1250", "MB prof sum R z [Sensitive];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
180  hmgr->addHisto2( new TH2F("1251", "R vs z [Sensitive]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
181  hmgr->addHisto2( new TH2F("1260", "MB prof local R z [Sensitive];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
182  hmgr->addHisto2( new TH2F("1261", "R vs z [Sensitive]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
183  // Cables
184  hmgr->addHistoProf1( new TProfile("1310", "MB prof Eta [Cables];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
185  hmgr->addHisto1( new TH1F("1311", "Eta [Cables]" , 501, -5., 5. ) );
186  hmgr->addHistoProf1( new TProfile("1320", "MB prof Phi [Cables];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
187  hmgr->addHisto1( new TH1F("1321", "Phi [Cables]" , 180, -3.1416, 3.1416 ) );
188  hmgr->addHistoProf2( new TProfile2D("1330", "MB prof Eta Phi [Cables];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
189  hmgr->addHisto2( new TH2F("1331", "Eta vs Phi [Cables]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
190  hmgr->addHistoProf1( new TProfile("1340", "MB prof R [Cables];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
191  hmgr->addHisto1( new TH1F("1341", "R [Cables]" , 200, 0., 2000. ) );
192  hmgr->addHistoProf2( new TProfile2D("1350", "MB prof sum R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
193  hmgr->addHisto2( new TH2F("1351", "R vs z [Cables]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
194  hmgr->addHisto2( new TH2F("1360", "MB prof local R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
195  hmgr->addHisto2( new TH2F("1361", "R vs z [Cables]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
196  // Cooling
197  hmgr->addHistoProf1( new TProfile("1410", "MB prof Eta [Cooling];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
198  hmgr->addHisto1( new TH1F("1411", "Eta [Cooling]" , 501, -5., 5. ) );
199  hmgr->addHistoProf1( new TProfile("1420", "MB prof Phi [Cooling];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
200  hmgr->addHisto1( new TH1F("1421", "Phi [Cooling]" , 180, -3.1416, 3.1416 ) );
201  hmgr->addHistoProf2( new TProfile2D("1430", "MB prof Eta Phi [Cooling];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
202  hmgr->addHisto2( new TH2F("1431", "Eta vs Phi [Cooling]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
203  hmgr->addHistoProf1( new TProfile("1440", "MB prof R [Cooling];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
204  hmgr->addHisto1( new TH1F("1441", "R [Cooling]" , 200, 0., 2000. ) );
205  hmgr->addHistoProf2( new TProfile2D("1450", "MB prof sum R z [Cooling];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
206  hmgr->addHisto2( new TH2F("1451", "R vs z [Cooling]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
207  hmgr->addHisto2( new TH2F("1460", "MB prof local R z [Cooling];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
208  hmgr->addHisto2( new TH2F("1461", "R vs z [Cooling]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
209  // Electronics
210  hmgr->addHistoProf1( new TProfile("1510", "MB prof Eta [Electronics];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
211  hmgr->addHisto1( new TH1F("1511", "Eta [Electronics]" , 501, -5., 5. ) );
212  hmgr->addHistoProf1( new TProfile("1520", "MB prof Phi [Electronics];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
213  hmgr->addHisto1( new TH1F("1521", "Phi [Electronics]" , 180, -3.1416, 3.1416 ) );
214  hmgr->addHistoProf2( new TProfile2D("1530", "MB prof Eta Phi [Electronics];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
215  hmgr->addHisto2( new TH2F("1531", "Eta vs Phi [Electronics]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
216  hmgr->addHistoProf1( new TProfile("1540", "MB prof R [Electronics];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
217  hmgr->addHisto1( new TH1F("1541", "R [Electronics]" , 200, 0., 2000. ) );
218  hmgr->addHistoProf2( new TProfile2D("1550", "MB prof sum R z [Electronics];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
219  hmgr->addHisto2( new TH2F("1551", "R vs z [Electronics]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
220  hmgr->addHisto2( new TH2F("1560", "MB prof local R z [Electronics];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
221  hmgr->addHisto2( new TH2F("1561", "R vs z [Electronics]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
222  // Other
223  hmgr->addHistoProf1( new TProfile("1610", "MB prof Eta [Other];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
224  hmgr->addHisto1( new TH1F("1611", "Eta [Other]" , 501, -5., 5. ) );
225  hmgr->addHistoProf1( new TProfile("1620", "MB prof Phi [Other];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
226  hmgr->addHisto1( new TH1F("1621", "Phi [Other]" , 180, -3.1416, 3.1416 ) );
227  hmgr->addHistoProf2( new TProfile2D("1630", "MB prof Eta Phi [Other];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
228  hmgr->addHisto2( new TH2F("1631", "Eta vs Phi [Other]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
229  hmgr->addHistoProf1( new TProfile("1640", "MB prof R [Other];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
230  hmgr->addHisto1( new TH1F("1641", "R [Other]" , 200, 0., 2000. ) );
231  hmgr->addHistoProf2( new TProfile2D("1650", "MB prof sum R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
232  hmgr->addHisto2( new TH2F("1651", "R vs z [Other]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
233  hmgr->addHisto2( new TH2F("1660", "MB prof local R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
234  hmgr->addHisto2( new TH2F("1661", "R vs z [Other]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
235  // Air
236  hmgr->addHistoProf1( new TProfile("1710", "MB prof Eta [Air];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
237  hmgr->addHisto1( new TH1F("1711", "Eta [Air]" , 501, -5., 5. ) );
238  hmgr->addHistoProf1( new TProfile("1720", "MB prof Phi [Air];#varphi [rad];#lambda/#lambda_{0}", 180, -3.1416, 3.1416 ) );
239  hmgr->addHisto1( new TH1F("1721", "Phi [Air]" , 180, -3.1416, 3.1416 ) );
240  hmgr->addHistoProf2( new TProfile2D("1730", "MB prof Eta Phi [Air];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.1416, 3.1416 ) );
241  hmgr->addHisto2( new TH2F("1731", "Eta vs Phi [Air]" , 501, -5., 5., 180, -3.1416, 3.1416 ) );
242  hmgr->addHistoProf1( new TProfile("1740", "MB prof R [Air];R [mm];#lambda/#lambda_{0}", 200, 0., 2000. ) );
243  hmgr->addHisto1( new TH1F("1741", "R [Air]" , 200, 0., 2000. ) );
244  hmgr->addHistoProf2( new TProfile2D("1750", "MB prof sum R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
245  hmgr->addHisto2( new TH2F("1751", "R vs z [Air]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
246  hmgr->addHisto2( new TH2F("1760", "MB prof local R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
247  hmgr->addHisto2( new TH2F("1761", "R vs z [Air]" , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
248  //
249 
250  // rr
251 
252  std::cout << "=== booking user histos done ===" << std::endl;
253 
254 }
bool addHistoProf2(TProfile2D *ih)
bool addHisto1(TH1F *ih)
bool addHistoProf1(TProfile *ih)
tuple cout
Definition: gather_cfg.py:121
bool addHisto2(TH2F *ih)
void MaterialBudgetTrackerHistos::fillEndTrack ( )
virtual

Implements MaterialBudgetFormat.

Definition at line 269 of file MaterialBudgetTrackerHistos.cc.

References gather_cfg::cout, MaterialBudgetData::getAirDil(), MaterialBudgetData::getAirDmb(), MaterialBudgetData::getAirIL(), MaterialBudgetData::getAirMB(), MaterialBudgetData::getCablesDil(), MaterialBudgetData::getCablesDmb(), MaterialBudgetData::getCablesIL(), MaterialBudgetData::getCablesMB(), MaterialBudgetData::getCoolingDil(), MaterialBudgetData::getCoolingDmb(), MaterialBudgetData::getCoolingIL(), MaterialBudgetData::getCoolingMB(), MaterialBudgetData::getElectronicsDil(), MaterialBudgetData::getElectronicsDmb(), MaterialBudgetData::getElectronicsIL(), MaterialBudgetData::getElectronicsMB(), MaterialBudgetData::getEta(), TestHistoMgr::getHisto1(), TestHistoMgr::getHisto2(), TestHistoMgr::getHistoProf1(), TestHistoMgr::getHistoProf2(), MaterialBudgetData::getNumberOfSteps(), MaterialBudgetData::getOtherDil(), MaterialBudgetData::getOtherDmb(), MaterialBudgetData::getOtherIL(), MaterialBudgetData::getOtherMB(), MaterialBudgetData::getPhi(), MaterialBudgetData::getSensitiveDil(), MaterialBudgetData::getSensitiveDmb(), MaterialBudgetData::getSensitiveIL(), MaterialBudgetData::getSensitiveMB(), MaterialBudgetData::getStepDil(), MaterialBudgetData::getStepDmb(), MaterialBudgetData::getStepFinalX(), MaterialBudgetData::getStepFinalY(), MaterialBudgetData::getStepFinalZ(), MaterialBudgetData::getStepInitialX(), MaterialBudgetData::getStepInitialY(), MaterialBudgetData::getStepInitialZ(), MaterialBudgetData::getStepMaterialLambda0(), MaterialBudgetData::getStepMaterialX0(), MaterialBudgetData::getSupportDil(), MaterialBudgetData::getSupportDmb(), MaterialBudgetData::getSupportIL(), MaterialBudgetData::getSupportMB(), MaterialBudgetData::getTotalIL(), MaterialBudgetData::getTotalMB(), hmgr, bookConverter::max, funct::pow(), mathSSE::sqrt(), MaterialBudgetFormat::theData, and z.

270 {
271  //
272  // fill histograms and profiles only if the material has been crossed
273  //
274 
275  if( theData->getNumberOfSteps() != 0 ) {
276 
277  // Total X0
278  hmgr->getHisto1(11)->Fill(theData->getEta());
279  hmgr->getHisto1(21)->Fill(theData->getPhi());
280  hmgr->getHisto2(31)->Fill(theData->getEta(),theData->getPhi());
281 
285 
286  // rr
287 
288  // Support
289  hmgr->getHisto1(111)->Fill(theData->getEta());
290  hmgr->getHisto1(121)->Fill(theData->getPhi());
291  hmgr->getHisto2(131)->Fill(theData->getEta(),theData->getPhi());
292 
296 
297  // Sensitive
298  hmgr->getHisto1(211)->Fill(theData->getEta());
299  hmgr->getHisto1(221)->Fill(theData->getPhi());
300  hmgr->getHisto2(231)->Fill(theData->getEta(),theData->getPhi());
301 
305 
306  // Cables
307  hmgr->getHisto1(311)->Fill(theData->getEta());
308  hmgr->getHisto1(321)->Fill(theData->getPhi());
309  hmgr->getHisto2(331)->Fill(theData->getEta(),theData->getPhi());
310 
311  hmgr->getHistoProf1(310)->Fill(theData->getEta(),theData->getCablesMB());
312  hmgr->getHistoProf1(320)->Fill(theData->getPhi(),theData->getCablesMB());
314 
315  // Cooling
316  hmgr->getHisto1(411)->Fill(theData->getEta());
317  hmgr->getHisto1(421)->Fill(theData->getPhi());
318  hmgr->getHisto2(431)->Fill(theData->getEta(),theData->getPhi());
319 
323 
324  // Electronics
325  hmgr->getHisto1(511)->Fill(theData->getEta());
326  hmgr->getHisto1(521)->Fill(theData->getPhi());
327  hmgr->getHisto2(531)->Fill(theData->getEta(),theData->getPhi());
328 
332 
333  // Other
334  hmgr->getHisto1(611)->Fill(theData->getEta());
335  hmgr->getHisto1(621)->Fill(theData->getPhi());
336  hmgr->getHisto2(631)->Fill(theData->getEta(),theData->getPhi());
337 
338  hmgr->getHistoProf1(610)->Fill(theData->getEta(),theData->getOtherMB());
339  hmgr->getHistoProf1(620)->Fill(theData->getPhi(),theData->getOtherMB());
341 
342  // Air
343  hmgr->getHisto1(711)->Fill(theData->getEta());
344  hmgr->getHisto1(721)->Fill(theData->getPhi());
345  hmgr->getHisto2(731)->Fill(theData->getEta(),theData->getPhi());
346 
347  hmgr->getHistoProf1(710)->Fill(theData->getEta(),theData->getAirMB());
348  hmgr->getHistoProf1(720)->Fill(theData->getPhi(),theData->getAirMB());
350 
351  //
352  // Compute the total x/X0 crossed at each step radius for each path
353  //
354  //
355  float theTotalMB_TOT = 0.0;
356  float theTotalMB_SUP = 0.0;
357  float theTotalMB_SEN = 0.0;
358  float theTotalMB_CAB = 0.0;
359  float theTotalMB_COL = 0.0;
360  float theTotalMB_ELE = 0.0;
361  float theTotalMB_OTH = 0.0;
362  float theTotalMB_AIR = 0.0;
363  for(int iStep = 0; iStep < theData->getNumberOfSteps(); iStep++) {
364  theTotalMB_TOT += theData->getStepDmb(iStep);
365  theTotalMB_SUP += theData->getSupportDmb(iStep);
366  theTotalMB_SEN += theData->getSensitiveDmb(iStep);
367  theTotalMB_CAB += theData->getCablesDmb(iStep);
368  theTotalMB_COL += theData->getCoolingDmb(iStep);
369  theTotalMB_ELE += theData->getElectronicsDmb(iStep);
370  theTotalMB_OTH += theData->getOtherDmb(iStep);
371  theTotalMB_AIR += theData->getAirDmb(iStep);
372 
373  int iSup = 0;
374  int iSen = 0;
375  int iCab = 0;
376  int iCol = 0;
377  int iEle = 0;
378  int iOth = 0;
379  int iAir = 0;
380  if( theData->getSupportDmb(iStep)>0. ) { iSup = 1; }
381  if( theData->getSensitiveDmb(iStep)>0. ) { iSen = 1; }
382  if( theData->getCablesDmb(iStep)>0. ) { iCab = 1; }
383  if( theData->getCoolingDmb(iStep)>0. ) { iCol = 1; }
384  if( theData->getElectronicsDmb(iStep)>0. ) { iEle = 1; }
385  if( theData->getOtherDmb(iStep)>0. ) { iOth = 1; }
386  if( theData->getAirDmb(iStep)>0. ) { iAir = 1; }
387 
388  float deltaRadius = sqrt(
389  pow( theData->getStepFinalX(iStep)-theData->getStepInitialX(iStep),2 )
390  +
391  pow( theData->getStepFinalY(iStep)-theData->getStepInitialY(iStep),2 )
392  );
393  float deltaz = theData->getStepFinalZ(iStep)-theData->getStepInitialZ(iStep) ;
394 
395  float x0 = theData->getStepMaterialX0(iStep);
396 
397  int nSubStep = 2;
398  float boxWidth = 0.1;
399  if( (deltaRadius>boxWidth) || (fabs(deltaz)>boxWidth) ) {
400  nSubStep = static_cast<int>(max(
401  ceil(deltaRadius/boxWidth/2.)*2,
402  ceil(fabs(deltaz)/boxWidth/2.)*2
403  ));
404  }
405 
406  for(int iSubStep = 1; iSubStep < nSubStep; iSubStep+=2) {
407 
408  float subdeltaRadius = deltaRadius/nSubStep;
409  float polarRadius = sqrt(
410  pow( theData->getStepInitialX(iStep),2 )
411  +
412  pow( theData->getStepInitialY(iStep),2 )
413  ) + iSubStep*subdeltaRadius;
414 
415  float subdeltaz = deltaz/nSubStep;
416  float z = theData->getStepInitialZ(iStep) + iSubStep*subdeltaz;
417 
418  float subdelta = sqrt(
419  pow ( subdeltaRadius,2 ) + pow( subdeltaz,2 )
420  );
421 
422  float fillValue=subdelta/x0;
423 
424  //
425  // Average length
426  hmgr->getHisto2(999)->Fill(z,polarRadius,subdelta);
427  // Total
428  hmgr->getHisto1(41)->Fill(polarRadius);
429  hmgr->getHistoProf1(40)->Fill(polarRadius,theTotalMB_TOT);
430  hmgr->getHisto2(51)->Fill(z,polarRadius);
431  hmgr->getHistoProf2(50)->Fill(z,polarRadius,theTotalMB_TOT);
432  hmgr->getHisto2(61)->Fill(z,polarRadius);
433  hmgr->getHisto2(60)->Fill(z,polarRadius,fillValue);
434  // Support
435  hmgr->getHisto1(141)->Fill(polarRadius);
436  hmgr->getHistoProf1(140)->Fill(polarRadius,theTotalMB_SUP);
437  hmgr->getHisto2(151)->Fill(z,polarRadius);
438  hmgr->getHistoProf2(150)->Fill(z,polarRadius,theTotalMB_SUP);
439  hmgr->getHisto2(161)->Fill(z,polarRadius);
440  hmgr->getHisto2(160)->Fill(z,polarRadius,iSup*fillValue);
441  // Sensitive
442  hmgr->getHisto1(241)->Fill(polarRadius);
443  hmgr->getHistoProf1(240)->Fill(polarRadius,theTotalMB_SEN);
444  hmgr->getHisto2(251)->Fill(z,polarRadius);
445  hmgr->getHistoProf2(250)->Fill(z,polarRadius,theTotalMB_SEN);
446  hmgr->getHisto2(261)->Fill(z,polarRadius);
447  hmgr->getHisto2(260)->Fill(z,polarRadius,iSen*fillValue);
448  // Cables
449  hmgr->getHisto1(341)->Fill(polarRadius);
450  hmgr->getHistoProf1(340)->Fill(polarRadius,theTotalMB_CAB);
451  hmgr->getHisto2(351)->Fill(z,polarRadius);
452  hmgr->getHistoProf2(350)->Fill(z,polarRadius,theTotalMB_CAB);
453  hmgr->getHisto2(361)->Fill(z,polarRadius);
454  hmgr->getHisto2(360)->Fill(z,polarRadius,iCab*fillValue);
455  // Cooling
456  hmgr->getHisto1(441)->Fill(polarRadius);
457  hmgr->getHistoProf1(440)->Fill(polarRadius,theTotalMB_COL);
458  hmgr->getHisto2(451)->Fill(z,polarRadius);
459  hmgr->getHistoProf2(450)->Fill(z,polarRadius,theTotalMB_COL);
460  hmgr->getHisto2(461)->Fill(z,polarRadius);
461  hmgr->getHisto2(460)->Fill(z,polarRadius,iCol*fillValue);
462  // Electronics
463  hmgr->getHisto1(541)->Fill(polarRadius);
464  hmgr->getHistoProf1(540)->Fill(polarRadius,theTotalMB_ELE);
465  hmgr->getHisto2(551)->Fill(z,polarRadius);
466  hmgr->getHistoProf2(550)->Fill(z,polarRadius,theTotalMB_ELE);
467  hmgr->getHisto2(561)->Fill(z,polarRadius);
468  hmgr->getHisto2(560)->Fill(z,polarRadius,iEle*fillValue);
469  // Other
470  hmgr->getHisto1(641)->Fill(polarRadius);
471  hmgr->getHistoProf1(640)->Fill(polarRadius,theTotalMB_OTH);
472  hmgr->getHisto2(651)->Fill(z,polarRadius);
473  hmgr->getHistoProf2(650)->Fill(z,polarRadius,theTotalMB_OTH);
474  hmgr->getHisto2(661)->Fill(z,polarRadius);
475  hmgr->getHisto2(660)->Fill(z,polarRadius,iOth*fillValue);
476  // Air
477  hmgr->getHisto1(741)->Fill(polarRadius);
478  hmgr->getHistoProf1(740)->Fill(polarRadius,theTotalMB_AIR);
479  hmgr->getHisto2(751)->Fill(z,polarRadius);
480  hmgr->getHistoProf2(750)->Fill(z,polarRadius,theTotalMB_AIR);
481  hmgr->getHisto2(761)->Fill(z,polarRadius);
482  hmgr->getHisto2(760)->Fill(z,polarRadius,iAir*fillValue);
483  //
484  }
485  }
486  //
487  //
489  //
490  //
491  //
492 
493 
494  // Total Lambda0
495  hmgr->getHisto1(1011)->Fill(theData->getEta());
496  hmgr->getHisto1(1021)->Fill(theData->getPhi());
497  hmgr->getHisto2(1031)->Fill(theData->getEta(),theData->getPhi());
498 
499  hmgr->getHistoProf1(1010)->Fill(theData->getEta(),theData->getTotalIL());
500  hmgr->getHistoProf1(1020)->Fill(theData->getPhi(),theData->getTotalIL());
502 
503  // Support
504  hmgr->getHisto1(1111)->Fill(theData->getEta());
505  hmgr->getHisto1(1121)->Fill(theData->getPhi());
506  hmgr->getHisto2(1131)->Fill(theData->getEta(),theData->getPhi());
507 
508  hmgr->getHistoProf1(1110)->Fill(theData->getEta(),theData->getSupportIL());
509  hmgr->getHistoProf1(1120)->Fill(theData->getPhi(),theData->getSupportIL());
511 
512  // Sensitive
513  hmgr->getHisto1(1211)->Fill(theData->getEta());
514  hmgr->getHisto1(1221)->Fill(theData->getPhi());
515  hmgr->getHisto2(1231)->Fill(theData->getEta(),theData->getPhi());
516 
520 
521  // Cables
522  hmgr->getHisto1(1311)->Fill(theData->getEta());
523  hmgr->getHisto1(1321)->Fill(theData->getPhi());
524  hmgr->getHisto2(1331)->Fill(theData->getEta(),theData->getPhi());
525 
526  hmgr->getHistoProf1(1310)->Fill(theData->getEta(),theData->getCablesIL());
527  hmgr->getHistoProf1(1320)->Fill(theData->getPhi(),theData->getCablesIL());
529 
530  // Cooling
531  hmgr->getHisto1(1411)->Fill(theData->getEta());
532  hmgr->getHisto1(1421)->Fill(theData->getPhi());
533  hmgr->getHisto2(1431)->Fill(theData->getEta(),theData->getPhi());
534 
535  hmgr->getHistoProf1(1410)->Fill(theData->getEta(),theData->getCoolingIL());
536  hmgr->getHistoProf1(1420)->Fill(theData->getPhi(),theData->getCoolingIL());
538 
539  // Electronics
540  hmgr->getHisto1(1511)->Fill(theData->getEta());
541  hmgr->getHisto1(1521)->Fill(theData->getPhi());
542  hmgr->getHisto2(1531)->Fill(theData->getEta(),theData->getPhi());
543 
547 
548  // Other
549  hmgr->getHisto1(1611)->Fill(theData->getEta());
550  hmgr->getHisto1(1621)->Fill(theData->getPhi());
551  hmgr->getHisto2(1631)->Fill(theData->getEta(),theData->getPhi());
552 
553  hmgr->getHistoProf1(1610)->Fill(theData->getEta(),theData->getOtherIL());
554  hmgr->getHistoProf1(1620)->Fill(theData->getPhi(),theData->getOtherIL());
556 
557  // Air
558  hmgr->getHisto1(1711)->Fill(theData->getEta());
559  hmgr->getHisto1(1721)->Fill(theData->getPhi());
560  hmgr->getHisto2(1731)->Fill(theData->getEta(),theData->getPhi());
561 
562  hmgr->getHistoProf1(1710)->Fill(theData->getEta(),theData->getAirIL());
563  hmgr->getHistoProf1(1720)->Fill(theData->getPhi(),theData->getAirIL());
565 
566  // Compute the total l/l0 crossed at each step radius for each path
567  float theTotalIL_TOT = 0.0;
568  float theTotalIL_SUP = 0.0;
569  float theTotalIL_SEN = 0.0;
570  float theTotalIL_CAB = 0.0;
571  float theTotalIL_COL = 0.0;
572  float theTotalIL_ELE = 0.0;
573  float theTotalIL_OTH = 0.0;
574  float theTotalIL_AIR = 0.0;
575  for(int iStep = 0; iStep < theData->getNumberOfSteps(); iStep++) {
576  theTotalIL_TOT += theData->getStepDil(iStep);
577  theTotalIL_SUP += theData->getSupportDil(iStep);
578  theTotalIL_SEN += theData->getSensitiveDil(iStep);
579  theTotalIL_CAB += theData->getCablesDil(iStep);
580  theTotalIL_COL += theData->getCoolingDil(iStep);
581  theTotalIL_ELE += theData->getElectronicsDil(iStep);
582  theTotalIL_OTH += theData->getOtherDil(iStep);
583  theTotalIL_AIR += theData->getAirDil(iStep);
584 
585  int iSup = 0;
586  int iSen = 0;
587  int iCab = 0;
588  int iCol = 0;
589  int iEle = 0;
590  int iOth = 0;
591  int iAir = 0;
592  if( theData->getSupportDil(iStep)>0. ) { iSup = 1; }
593  if( theData->getSensitiveDil(iStep)>0. ) { iSen = 1; }
594  if( theData->getCablesDil(iStep)>0. ) { iCab = 1; }
595  if( theData->getCoolingDil(iStep)>0. ) { iCol = 1; }
596  if( theData->getElectronicsDil(iStep)>0. ) { iEle = 1; }
597  if( theData->getOtherDil(iStep)>0. ) { iOth = 1; }
598  if( theData->getAirDil(iStep)>0. ) { iAir = 1; }
599 
600  float deltaRadius = sqrt(
601  pow( theData->getStepFinalX(iStep)-theData->getStepInitialX(iStep),2 )
602  +
603  pow( theData->getStepFinalY(iStep)-theData->getStepInitialY(iStep),2 )
604  );
605  float deltaz = theData->getStepFinalZ(iStep)-theData->getStepInitialZ(iStep) ;
606 
607  float il = theData->getStepMaterialLambda0(iStep);
608 
609  int nSubStep = 2;
610  float boxWidth = 0.1;
611  if( (deltaRadius>boxWidth) || (fabs(deltaz)>boxWidth) ) {
612  nSubStep = static_cast<int>(max(
613  ceil(deltaRadius/boxWidth/2.)*2,
614  ceil(fabs(deltaz)/boxWidth/2.)*2
615  ));
616  }
617 
618  for(int iSubStep = 1; iSubStep < nSubStep; iSubStep+=2) {
619 
620  float subdeltaRadius = deltaRadius/nSubStep;
621  float polarRadius = sqrt(
622  pow( theData->getStepInitialX(iStep),2 )
623  +
624  pow( theData->getStepInitialY(iStep),2 )
625  ) + iSubStep*subdeltaRadius;
626 
627  float subdeltaz = deltaz/nSubStep;
628  float z = theData->getStepInitialZ(iStep) + iSubStep*subdeltaz;
629 
630  float subdelta = sqrt(
631  pow ( subdeltaRadius,2 ) + pow( subdeltaz,2 )
632  );
633 
634  float fillValue=subdelta/il;
635 
636  //
637  // Average length
638  hmgr->getHisto2(1999)->Fill(z,polarRadius,subdelta);
639  // Total
640  hmgr->getHisto1(1041)->Fill(polarRadius);
641  hmgr->getHistoProf1(1040)->Fill(polarRadius,theTotalIL_TOT);
642  hmgr->getHisto2(1051)->Fill(z,polarRadius);
643  hmgr->getHistoProf2(1050)->Fill(z,polarRadius,theTotalIL_TOT);
644  hmgr->getHisto2(1061)->Fill(z,polarRadius);
645  hmgr->getHisto2(1060)->Fill(z,polarRadius,fillValue);
646  // Support
647  hmgr->getHisto1(1141)->Fill(polarRadius);
648  hmgr->getHistoProf1(1140)->Fill(polarRadius,theTotalIL_SUP);
649  hmgr->getHisto2(1151)->Fill(z,polarRadius);
650  hmgr->getHistoProf2(1150)->Fill(z,polarRadius,theTotalIL_SUP);
651  hmgr->getHisto2(1161)->Fill(z,polarRadius);
652  hmgr->getHisto2(1160)->Fill(z,polarRadius,iSup*fillValue);
653  // Sensitive
654  hmgr->getHisto1(1241)->Fill(polarRadius);
655  hmgr->getHistoProf1(1240)->Fill(polarRadius,theTotalIL_SEN);
656  hmgr->getHisto2(1251)->Fill(z,polarRadius);
657  hmgr->getHistoProf2(1250)->Fill(z,polarRadius,theTotalIL_SEN);
658  hmgr->getHisto2(1261)->Fill(z,polarRadius);
659  hmgr->getHisto2(1260)->Fill(z,polarRadius,iSen*fillValue);
660  // Cables
661  hmgr->getHisto1(1341)->Fill(polarRadius);
662  hmgr->getHistoProf1(1340)->Fill(polarRadius,theTotalIL_CAB);
663  hmgr->getHisto2(1351)->Fill(z,polarRadius);
664  hmgr->getHistoProf2(1350)->Fill(z,polarRadius,theTotalIL_CAB);
665  hmgr->getHisto2(1361)->Fill(z,polarRadius);
666  hmgr->getHisto2(1360)->Fill(z,polarRadius,iCab*fillValue);
667  // Cooling
668  hmgr->getHisto1(1441)->Fill(polarRadius);
669  hmgr->getHistoProf1(1440)->Fill(polarRadius,theTotalIL_COL);
670  hmgr->getHisto2(1451)->Fill(z,polarRadius);
671  hmgr->getHistoProf2(1450)->Fill(z,polarRadius,theTotalIL_COL);
672  hmgr->getHisto2(1461)->Fill(z,polarRadius);
673  hmgr->getHisto2(1460)->Fill(z,polarRadius,iCol*fillValue);
674  // Electronics
675  hmgr->getHisto1(1541)->Fill(polarRadius);
676  hmgr->getHistoProf1(1540)->Fill(polarRadius,theTotalIL_ELE);
677  hmgr->getHisto2(1551)->Fill(z,polarRadius);
678  hmgr->getHistoProf2(1550)->Fill(z,polarRadius,theTotalIL_ELE);
679  hmgr->getHisto2(1561)->Fill(z,polarRadius);
680  hmgr->getHisto2(1560)->Fill(z,polarRadius,iEle*fillValue);
681  // Other
682  hmgr->getHisto1(1641)->Fill(polarRadius);
683  hmgr->getHistoProf1(1640)->Fill(polarRadius,theTotalIL_OTH);
684  hmgr->getHisto2(1651)->Fill(z,polarRadius);
685  hmgr->getHistoProf2(1650)->Fill(z,polarRadius,theTotalIL_OTH);
686  hmgr->getHisto2(1661)->Fill(z,polarRadius);
687  hmgr->getHisto2(1660)->Fill(z,polarRadius,iOth*fillValue);
688  // Air
689  hmgr->getHisto1(1741)->Fill(polarRadius);
690  hmgr->getHistoProf1(1740)->Fill(polarRadius,theTotalIL_AIR);
691  hmgr->getHisto2(1751)->Fill(z,polarRadius);
692  hmgr->getHistoProf2(1750)->Fill(z,polarRadius,theTotalIL_AIR);
693  hmgr->getHisto2(1761)->Fill(z,polarRadius);
694  hmgr->getHisto2(1760)->Fill(z,polarRadius,iAir*fillValue);
695  //
696  }
697 
698  }
699 
700  // rr
701  } else {
702  std::cout << "*** WARNING This event is out of the acceptance *** " << std::endl;
703  std::cout << "eta = " << theData->getEta()
704  << "\t phi = " << theData->getPhi()
705  << "\t x/X0 = " << theData->getTotalMB()
706  << "\t l/l0 = " << theData->getTotalIL()
707  << "\t steps = " << theData->getNumberOfSteps()
708  << std::endl;
709  std::cout << "***" << std::endl;
710  }
711 
712 
713 }
float getTotalMB() const
TProfile2D * getHistoProf2(int ih)
float getAirDmb(int is) const
float getStepMaterialLambda0(int is)
double getStepFinalX(int is)
float getOtherDil(int is) const
TProfile * getHistoProf1(int ih)
float getSupportDil(int is) const
float getSensitiveDmb(int is) const
float getSensitiveMB() const
float getStepMaterialX0(int is)
float getCoolingIL() const
float getAirMB() const
MaterialBudgetData * theData
float getElectronicsDil(int is) const
float getOtherIL() const
double getStepInitialZ(int is)
float getEta() const
TH2F * getHisto2(int ih)
T sqrt(T t)
Definition: SSEVec.h:48
double getStepFinalY(int is)
float getSupportMB() const
float getCoolingDmb(int is) const
float getCoolingDil(int is) const
float getOtherMB() const
float getSupportDmb(int is) const
float getStepDmb(int is)
double getStepFinalZ(int is)
float getCablesIL() const
float getPhi() const
float getCoolingMB() const
float getElectronicsMB() const
double getStepInitialY(int is)
double getStepInitialX(int is)
int getNumberOfSteps() const
float getSensitiveDil(int is) const
float getAirIL() const
float getAirDil(int is) const
float getSensitiveIL() const
float getCablesDil(int is) const
TH1F * getHisto1(int ih)
tuple cout
Definition: gather_cfg.py:121
float getSupportIL() const
float getCablesDmb(int is) const
float getOtherDmb(int is) const
float getStepDil(int is)
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
float getTotalIL() const
float getElectronicsIL() const
float getElectronicsDmb(int is) const
float getCablesMB() const
void MaterialBudgetTrackerHistos::fillPerStep ( )
virtual

Implements MaterialBudgetFormat.

Definition at line 263 of file MaterialBudgetTrackerHistos.cc.

264 {
265 
266 }
void MaterialBudgetTrackerHistos::fillStartTrack ( )
virtual

Implements MaterialBudgetFormat.

Definition at line 257 of file MaterialBudgetTrackerHistos.cc.

258 {
259 
260 }
void MaterialBudgetTrackerHistos::hend ( )
privatevirtual

Definition at line 715 of file MaterialBudgetTrackerHistos.cc.

References gather_cfg::cout, TestHistoMgr::getHisto2(), hmgr, TestHistoMgr::save(), and MaterialBudgetFormat::theFileName.

Referenced by ~MaterialBudgetTrackerHistos().

716 {
717 
718  hmgr->getHisto2(60)->Divide(hmgr->getHisto2(999));
719  hmgr->getHisto2(160)->Divide(hmgr->getHisto2(999));
720  hmgr->getHisto2(260)->Divide(hmgr->getHisto2(999));
721  hmgr->getHisto2(360)->Divide(hmgr->getHisto2(999));
722  hmgr->getHisto2(460)->Divide(hmgr->getHisto2(999));
723  hmgr->getHisto2(560)->Divide(hmgr->getHisto2(999));
724  hmgr->getHisto2(660)->Divide(hmgr->getHisto2(999));
725  hmgr->getHisto2(760)->Divide(hmgr->getHisto2(999));
726 
727  hmgr->getHisto2(160)->Divide(hmgr->getHisto2(1999));
728  hmgr->getHisto2(1160)->Divide(hmgr->getHisto2(1999));
729  hmgr->getHisto2(1260)->Divide(hmgr->getHisto2(1999));
730  hmgr->getHisto2(1360)->Divide(hmgr->getHisto2(1999));
731  hmgr->getHisto2(1460)->Divide(hmgr->getHisto2(1999));
732  hmgr->getHisto2(1560)->Divide(hmgr->getHisto2(1999));
733  hmgr->getHisto2(1660)->Divide(hmgr->getHisto2(1999));
734  hmgr->getHisto2(1760)->Divide(hmgr->getHisto2(1999));
735 
736  std::cout << "=== save user histos ===" << std::endl;
737  hmgr->save( theFileName );
738 
739 }
TH2F * getHisto2(int ih)
void save(const std::string &name)
Definition: TestHistoMgr.cc:50
tuple cout
Definition: gather_cfg.py:121

Member Data Documentation

TestHistoMgr* MaterialBudgetTrackerHistos::hmgr
private

Definition at line 35 of file MaterialBudgetTrackerHistos.h.

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

int MaterialBudgetTrackerHistos::MAXNUMBERSTEPS
private

Definition at line 27 of file MaterialBudgetTrackerHistos.h.

double* MaterialBudgetTrackerHistos::theDmb
private

Definition at line 28 of file MaterialBudgetTrackerHistos.h.

double* MaterialBudgetTrackerHistos::theMateId
private

Definition at line 33 of file MaterialBudgetTrackerHistos.h.

double* MaterialBudgetTrackerHistos::theVoluId
private

Definition at line 32 of file MaterialBudgetTrackerHistos.h.

double* MaterialBudgetTrackerHistos::theX
private

Definition at line 29 of file MaterialBudgetTrackerHistos.h.

double* MaterialBudgetTrackerHistos::theY
private

Definition at line 30 of file MaterialBudgetTrackerHistos.h.

double* MaterialBudgetTrackerHistos::theZ
private

Definition at line 31 of file MaterialBudgetTrackerHistos.h.