FEDRA emulsion software from the OPERA Collaboration
EdbShowerP.h
Go to the documentation of this file.
1#ifndef ROOT_EdbShowerP
2#define ROOT_EdbShowerP
3
4#include "TROOT.h"
5#include "TFile.h"
6#include "TVector3.h"
7#include "TIndexCell.h"
8#include "TArrayF.h"
9#include "TH1F.h"
10#include "TCanvas.h"
11#include "TBenchmark.h"
12#include "EdbVertex.h"
13#include "EdbPVRec.h"
14#include "EdbPhys.h"
15#include "EdbMath.h"
17#include "EdbLog.h"
18#include "EdbPattern.h"
19
20class EdbShowerP;
21
22using namespace std;
23
24
25
26//______________________________________________________________________________
27
28class EdbShowerP : public EdbSegP {
29
30private:
31
32 //-C- shower meta data (related to reconstruction) here:
33
34 // To know nameStrings of Profile histograms:
37
38 // To know which Algorithm and Parameters were used for this shower to be reconstructed:
39 TString eAlgName;
40 Int_t eAlgValue;
41 Float_t eParaValue[10];
42 TString eParaString[10];
43
44 Bool_t eParametrisationIsDone[10]; // number of parametrization which is already extracted or not.
45 Bool_t eExtraInfoIsDone[2]; // if Para_ExtraInfo has been read already.
46 Bool_t eMCInfoIsDone[2]; // if PGun or MCEvt Info has been read already.
47
48 Short_t eFirstPlate; // FirstPlate is always to the starting of beam!
49 Short_t eLastPlate; // LastPlate is always to the starting of beam!
50 Short_t eFirstPlatePID; // PID of Plate containing the InitiatorBT
51 Short_t eLastPlatePID; // PID of last plate which was used for reconstruction
52 Short_t eFirstPlateZ; // Z of Plate containing the InitiatorBT
53 Short_t eLastPlateZ; // Z of last plate which was used for reconstruction
54 Float_t eFirstZ; // Z of Plate containing the InitiatorBT
55 Float_t eLastZ; // Z of last plate which was used for reconstruction
56
57
58 //-C- shower data (directly related to shower characteristics) here:
59
60 //-C- For class backward compability to EdbTrackP ....
61 TObjArray *eS; // array of segments which set up the shower
62 Int_t eNpl; // number of plates passed throw
63 Int_t eN0; // number of holes (if any)
66
67 Float_t eM; // invariant mass of the particle (from EdbTrackP; to be filled with use of ID algo)
68 Int_t ePDG; // particle ID from PDG (from EdbTrackP; to be filled with use of ID algo)
69
70 //-C- For new class settings:
71 Int_t eNBT; // Number of BT in the shower
72 Int_t eNBTMC; // Number of BT in the shower, only MC>=0 events
73 Int_t eNBTMCFlag[99]; // NBT, only MC>=0, flagged with PDG Code but Internal array!! See corresponding fill function!
74 Int_t eNBTPlate[57]; // Number of BT in the shower per plate w.r.t to Plate of InBT (Plate of InBT===[0])
75 Int_t eNBTMCPlate[57]; // Number of BT in the shower, only MC>=0 events,w.r.t to Plate of InBT (Plate of InBT===[0])
76 Int_t eNBTMCFlagPlate[57][99]; // NBT, only MC>=0, flagged with PDG Code but Internal array!! See corresponding fill function!, w.r.t to Plate of InBT (!)
77 Int_t eN00; // largest number of consecutive holes (if any)
78
79 Float_t ePurity; // simple purity (eNBTMC/eNBT)
80 Float_t eEnergyMC; // Energy, defined by P() of the Initiator BaseTrack // this will be revised later!
81 Int_t eMC; // MC number, defined by MCEvt() of the Initiator BaseTrack
82 Float_t eSphericity; // Value to express spherical distribution around the ShowerAxisCenterGravity
83
84 // Internal histograms to store binentries of longitudinal and transversal shower profiles
85 // for exact definition how bins are defined see in the .cxx code implementation
88
89
90
91 // shower Axis angle (tan theta)
92 // see in the .cxx code how it is exactly calculated
94 // a basetrack with information of the shower axis and its direction
96
97
98 // Histogram of all segments deviation: TX_showeraxis-TX_segment, and for TY
103
104
105 //-C- shower data (extracted from shower characteristics) here:
106 Short_t eId;
107 Short_t ePDGId;
108 Float_t eEnergy;
111
112 //-C- Internal Helper Functions:
113 Double_t GetdR(EdbSegP* seg1,EdbSegP* seg2);
114 Double_t GetdMin(EdbSegP* seg1,EdbSegP* seg2);
115 Double_t GetdT(EdbSegP* seg1,EdbSegP* seg2);
116 Int_t GetLastFilledBin(TH1* hist);
117
118
119public:
120
121 // default constructor, empty shower
122 EdbShowerP(int nseg=0);
123
124 // default constructor, empty shower numbers for setting histogram names...
125 EdbShowerP(int number1, int number2, int number3, int nseg=0);
126
127 // virtual destructor due to inherited class
128 virtual ~EdbShowerP();
129
130
131
132
133 //-C- shower data: structures for the different parametrisations:
134 //
135 // made public to have access by other classes.
136 // The abbreviations follow either the persons,
137 // first time implementing them, or
138 // the type of physics case they follow...
139 //
140 // Attention after declarating "struct" ..:
141 // then after the "{}" brackets a semikolon is necessary here!
142
143 struct Para_FJ {
144 // Variables used for FJ ( "F_rederic J_uget" ) parametrisation
145 Float_t ShowerAxisAngle; // shower Axis angle (tan theta)
146 Int_t nseg; // identical to <<eNBT>>
151 Int_t longprofile[57]; // not identical to the ProfileLongitudinalBincontent of Para_YY !!
152
153 ClassDef (Para_FJ,1) // maybe it works, when writing //ClassDef hereafter....?
154 };
155 struct Para_LT {
156 // Variables used for LT ( "L_ongitudinal & T_ransversal" ) parametrisation
157 // Identical to "Variables used for FJ parametrisation" but with transprofile in addition
158 Float_t ShowerAxisAngle; // shower Axis angle (tan theta)
159 Int_t nseg; // identical to <<eNBT>>
164 Int_t transprofile[8];
165 Int_t longprofile[57]; // not identical to the ProfileLongitudinalBincontent of Para_YY !!
166
167 ClassDef (Para_LT,1) // maybe it works, when writing //ClassDef hereafter....?
168 };
169 struct Para_YC {
170 // Variables used for YC ( "Y_van C_affari" ) like parametrisation
171 Float_t ShowerAxisAngle; // shower Axis angle (tan theta)
172 Int_t nseg; // identical to <<eNBT>>
173 Float_t C1;
174 Float_t a1;
175 Float_t alpha;
176 Float_t nmax;
177
178 ClassDef (Para_YC,1) // maybe it works, when writing //ClassDef hereafter....?
179 };
180 struct Para_JC {
181 // Variables used for JC ( "J_uget C_affari" ) like parametrisation
182 // YC part
183 Float_t ShowerAxisAngle; // shower Axis angle (tan theta)
184 Int_t nseg; // identical to <<eNBT>>
185 Float_t C1;
186 Float_t a1;
187 Float_t alpha;
188 Float_t nmax;
189 // FJ part
190 //Float_t ShowerAxisAngle; // shower Axis angle (tan theta) // already there from YC part.
191 //Int_t nseg; // identical to <<eNBT>> // already there from YC part.
196 Int_t longprofile[57]; // not identical to the ProfileLongitudinalBincontent of Para_YY !!
197
198 ClassDef (Para_JC,1) // maybe it works, when writing //ClassDef hereafter....?
199 };
200 struct Para_XX {
201 // Variables used for XX parametrisation
202 Float_t ShowerAxisAngle; // shower Axis angle (tan theta)
203 Int_t nseg; // identical to <<eNBT>>
212
213 ClassDef (Para_XX,1) // maybe it works, when writing //ClassDef hereafter....?
214 };
215 struct Para_YY {
216 // Variables used for YY parametrisation
217 Float_t ShowerAxisAngle; // shower Axis angle (tan theta)
218 Int_t nseg; // identical to <<eNBT>>
221
222 ClassDef (Para_YY,1) // maybe it works, when writing //ClassDef hereafter....?
223 };
224 struct Para_PP {
225 // Variables used for PP ( "P_hoton P_arametrisation" ) parametrisation
226 Float_t ShowerAxisAngle; // shower Axis angle (tan theta)
227 Int_t nseg;
231 Float_t ePairChi2;
232
233 ClassDef (Para_PP,1) // maybe it works, when writing //ClassDef hereafter....?
234 };
235 struct Para_AS {
236 // Variables used for AS ( "A_ll S_egemts" ) parametrisation
237 // (But only the first 50 segments will be used. Isnt that a contradiction ???)
238 Int_t nseg; // identical to <<eNBT>>
239 Double_t edIP[50];
240 Double_t edMin[50];
241 Double_t edRLong[50];
242 Double_t edRTrans[50];
243 Double_t edeltarb[50];
244 Double_t edeltathetab[50];
245
246 ClassDef (Para_AS,1) // maybe it works, when writing //ClassDef hereafter....?
247 };
248 struct Para_SE {
249 // Variables used for SE ( "S_imple E_asy" ) like parametrisation
250 Float_t ShowerAxisAngle; // shower Axis angle (tan theta)
251 Int_t nseg; // identical to <<eNBT>>
252 Int_t npl; // identical to <<eNPl>>
254
255 ClassDef (Para_SE,1) // maybe it works, when writing //ClassDef hereafter....?
256 };
258 // Parametrisation Variables to store some extraInfo for the shower, which
259 // dont have necessarily have something to to with the PARA_!! parametrisation
260 Float_t InBT_E; // InBT->P()
261 Float_t InBT_Flag; // InBT->Flag()
262 Float_t InPairBT_E; // In0BT->P()+In1BT->P() if sum of Flag() ==0 (photon=electron+positron); else identical to InBT_E
263 Int_t ShowerLength; // max of Z()max -Z()min over all segments
264 Float_t InBT_IPToVtx; // IP from InBT to generic vertex. Commonly used: Vertex of G4 position vertex.
265 Float_t InBT_DeltaZToVtx; // DeltaZ from InBT to generic vertex. Commonly used: Vertex of G4 position vertex.
266
267 ClassDef (Para_ExtraInfo,1) // maybe it works, when writing //ClassDef hereafter....?
268 };
269 struct MCInfo_PGun {
270 // Variables MCInfo_PGun to get MC data from the simulation by MC info.
271 // Use this when the simulation was done with G4Particle generator
272 // And the corresponding outputfile is in FWM like format.
273 // FWM format to be specified: up to now:
274 // #MCEvt energy tantheta dirx diry dirz vtxposx vtxposy vtxposz TX TY X Y Z
275 Int_t MCEvt;
276 Int_t PDGId;
277 Float_t energy;
278 Float_t tantheta;
279 Float_t dirx;
280 Float_t diry;
281 Float_t dirz;
282 Float_t vtxposx;
283 Float_t vtxposy;
284 Float_t vtxposz;
285 Float_t TX;
286 Float_t TY;
287 Float_t Y;
288 Float_t X;
289 Float_t Z;
290 // These are the values for the incident particle! If its a gamma, for example,
291 // the do not necessarily coincide with these from the shower! Remember!
292
293 ClassDef (MCInfo_PGun,1) // maybe it works, when writing //ClassDef hereafter....?
294 };
296 // Variables MCInfo_PGun to get MC data from the simulation by MC info.
297 // Use this when the simulation was done with G4 Dario generator
298 // And the corresponding outputfile is in FWM like format.
299 Int_t eDUMMYVARIABLE; // not yet used.
300
301 ClassDef (MCInfo_Event,1) // maybe it works, when writing //ClassDef hereafter....?
302 };
303
304
305 // General Implementation of the Reco_ID structure:
306 // Instances are use for e-pi separation, or e-gamma separation and so on.
307 // Instances are dependent on the type of Parametriasation with which the shower
308 // was parametrized, so the eParaNr is saved.
309 struct Reco_ID {
310 Float_t eProb90; // Signal efficency
311 Float_t eProb5; // Background rejection
312
313 TString eReco_ID_Name; //"E_GAMMA";
314 Float_t eReco_ID_Nr; //= 0;
315
316 Int_t eParaNr; // refers to labelling of Parametrisations (0==FJ,1==YC...)
317
318 ClassDef (Reco_ID,1) // maybe it works, when writing //ClassDef hereafter....?
319 };
320
321 // General Implementation of the Reco_E structure:
322 // Instances are use for estimating the shower energy.
323 // Instances are dependent on the type of parametrisation with which the shower
324 // was parametrized, so the eParaNr is saved.
325 // Instances may also be dependent on the type of the shower, if its a
326 // gammaShower or a electronShower.
327 struct Reco_E {
328 Short_t eId;
329 Short_t ePDGId;
330 Float_t eEnergy;
333 Int_t eParaNr; // refers to labelling of Parametrisations (0==FJ,1==YC...)
334
335 ClassDef (Reco_E,1) // maybe it works, when writing //ClassDef hereafter....?
336 };
337
338 // General Implementation of the Reco_Vtx structure:
339 // Dummy structure...to be specified later....
340 struct Reco_Vtx {
341 Int_t eDUMMYVARIABLE; // not yet used.
342
343 ClassDef (Reco_Vtx,1) // maybe it works, when writing //ClassDef hereafter....?
344 };
345
346
347 // Object for the shower class description
348 // which contain additional information...
358 // Number of parameters used for the specific parametrisation.
359 Int_t ePara_N;
360
364
367
368 TObjArray* eReco_ID_Array; // create crash when not initialized??? yes, so better initialize it
369 TObjArray* eReco_E_Array; // even when not yet needed....
370 TObjArray* eReco_Vtx_Array; // implementation will come later ...
371
372
373 void Init();
374 void Set0();
376
378 return eTrackAS;
379 }
380 EdbVTA *VTAS() const {
381 return eVTAS;
382 }
383
384
385 //-C- Similar to TrackClass: basic functions which set or return
386 //-C- simple values for the shower
387
388 inline void SetCounters() {
389 N();
390 SetNpl();
391 SetN0();
392 SetN00();
393 }
394 inline void SetN0( int n0 ) {
395 eN0 = n0;
396 }
397 inline void SetN0() {
398 eN0 = eNpl-N();
399 }
400 inline Int_t N0() const {
401 return eN0;
402 }
403 inline void SetNpl( int npl ) {
404 eNpl=npl;
405 }
406 inline void SetNpl() {
407 if (eS) eNpl = 1+TMath::Abs(GetSegment(0)->PID() - GetSegment(N()-1)->PID());
408 }
409 inline Int_t Npl() const {
410 return eNpl;
411 }
412 inline Int_t N() const {
413 return (eS) ? eS->GetEntries() : 0;
414 }
415 inline void SetN00( int n00 ) {
416 eN00 = n00;
417 }
418 inline void SetN00() {
419 eN00 = eNpl-N();
420 }
421 inline Int_t N00() const {
422 return eN00;
423 }
424
425 inline TObjArray* GetSegmentArray() {
426 return eS;
427 }
428
429 inline EdbSegP *GetSegmentFirst() const {
430 return (eS) ? (EdbSegP*)(eS->First()) : 0;
431 }
432 inline EdbSegP *GetSegmentLast() const {
433 return (eS) ? (EdbSegP*)(eS->Last()) : 0;
434 }
435 inline EdbSegP *GetSegment(int i) const {
436 return (eS) ? (EdbSegP*)(eS->At(i)) : 0;
437 }
438
439 inline Float_t GetSegmentFirstZ() const {
440 return (eS) ? ((EdbSegP*)eS->First())->Z() : 9999999;
441 }
442 inline Float_t GetSegmentLastZ() const {
443 return (eS) ? ((EdbSegP*)eS->Last())->Z() : 9999999;
444 }
445 inline Float_t GetFirstZ() const {
446 return eFirstZ;
447 }
448 inline Float_t GetLastZ() const {
449 return eLastZ;
450 }
451
452 // EdbTrackP copied... needs to be filled with the corresponding ID values, obtained by the ID algos:
453 void SetPDG( int pdg ) {
454 ePDG=pdg;
455 }
456 Int_t PDG() const {
457 return ePDG;
458 }
459 Int_t GetPDG() const {
460 return PDG();
461 }
462 void SetM( float m ) {
463 eM=m;
464 }
465 Float_t M() const {
466 return eM;
467 }
468 Int_t GetM() const {
469 return M();
470 }
471
472
473 // Having EdbShowerP specific functions in it (no EdbTrackP equivalent here)
474
475 // Gravity Center, Axis:
476 inline EdbSegP* GetSegmentGravity() const {
478 }
479 inline Float_t GetSegmentAngle() const {
480 return eShowerAxisAngle;
481 }
482
483 // Add a segment:
484 void AddSegment(EdbSegP *s);
485 void AddSegmentAndUpdate(EdbSegP *s); // Attention, will execute the whole Update/Calculation Procedure
486 // for each BT which is attached.
487 // void RemoveSegment(EdbSegP *s); // NOT YET SUPPORTED.... isBUG in fedra. Solved from svn_1000
488 void RemoveSegment(EdbSegP *s, Bool_t UpdateAll=kFALSE);
489
490 // Set an array of (EdbSegP) as shower array:
491 inline void SetSegmentArray(TObjArray* segArray) {
492 eS=segArray;
493 Update();
494 }
495
496 // Sort ShowerSegments after ascending Z position:
497 void Sort();
498 Bool_t IsSorted();
499
500 // Clear functions:
501 void ClearAll();
502 inline void Clear() {
503 if (eS) eS->Clear();
504 }
507 }
510 }
511
512
513 inline Int_t GetNBT() const {
514 return eNBT;
515 }
516 inline Int_t GetNBTMC() const {
517 return eNBTMC;
518 }
519 inline Int_t GetNBTMCFlag(Int_t PdgArray) const {
520 return eNBTMCFlag[PdgArray];
521 }
522 inline Int_t GetNBTPlate(Int_t PIDdiff) const {
523 return eNBTPlate[PIDdiff];
524 }
525 inline Int_t GetNBTMCPlate(Int_t PIDdiff) const {
526 return eNBTMCPlate[PIDdiff];
527 }
528 inline Int_t GetNBTMCFlagPlate(Int_t PIDdiff,Int_t PdgArray) const {
529 return eNBTMCFlagPlate[PIDdiff][PdgArray];
530 }
531
532 inline Float_t GetPurity() const {
533 return ePurity;
534 }
535 inline Float_t GetSphericity() const {
536 return eSphericity;
537 }
538 inline TH1F* GetProfileLongitudinal() const {
540 }
541 inline TH1F* GetProfileTransversal() const {
542 return eProfileTransversal;
543 }
545
546 inline Bool_t GetParametrisationIsDone(Int_t nr) const {
547 return eParametrisationIsDone[nr];
548 }
549 Float_t GetParaVariable(Int_t ParaVariable, Int_t ParaNr);
550
551 inline Para_FJ GetPara_FJ() const {
552 return ePara_FJ;
553 }
554 inline Para_LT GetPara_LT() const {
555 return ePara_LT;
556 }
557 inline Para_YC GetPara_YC() const {
558 return ePara_YC;
559 }
560 inline Para_JC GetPara_JC() const {
561 return ePara_JC;
562 }
563 inline Para_XX GetPara_XX() const {
564 return ePara_XX;
565 }
566 inline Para_YY GetPara_YY() const {
567 return ePara_YY;
568 }
569 inline Para_PP GetPara_PP() const {
570 return ePara_PP;
571 }
572 inline Para_AS GetPara_AS() const {
573 return ePara_AS;
574 }
575 inline Para_SE GetPara_SE() const {
576 return ePara_SE;
577 }
579 return ePara_ExtraInfo;
580 }
581 // See comment in implementation, why we do this function:
582 void SetParaVariable(Float_t fParVar, Int_t ParaVariable, Int_t ParaNr);
583
584 inline Bool_t GetMCInfoIsDone(Int_t nr) const {
585 return eMCInfoIsDone[nr];
586 }
587 inline Bool_t GetExtraInfoIsDone(Int_t nr) const {
588 return eExtraInfoIsDone[nr];
589 }
591 return eMCInfo_PGun;
592 }
594 return eMCInfo_Event;
595 }
596
597 inline void SetMCInfoIsDone(Int_t nr, Bool_t IsDone) {
598 eMCInfoIsDone[nr]=IsDone;
599 return;
600 }
601 inline void SetExtraInfoIsDone(Int_t nr, Bool_t IsDone) {
602 eExtraInfoIsDone[nr]=IsDone;
603 return;
604 }
605 inline void SetMCInfo_PGun(MCInfo_PGun fMCInfo_PGun) {
606 eMCInfo_PGun=fMCInfo_PGun;
607 }
608 inline void SetMCInfo_Event(MCInfo_Event fMCInfo_Event) {
609 eMCInfo_Event=fMCInfo_Event;
610 }
611
612 inline void SetAlgName(TString AlgName) {
613 eAlgName=AlgName;
614 }
615 inline void SetAlgValue(Int_t AlgValue) {
616 eAlgValue=AlgValue;
617 }
618
619 inline void SetAlgParaValue(Int_t ParaValueNr, Float_t ParaValue) {
620 if (ParaValueNr>=10) return;
621 eParaValue[ParaValueNr]=ParaValue;
622 }
623 inline void SetAlgParaString(Int_t ParaStringNr, TString ParaString) {
624 if (ParaStringNr>=10) return;
625 eParaString[ParaStringNr]=ParaString;
626 }
627
628
629 //-C- Functions that calculate shower properties
630 void BuildNplN0();
631 void BuildNMC();
632 void BuildProfiles();
633 void BuildPlateProfile();
634 void BuildShowerAxis();
635 void BuildParametrisation(Int_t ParaNr);
636 void BuildParametrisation_FJ(); // 0
637 void BuildParametrisation_LT(); // 1
638 void BuildParametrisation_YC(); // 2
639 void BuildParametrisation_JC(); // 3
640 void BuildParametrisation_XX(); // 4
641 void BuildParametrisation_YY(); // 5
642 void BuildParametrisation_PP(); // 6
643 void BuildParametrisation_AS(); // 7
644 void BuildParametrisation_SE(); // 8
646
647 void CalcPurity();
648 void CalcSphericity();
650
651
652 Float_t CalcOpenAngle(Int_t type);
653 Float_t CalcOpenAngleSimple();
654 Double_t CalcIP(EdbSegP*, EdbVertex*);
655 Double_t CalcIP(EdbSegP*, double, double, double);
658
659 // Update all shower properties.
660 // Can be called each time after BT is added or
661 // when last BT was added.
662 void Update();
663 void UpdateX(); // Update all shower properties _AND_ build all parametrisations.
664
665
667 //-C- Functions for advanced features:
668 void MergeFromShower(EdbShowerP* show,Int_t MergingType=1);
671 void AddShower(EdbShowerP* show); // calls MergeFromShower...
672 void Finalize();
674
675
676 //-C- Print functions with different detail//output level
677 void Print();
678 void PrintNice();
679 void PrintBasics();
680 void PrintMetaData();
681 void PrintSegments();
682 void PrintParametrisation(Int_t ParaNr=0);
693 void PrintMCInfo_PGun();
694 void PrintAll();
695
696 //-C- HELP function , in case you dont know anything about it ...
697 void Help();
698
699 ClassDef(EdbShowerP,1) // Root Class Definition for object EdbShowerP
700
701};
702
703#endif /* ROOT_EdbShowerP */
Definition: EdbSegP.h:21
Float_t Z() const
Definition: EdbSegP.h:153
Int_t PID() const
Definition: EdbSegP.h:148
Definition: EdbShowerP.h:28
Int_t eNBTMCPlate[57]
Definition: EdbShowerP.h:75
void SetExtraInfoIsDone(Int_t nr, Bool_t IsDone)
Definition: EdbShowerP.h:601
void BuildParametrisation_YY()
Definition: EdbShowerP.cxx:2106
Float_t ePurity
Definition: EdbShowerP.h:79
Float_t GetParaVariable(Int_t ParaVariable, Int_t ParaNr)
Definition: EdbShowerP.cxx:2239
Para_YC ePara_YC
Definition: EdbShowerP.h:351
Bool_t eParametrisationIsDone[10]
Definition: EdbShowerP.h:44
EdbSegP * GetSegment(int i) const
Definition: EdbShowerP.h:435
Float_t M() const
Definition: EdbShowerP.h:465
Float_t eShowerAngularDeviationTYDistribution_sigma
Definition: EdbShowerP.h:102
void PrintParametrisation_JC()
Definition: EdbShowerP.cxx:2479
void AddSegment(EdbSegP *s)
Definition: EdbShowerP.cxx:299
Bool_t GetExtraInfoIsDone(Int_t nr) const
Definition: EdbShowerP.h:587
Float_t GetFirstZ() const
Definition: EdbShowerP.h:445
void PrintParametrisation_ExtraInfo()
Definition: EdbShowerP.cxx:2606
EdbShowerP(int nseg=0)
Definition: EdbShowerP.cxx:10
EdbVTA * eVTAS
track to which the shower start is attached to
Definition: EdbShowerP.h:65
void PrintMetaData()
Definition: EdbShowerP.cxx:2345
Int_t eNBT
Definition: EdbShowerP.h:71
Bool_t eMCInfoIsDone[2]
Definition: EdbShowerP.h:46
Double_t CalcDistTransversal(EdbSegP *, EdbSegP *)
Definition: EdbShowerP.cxx:2796
Float_t eEnergyUncorrected
Definition: EdbShowerP.h:109
Float_t eShowerAngularDeviationTYDistribution_mean
Definition: EdbShowerP.h:101
EdbSegP * eShowerAxisCenterGravityBT
Definition: EdbShowerP.h:95
Int_t eAlgValue
Definition: EdbShowerP.h:40
void ClearProfileLongitudinalHisto()
Definition: EdbShowerP.h:505
Short_t eFirstPlateZ
Definition: EdbShowerP.h:52
EdbTrackP * eTrackAS
Definition: EdbShowerP.h:64
Float_t CalcOpenAngle(Int_t type)
Definition: EdbShowerP.cxx:853
TObjArray * eReco_ID_Array
Definition: EdbShowerP.h:368
Int_t PDG() const
Definition: EdbShowerP.h:456
Float_t eShowerAxisAngle
Definition: EdbShowerP.h:93
EdbVTA * VTAS() const
Definition: EdbShowerP.h:380
Short_t eLastPlatePID
Definition: EdbShowerP.h:51
Int_t eN0
Definition: EdbShowerP.h:63
EdbSegP * GetSegmentLast() const
Definition: EdbShowerP.h:432
Int_t ePara_N
Definition: EdbShowerP.h:359
void Sort()
Definition: EdbShowerP.cxx:362
void BuildPlateProfile()
Definition: EdbShowerP.cxx:563
void CalcSphericity()
Definition: EdbShowerP.cxx:786
MCInfo_Event GetMCInfo_Event() const
Definition: EdbShowerP.h:593
Int_t N() const
Definition: EdbShowerP.h:412
void SetParaVariable(Float_t fParVar, Int_t ParaVariable, Int_t ParaNr)
Definition: EdbShowerP.cxx:2310
Para_JC GetPara_JC() const
Definition: EdbShowerP.h:560
void ClearAll()
Definition: EdbShowerP.cxx:287
Float_t eShowerAngularDeviationTXDistribution_mean
Definition: EdbShowerP.h:99
void SetMCInfo_PGun(MCInfo_PGun fMCInfo_PGun)
Definition: EdbShowerP.h:605
Para_SE ePara_SE
Definition: EdbShowerP.h:357
TString eTransversalProfileName
Definition: EdbShowerP.h:36
void PrintParametrisation(Int_t ParaNr=0)
Definition: EdbShowerP.cxx:2376
Int_t eMC
Definition: EdbShowerP.h:81
void UpdateX()
Definition: EdbShowerP.cxx:1000
Para_FJ ePara_FJ
Definition: EdbShowerP.h:349
void BuildParametrisation_ExtraInfo()
Definition: EdbShowerP.cxx:2217
void PrintParametrisation_SE()
Definition: EdbShowerP.cxx:2593
Bool_t GetMCInfoIsDone(Int_t nr) const
Definition: EdbShowerP.h:584
Float_t eShowerAngularDeviationTXDistribution_sigma
Definition: EdbShowerP.h:100
void SetAlgParaString(Int_t ParaStringNr, TString ParaString)
Definition: EdbShowerP.h:623
Int_t N0() const
Definition: EdbShowerP.h:400
void BuildParametrisation_XX()
Definition: EdbShowerP.cxx:2046
Bool_t eExtraInfoIsDone[2]
Definition: EdbShowerP.h:45
void SetAlgValue(Int_t AlgValue)
Definition: EdbShowerP.h:615
Int_t GetLastFilledBin(TH1 *hist)
Definition: EdbShowerP.cxx:2801
virtual ~EdbShowerP()
Definition: EdbShowerP.cxx:79
Short_t eFirstPlate
Definition: EdbShowerP.h:48
TH1F * GetProfileLongitudinalPlate()
Definition: EdbShowerP.cxx:2812
Float_t GetSegmentFirstZ() const
Definition: EdbShowerP.h:439
Float_t eM
vertex to which the shower start is attached to
Definition: EdbShowerP.h:67
TH1F * GetProfileTransversal() const
Definition: EdbShowerP.h:541
void PrintNice()
Definition: EdbShowerP.cxx:2339
void PrintMCInfo_PGun()
Definition: EdbShowerP.cxx:2623
Float_t eLastZ
Definition: EdbShowerP.h:55
Int_t GetNBTMCPlate(Int_t PIDdiff) const
Definition: EdbShowerP.h:525
void BuildParametrisation_YC()
Definition: EdbShowerP.cxx:1775
Double_t GetdMin(EdbSegP *seg1, EdbSegP *seg2)
Definition: EdbShowerP.cxx:2719
Bool_t GetParametrisationIsDone(Int_t nr) const
Definition: EdbShowerP.h:546
void BuildParametrisation(Int_t ParaNr)
Definition: EdbShowerP.cxx:1190
Para_XX ePara_XX
Definition: EdbShowerP.h:353
Para_YY GetPara_YY() const
Definition: EdbShowerP.h:566
Float_t eParaValue[10]
Definition: EdbShowerP.h:41
Int_t GetNBTMCFlag(Int_t PdgArray) const
Definition: EdbShowerP.h:519
void Init()
Definition: EdbShowerP.cxx:114
Para_XX GetPara_XX() const
Definition: EdbShowerP.h:563
void SetM(float m)
Definition: EdbShowerP.h:462
EdbSegP * GetSegmentFirst() const
Definition: EdbShowerP.h:429
Reco_Vtx eReco_Vtx
Definition: EdbShowerP.h:366
Float_t GetSegmentLastZ() const
Definition: EdbShowerP.h:442
Para_PP GetPara_PP() const
Definition: EdbShowerP.h:569
Float_t eEnergyMC
Definition: EdbShowerP.h:80
void SetN00()
Definition: EdbShowerP.h:418
Double_t CalcIP(EdbSegP *, EdbVertex *)
Definition: EdbShowerP.cxx:2761
Float_t eEnergyCorrected
Definition: EdbShowerP.h:110
void SetPDG(int pdg)
Definition: EdbShowerP.h:453
EdbSegP * GetSegmentGravity() const
Definition: EdbShowerP.h:476
Float_t eEnergy
Definition: EdbShowerP.h:108
Int_t GetNBT() const
Definition: EdbShowerP.h:513
void SetAlgName(TString AlgName)
Definition: EdbShowerP.h:612
void AddSegmentAndUpdate(EdbSegP *s)
Definition: EdbShowerP.cxx:331
void CalcShowerAngularDeviationDistribution()
Definition: EdbShowerP.cxx:740
MCInfo_PGun eMCInfo_PGun
Definition: EdbShowerP.h:362
void Set0()
Definition: EdbShowerP.cxx:127
Short_t eLastPlate
Definition: EdbShowerP.h:49
Float_t GetLastZ() const
Definition: EdbShowerP.h:448
void BuildNplN0()
Definition: EdbShowerP.cxx:416
void BuildParametrisation_PP()
Definition: EdbShowerP.cxx:2145
TObjArray * eReco_Vtx_Array
Definition: EdbShowerP.h:370
void BuildParametrisation_SE()
Definition: EdbShowerP.cxx:2192
Para_AS ePara_AS
Definition: EdbShowerP.h:356
TH1F * GetProfileLongitudinal() const
Definition: EdbShowerP.h:538
void Set0Parametrizations()
Definition: EdbShowerP.cxx:186
Int_t eNBTMCFlag[99]
Definition: EdbShowerP.h:73
void RemoveSegment(EdbSegP *s, Bool_t UpdateAll=kFALSE)
Definition: EdbShowerP.cxx:341
Reco_E eReco_E
Definition: EdbShowerP.h:365
void PrintParametrisation_YY()
Definition: EdbShowerP.cxx:2533
void Help()
Definition: EdbShowerP.cxx:2661
Float_t eFirstZ
Definition: EdbShowerP.h:54
void CalcPurity()
Definition: EdbShowerP.cxx:775
void BuildShowerAxis()
Definition: EdbShowerP.cxx:600
void SetN00(int n00)
Definition: EdbShowerP.h:415
Int_t eN00
Definition: EdbShowerP.h:77
Short_t eFirstPlatePID
Definition: EdbShowerP.h:50
void MergeFromShowerByPosition(EdbShowerP *show)
Definition: EdbShowerP.cxx:1136
Para_ExtraInfo GetPara_ExtraInfo() const
Definition: EdbShowerP.h:578
TObjArray * GetSegmentArray()
Definition: EdbShowerP.h:425
void PrintParametrisation_LT()
Definition: EdbShowerP.cxx:2419
TH1F * eProfileLongitudinal
Definition: EdbShowerP.h:86
Short_t eLastPlateZ
Definition: EdbShowerP.h:53
void SetCounters()
Definition: EdbShowerP.h:388
MCInfo_Event eMCInfo_Event
Definition: EdbShowerP.h:363
void BuildParametrisation_AS()
Definition: EdbShowerP.cxx:2180
TObjArray * eS
Definition: EdbShowerP.h:61
void BuildProfiles()
Definition: EdbShowerP.cxx:445
Para_PP ePara_PP
Definition: EdbShowerP.h:355
void BuildParametrisation_LT()
Definition: EdbShowerP.cxx:1761
Int_t eNBTMCFlagPlate[57][99]
Definition: EdbShowerP.h:76
Int_t GetNBTPlate(Int_t PIDdiff) const
Definition: EdbShowerP.h:522
Int_t N00() const
Definition: EdbShowerP.h:421
void BuildParametrisation_JC()
Definition: EdbShowerP.cxx:2029
Int_t GetPDG() const
Definition: EdbShowerP.h:459
Para_AS GetPara_AS() const
Definition: EdbShowerP.h:572
void Print()
-— EXPERIMENTAL STATUS —
Definition: EdbShowerP.cxx:2333
Para_YC GetPara_YC() const
Definition: EdbShowerP.h:557
Int_t eNpl
Definition: EdbShowerP.h:62
Double_t GetdT(EdbSegP *seg1, EdbSegP *seg2)
Definition: EdbShowerP.cxx:2756
EdbTrackP * TrackAS() const
Definition: EdbShowerP.h:377
Bool_t IsSorted()
Definition: EdbShowerP.cxx:386
void ClearProfileTransversalHisto()
Definition: EdbShowerP.h:508
Int_t eNBTMC
Definition: EdbShowerP.h:72
Double_t CalcDistLongitudinal(EdbSegP *, EdbSegP *)
Definition: EdbShowerP.cxx:2791
TString eParaString[10]
Definition: EdbShowerP.h:42
Para_JC ePara_JC
Definition: EdbShowerP.h:352
void SetN0()
Definition: EdbShowerP.h:397
Int_t GetNBTMC() const
Definition: EdbShowerP.h:516
Float_t GetSphericity() const
Definition: EdbShowerP.h:535
Short_t eId
Definition: EdbShowerP.h:106
TH1F * eProfileTransversal
Definition: EdbShowerP.h:87
void SetNpl()
Definition: EdbShowerP.h:406
Int_t Npl() const
Definition: EdbShowerP.h:409
void SetN0(int n0)
Definition: EdbShowerP.h:394
void SetMCInfo_Event(MCInfo_Event fMCInfo_Event)
Definition: EdbShowerP.h:608
void Finalize()
Definition: EdbShowerP.cxx:1026
void SetNpl(int npl)
Definition: EdbShowerP.h:403
void BuildParametrisation_FJ()
Definition: EdbShowerP.cxx:1235
Para_ExtraInfo ePara_ExtraInfo
Definition: EdbShowerP.h:361
void PrintParametrisation_XX()
Definition: EdbShowerP.cxx:2513
void Clear()
Definition: EdbShowerP.h:502
Float_t CalcOpenAngleSimple()
Definition: EdbShowerP.cxx:838
void PrintParametrisation_FJ()
Definition: EdbShowerP.cxx:2392
Para_LT ePara_LT
Definition: EdbShowerP.h:350
void MergeFromShowerByAddress(EdbShowerP *show)
Definition: EdbShowerP.cxx:1072
void PrintParametrisation_YC()
Definition: EdbShowerP.cxx:2457
Int_t eNBTPlate[57]
Definition: EdbShowerP.h:74
void MergeFromShower(EdbShowerP *show, Int_t MergingType=1)
-— EXPERIMENTAL STATUS —
Definition: EdbShowerP.cxx:1054
void PrintSegments()
Definition: EdbShowerP.cxx:2367
Int_t ePDG
Definition: EdbShowerP.h:68
void SetSegmentArray(TObjArray *segArray)
Definition: EdbShowerP.h:491
void SetAlgParaValue(Int_t ParaValueNr, Float_t ParaValue)
Definition: EdbShowerP.h:619
Float_t eSphericity
Definition: EdbShowerP.h:82
void PrintAll()
Definition: EdbShowerP.cxx:2646
Para_FJ GetPara_FJ() const
Definition: EdbShowerP.h:551
Para_YY ePara_YY
Definition: EdbShowerP.h:354
void PrintParametrisation_AS()
Definition: EdbShowerP.cxx:2577
void PrintBasics()
Definition: EdbShowerP.cxx:2360
MCInfo_PGun GetMCInfo_PGun() const
Definition: EdbShowerP.h:590
Float_t GetSegmentAngle() const
Definition: EdbShowerP.h:479
Float_t GetPurity() const
Definition: EdbShowerP.h:532
Double_t GetdR(EdbSegP *seg1, EdbSegP *seg2)
Definition: EdbShowerP.cxx:2714
Short_t ePDGId
Definition: EdbShowerP.h:107
Int_t GetNBTMCFlagPlate(Int_t PIDdiff, Int_t PdgArray) const
Definition: EdbShowerP.h:528
TString eAlgName
Definition: EdbShowerP.h:39
TString eLongitudinalProfileName
Definition: EdbShowerP.h:35
void Update()
Definition: EdbShowerP.cxx:975
Para_LT GetPara_LT() const
Definition: EdbShowerP.h:554
void BuildNMC()
Definition: EdbShowerP.cxx:400
TObjArray * eReco_E_Array
Definition: EdbShowerP.h:369
Int_t GetM() const
Definition: EdbShowerP.h:468
Para_SE GetPara_SE() const
Definition: EdbShowerP.h:575
void PrintParametrisation_PP()
Definition: EdbShowerP.cxx:2561
void AddShower(EdbShowerP *show)
void SetMCInfoIsDone(Int_t nr, Bool_t IsDone)
Definition: EdbShowerP.h:597
Definition: EdbPattern.h:113
Definition: EdbVertex.h:26
Definition: EdbVertex.h:69
void hist()
Definition: init.C:23
s
Definition: check_shower.C:55
Definition: AlignmentCint.cxx:51
Definition: EdbShowerP.h:295
Int_t eDUMMYVARIABLE
Definition: EdbShowerP.h:299
Definition: EdbShowerP.h:269
Float_t vtxposy
Definition: EdbShowerP.h:283
Float_t Y
Definition: EdbShowerP.h:287
Int_t MCEvt
Definition: EdbShowerP.h:275
Float_t vtxposz
Definition: EdbShowerP.h:284
Float_t Z
Definition: EdbShowerP.h:289
Int_t PDGId
Definition: EdbShowerP.h:276
Float_t X
Definition: EdbShowerP.h:288
Float_t vtxposx
Definition: EdbShowerP.h:282
Float_t TX
Definition: EdbShowerP.h:285
Float_t tantheta
Definition: EdbShowerP.h:278
Float_t diry
Definition: EdbShowerP.h:280
Float_t dirz
Definition: EdbShowerP.h:281
Float_t TY
Definition: EdbShowerP.h:286
Float_t energy
Definition: EdbShowerP.h:277
Float_t dirx
Definition: EdbShowerP.h:279
Definition: EdbShowerP.h:235
Double_t edeltarb[50]
Definition: EdbShowerP.h:243
Int_t nseg
Definition: EdbShowerP.h:238
Double_t edeltathetab[50]
Definition: EdbShowerP.h:244
Double_t edIP[50]
Definition: EdbShowerP.h:239
Double_t edMin[50]
Definition: EdbShowerP.h:240
Double_t edRTrans[50]
Definition: EdbShowerP.h:242
Double_t edRLong[50]
Definition: EdbShowerP.h:241
Definition: EdbShowerP.h:257
Float_t InBT_Flag
Definition: EdbShowerP.h:261
Float_t InBT_DeltaZToVtx
Definition: EdbShowerP.h:265
Float_t InBT_IPToVtx
Definition: EdbShowerP.h:264
Int_t ShowerLength
Definition: EdbShowerP.h:263
Float_t InPairBT_E
Definition: EdbShowerP.h:262
Float_t InBT_E
Definition: EdbShowerP.h:260
Definition: EdbShowerP.h:143
Float_t BT_deltaT_rms
Definition: EdbShowerP.h:150
Int_t nseg
Definition: EdbShowerP.h:146
Float_t BT_deltaR_rms
Definition: EdbShowerP.h:148
Float_t BT_deltaR_mean
Definition: EdbShowerP.h:147
Int_t longprofile[57]
Definition: EdbShowerP.h:151
Float_t ShowerAxisAngle
Definition: EdbShowerP.h:145
Float_t BT_deltaT_mean
Definition: EdbShowerP.h:149
Definition: EdbShowerP.h:180
Int_t nseg
Definition: EdbShowerP.h:184
Float_t nmax
Definition: EdbShowerP.h:188
Float_t alpha
Definition: EdbShowerP.h:187
Float_t C1
Definition: EdbShowerP.h:185
Float_t BT_deltaT_mean
Definition: EdbShowerP.h:194
Int_t longprofile[57]
Definition: EdbShowerP.h:196
Float_t BT_deltaT_rms
Definition: EdbShowerP.h:195
Float_t BT_deltaR_rms
Definition: EdbShowerP.h:193
Float_t ShowerAxisAngle
Definition: EdbShowerP.h:183
Float_t BT_deltaR_mean
Definition: EdbShowerP.h:192
Float_t a1
Definition: EdbShowerP.h:186
Definition: EdbShowerP.h:155
Float_t BT_deltaR_rms
Definition: EdbShowerP.h:161
Int_t longprofile[57]
Definition: EdbShowerP.h:165
Float_t BT_deltaR_mean
Definition: EdbShowerP.h:160
Int_t nseg
Definition: EdbShowerP.h:159
Float_t ShowerAxisAngle
Definition: EdbShowerP.h:158
Float_t BT_deltaT_rms
Definition: EdbShowerP.h:163
Int_t transprofile[8]
Definition: EdbShowerP.h:164
Float_t BT_deltaT_mean
Definition: EdbShowerP.h:162
Definition: EdbShowerP.h:224
Float_t ePairOpeningAngle
Definition: EdbShowerP.h:228
Int_t nseg
Definition: EdbShowerP.h:227
Float_t ShowerAxisAngle
Definition: EdbShowerP.h:226
Float_t ePairChi2
Definition: EdbShowerP.h:231
Float_t ePairOpeningDist_dMin
Definition: EdbShowerP.h:229
Float_t ePairOpeningDist_dR
Definition: EdbShowerP.h:230
Definition: EdbShowerP.h:248
Int_t nseg
Definition: EdbShowerP.h:251
Float_t efficiencyAtShowerAxisAngle
Definition: EdbShowerP.h:253
Float_t ShowerAxisAngle
Definition: EdbShowerP.h:250
Int_t npl
Definition: EdbShowerP.h:252
Definition: EdbShowerP.h:200
Float_t Max_ProfileLongitudinal
Definition: EdbShowerP.h:206
Float_t Last_ProfileTransversal
Definition: EdbShowerP.h:211
Int_t nseg
Definition: EdbShowerP.h:203
Float_t Last_ProfileLongitudinal
Definition: EdbShowerP.h:210
Float_t Max_ProfileTransversal
Definition: EdbShowerP.h:209
Float_t RMS_ProfileLongitudinal
Definition: EdbShowerP.h:205
Float_t Mean_ProfileLongitudinal
Definition: EdbShowerP.h:204
Float_t RMS_ProfileTransversal
Definition: EdbShowerP.h:208
Float_t Mean_ProfileTransversal
Definition: EdbShowerP.h:207
Float_t ShowerAxisAngle
Definition: EdbShowerP.h:202
Definition: EdbShowerP.h:169
Float_t ShowerAxisAngle
Definition: EdbShowerP.h:171
Float_t C1
Definition: EdbShowerP.h:173
Float_t alpha
Definition: EdbShowerP.h:175
Int_t nseg
Definition: EdbShowerP.h:172
Float_t a1
Definition: EdbShowerP.h:174
Float_t nmax
Definition: EdbShowerP.h:176
Definition: EdbShowerP.h:215
Int_t ProfileLongitudinalBincontent[57]
Definition: EdbShowerP.h:219
Float_t ShowerAxisAngle
Definition: EdbShowerP.h:217
Int_t ProfileTransversalBincontent[8]
Definition: EdbShowerP.h:220
Int_t nseg
Definition: EdbShowerP.h:218
Definition: EdbShowerP.h:327
Float_t eEnergyUncorrected
Definition: EdbShowerP.h:331
Short_t eId
Definition: EdbShowerP.h:328
Short_t ePDGId
Definition: EdbShowerP.h:329
Float_t eEnergyCorrected
Definition: EdbShowerP.h:332
Float_t eEnergy
Definition: EdbShowerP.h:330
Int_t eParaNr
Definition: EdbShowerP.h:333
Definition: EdbShowerP.h:309
Float_t eProb5
Definition: EdbShowerP.h:311
TString eReco_ID_Name
Definition: EdbShowerP.h:313
Float_t eReco_ID_Nr
Definition: EdbShowerP.h:314
Int_t eParaNr
Definition: EdbShowerP.h:316
Float_t eProb90
Definition: EdbShowerP.h:310
Definition: EdbShowerP.h:340
Int_t eDUMMYVARIABLE
Definition: EdbShowerP.h:341
Int_t type
Definition: testBGReduction_By_ANN.C:15