118 {
119 std::string
names[162] = {
"eta",
"pt",
"phi",
"pos_x",
"pos_y",
"pos_z",
120 "emb0_cell", "emb1_cell", "emb2_cell", "emb3_cell", "emec0_cell", "emec1_cell", "emec2_cell", "emec3_cell",
121 "hec0_cell", "hec1_cell", "hec2_cell", "hec3_cell", "fc1_cell", "fc2_cell", "fc3_cell",
122 "emb0_hits", "emb1_hits", "emb2_hits", "emb3_hits", "emec0_hits", "emec1_hits", "emec2_hits", "emec3_hits",
123 "hec0_hits", "hec1_hits", "hec2_hits", "hec3_hits", "fc1_hits", "fc2_hits", "fc3_hits",
124 "emb0_sumE", "emb1_sumE", "emb2_sumE", "emb3_sumE", "emec0_sumE", "emec1_sumE", "emec2_sumE", "emec3_sumE",
125 "hec0_sumE", "hec1_sumE", "hec2_sumE", "hec3_sumE", "fc1_sumE", "fc2_sumE", "fc3_sumE",
126 "emb0_dPhi", "emb1_dPhi", "emb2_dPhi", "emb3_dPhi", "emec0_dPhi", "emec1_dPhi", "emec2_dPhi", "emec3_dPhi",
127 "hec0_dPhi", "hec1_dPhi", "hec2_dPhi", "hec3_dPhi", "fc1_dX", "fc2_dX", "fc3_dX",
128 "emb0_sPhi", "emb1_sPhi", "emb2_sPhi", "emb3_sPhi", "emec0_sPhi", "emec1_sPhi", "emec2_sPhi", "emec3_sPhi",
129 "hec0_sPhi", "hec1_sPhi", "hec2_sPhi", "hec3_sPhi", "fc1_sX", "fc2_sX", "fc3_sX",
130 "emb0_dEta", "emb1_dEta", "emb2_dEta", "emb3_dEta", "emec0_dEta", "emec1_dEta", "emec2_dEta", "emec3_dEta",
131 "hec0_dEta", "hec1_dEta", "hec2_dEta", "hec3_dEta", "fc1_dY", "fc2_dY", "fc3_dY",
132 "emb0_sEta", "emb1_sEta", "emb2_sEta", "emb3_sEta", "emec0_sEta", "emec1_sEta", "emec2_sEta", "emec3_sEta",
133 "hec0_sEta", "hec1_sEta", "hec2_sEta", "hec3_sEta", "fc1_sY", "fc2_sY", "fc3_sY",
134 "emb0_time", "emb1_time", "emb2_time", "emb3_time", "emec0_time", "emec1_time", "emec2_time", "emec3_time",
135 "hec0_time", "hec1_time", "hec2_time", "hec3_time", "fc1_time", "fc2_time", "fc3_time",
136 "emb0_widthX", "emb1_widthX", "emb2_widthX", "emb3_widthX", "emec0_widthX", "emec1_widthX", "emec2_widthX", "emec3_widthX",
137 "hec0_widthX", "hec1_widthX", "hec2_widthX", "hec3_widthX", "fc1_widthX", "fc2_widthX", "fc3_widthX",
138 "emb0_widthY", "emb1_widthY", "emb2_widthY", "emb3_widthY", "emec0_widthY", "emec1_widthY", "emec2_widthY", "emec3_widthY",
139 "hec0_widthY", "hec1_widthY", "hec2_widthY", "hec3_widthY", "fc1_widthY", "fc2_widthY", "fc3_widthY",
140 "cpuTime", "Energy", "PDG_ID", "RunNo", "EventNo", "E_Dep" };
141
142 double lim[162][2] = { {0,5}, {0,100}, {-4,4}, {-1600,1600}, {-1600,1600}, {-4000,4000},
143 {0,0.25}, {0,3}, {0,6}, {0,0.1}, {0,0.25}, {0,2}, {0,3}, {0,0.1}, {0,1}, {0,10}, {0,10}, {0,10}, {0,0.1}, {0,0.1}, {0,0.1},
144 {0,100}, {0,600}, {0,600}, {0,50}, {0,50}, {0,400}, {0,500}, {0,200}, {0,100}, {0,1000}, {0,1000}, {0,100}, {0,150}, {0,50}, {0,10},
145 {0,0.4}, {0,5}, {0,10}, {0,0.2}, {0,0.1}, {0,3}, {0,5}, {0,0.2}, {0,1}, {0,10}, {0,10}, {0,0.1}, {0,1}, {0,0.1}, {0,0.1},
146 {-500,500}, {-100,100}, {-15,15}, {-200,200}, {-3000,3000}, {-60,60}, {-25,25}, {-200,200}, {-50,50}, {-50,50}, {-50,50}, {-50,50}, {-60,60}, {-500,500}, {-200,200},
147 {0,1000}, {0,500}, {0,200}, {0,500}, {0,2000}, {0,250}, {0,300}, {0,500}, {0,200}, {0,200}, {0,200}, {0,200}, {0,100}, {0,100}, {0,50},
148 {-150,150}, {-15,15}, {-20,20}, {-200,200}, {-0,2500}, {-50,20}, {-15,15}, {-150,150}, {-50,50}, {-50,50}, {-50,50}, {-50,50}, {-60,60}, {-500,500}, {-200,200},
149 {0,500}, {0,100}, {0,100}, {0,400}, {0,1000}, {0,150}, {0,100}, {0,400}, {0,200}, {0,200}, {0,200}, {0,200}, {0,60}, {0,100}, {0,50},
150 {0,750}, {0,25}, {0,20}, {0,1000}, {0,10000}, {0,40}, {0,30}, {0,1000}, {0,1000}, {0,100}, {0,100}, {0,200}, {0,10}, {0,500}, {0,100},
151 {-150,150}, {-15,15}, {-20,20}, {-200,200}, {-0,2500}, {-50,20}, {-15,15}, {-150,150}, {-50,50}, {-50,50}, {-50,50}, {-50,50}, {-60,60}, {-500,500}, {-200,200},
152 {-150,150}, {-15,15}, {-20,20}, {-200,200}, {-0,2500}, {-50,20}, {-15,15}, {-150,150}, {-50,50}, {-50,50}, {-50,50}, {-50,50}, {-60,60}, {-500,500}, {-200,200},
153 {0,50}, {0,100}, {-25,25}, {0,10}, {0,1000}, {0,10}};
154
155
156
157
158
159
160
169
170
171
172
174 for (
int i=0;
i<162;
i++){
179 ATH_MSG_WARNING(
"Failed to register historam " << names[i] <<
". Not sure what will happen now..." );
180 }
181 }
182
183
185 if (!
file)
throw std::runtime_error (
"Ntuple MGR not open");
186 NTuple::Directory *col=
ntupleSvc()->createDirectory(
"/NTUPLES/FILE/COL");
187 NTuplePtr
nt(
ntupleSvc(),
"/NTUPLES/FILE/COL/SingleTrackValidation");
188 if (!nt)
nt=
ntupleSvc()->book(col, 1, CLID_ColumnWiseTuple,
"SingleTrackValidation");
189
190 if (
nt->addItem(
"Eta",
m_c->eta ).isFailure() ||
191 nt->addItem(
"Pt",
m_c->pt ).isFailure() ||
192 nt->addItem(
"BarrelX",
m_c->x ).isFailure() ||
193 nt->addItem(
"BarrelY",
m_c->y ).isFailure() ||
194 nt->addItem(
"BarrelZ",
m_c->z ).isFailure() ||
195 nt->addItem(
"Phi",
m_c->phi ).isFailure() ){
196 ATH_MSG_WARNING(
"Registration of some of the ntuple branches failed. No idea what will happen next..." );
197 }
198
199
201
202
203
204
205 for (
int i=0;
i<15;
i++){
206 if (i<12) sprintf(title,"S%i_C00",i);
207 else sprintf(title,"FC%i_C00",i-11);
208 if (
nt->addItem(title,
m_c->s_c00[i]).isFailure())
ATH_MSG_INFO(
"Registration of a branch failed in the ntupler..." );
209 if (i<12) sprintf(title,"S%i_SumE",i);
210 else sprintf(title,"FC%i_SumE",i-11);
211 if (
nt->addItem(title,
m_c->s_sumE[i]).isFailure())
ATH_MSG_INFO(
"Registration of a branch failed in the ntupler..." );
212 if (i<12) sprintf(title,"S%i_Hits",i);
213 else sprintf(title,"FC%i_Hits",i-11);
214 if (
nt->addItem(title,
m_c->s_hits[i]).isFailure())
ATH_MSG_INFO(
"Registration of a branch failed in the ntupler..." );
215 if (i<12) sprintf(title,"S%i_DeltaPhi",i);
216 else sprintf(title,"FC%i_DeltaX",i-11);
217 if (
nt->addItem(title,
m_c->s_deltaPhi[i]).isFailure())
ATH_MSG_INFO(
"Registration of a branch failed in the ntupler..." );
218 if (i<12) sprintf(title,"S%i_SigmaPhi",i);
219 else sprintf(title,"FC%i_SigmaX",i-11);
220 if (
nt->addItem(title,
m_c->s_sigmaPhi[i]).isFailure())
ATH_MSG_INFO(
"Registration of a branch failed in the ntupler..." );
221 if (i<12) sprintf(title,"S%i_DeltaEta",i);
222 else sprintf(title,"FC%i_DeltaY",i-11);
223 if (
nt->addItem(title,
m_c->s_deltaEta[i]).isFailure())
ATH_MSG_INFO(
"Registration of a branch failed in the ntupler..." );
224 if (i<12) sprintf(title,"S%i_SigmaEta",i);
225 else sprintf(title,"FC%i_SigmaY",i-11);
226 if (
nt->addItem(title,
m_c->s_sigmaEta[i]).isFailure())
ATH_MSG_INFO(
"Registration of a branch failed in the ntupler..." );
227 if (i<12) sprintf(title,"S%i_Time",i);
228 else sprintf(title,"FC%i_Time",i-11);
229 if (
nt->addItem(title,
m_c->s_t00[i]).isFailure())
ATH_MSG_INFO(
"Registration of a branch failed in the ntupler..." );
230 if (i<12) sprintf(title,"S%i_WidthX",i);
231 else sprintf(title,"FC%i_WidthX",i-11);
232 if (
nt->addItem(title,
m_c->s_widthX[i]).isFailure())
ATH_MSG_INFO(
"Registration of a branch failed in the ntupler..." );
233 if (i<12) sprintf(title,"S%i_WidthY",i);
234 else sprintf(title,"FC%i_WidthY",i-11);
235 if (
nt->addItem(title,
m_c->s_widthY[i]).isFailure())
ATH_MSG_INFO(
"Registration of a branch failed in the ntupler..." );
236 }
237
238 if (
nt->addItem(
"CPU" ,
m_c->cpuTime ).isFailure() ||
239 nt->addItem(
"TrackEnergy" ,
m_c->Energy ).isFailure() ||
240 nt->addItem(
"ParticleID" ,
m_c->PDG ).isFailure() ||
241 nt->addItem(
"Run#" ,
m_c->RunNo ).isFailure() ||
242 nt->addItem(
"Event#" ,
m_c->EventNo ).isFailure() ||
243 nt->addItem(
"DepositedEnergy",
m_c->E_Deposit ).isFailure() ){
244 ATH_MSG_WARNING(
"Registration of some of the ntuple branches failed. No idea what will happen next..." );
245 }
246
249
250
251
252
253
254 return StatusCode::SUCCESS;
255}
#define ATH_MSG_WARNING(x)
char data[hepevt_bytes_allocation_ATLAS]
const ServiceHandle< StoreGateSvc > & detStore() const
ServiceHandle< IPartPropSvc > m_ppSvc
ServiceHandle< ITHistSvc > m_histSvc
retrieve(aClass, aKey=None)
TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)