48 -5.191, -4.889, -4.716, -4.538, -4.363, -4.191, -4.013, -3.839, -3.664, -3.489, -3.314, -3.139, -2.964, -2.853,
49 -2.650, -2.500, -2.322, -2.172, -2.043, -1.930, -1.830, -1.740, -1.653, -1.566, -1.479, -1.392, -1.305, -1.218,
50 -1.131, -1.044, -0.957, -0.870, -0.783, -0.696, -0.609, -0.522, -0.435, -0.348, -0.261, -0.174, -0.087, 0.000,
51 0.087, 0.174, 0.261, 0.348, 0.435, 0.522, 0.609, 0.696, 0.783, 0.870, 0.957, 1.044, 1.131, 1.218,
52 1.305, 1.392, 1.479, 1.566, 1.653, 1.740, 1.830, 1.930, 2.043, 2.172, 2.322, 2.500, 2.650, 2.853,
53 2.964, 3.139, 3.314, 3.489, 3.664, 3.839, 4.013, 4.191, 4.363, 4.538, 4.716, 4.889, 5.191};
77 :
TParticle(
pdg, status,
mother1,
mother2,
daughter1,
daughter2, px, py, pz,
etot, 0, 0, 0, 0)
91 RecHit(
float pt,
float x,
float y,
float z) : fPt(
pt), fX(
x), fY(
y), fZ(z) {}
116 using REveCaloDataSliceSelector::ProcessSelection;
125 for (
int t = 0; t < fCollection->GetNItems(); ++t) {
127 if (
tower->fEta > cd.fEtaMin &&
tower->fEta < cd.fEtaMax &&
tower->fPhi > cd.fPhiMin &&
128 tower->fPhi < cd.fPhiMax && fCollection->GetDataItem(t)->GetVisible()) {
134 fCollection->GetItemList()->RefSelectedSet() =
item_set;
135 sel->NewElementPicked(fCollection->GetItemList()->GetElementId(),
multi,
true,
item_set);
138 using REveCaloDataSliceSelector::GetCellsFromSecondaryIndices;
144 for (
auto &i :
idcs) {
149 for (
size_t ci = 0;
ci < out.size(); ++
ci) {
150 if (out[
ci].fTower ==
bin && out[
ci].fSlice == GetSliceIndex()) {
151 float oldv = out[
ci].fFraction;
152 out[
ci].fFraction =
oldv + frac;
190 list->SetName(
"Jets");
191 for (
int i = 1; i <=
N; ++i) {
192 double pt =
r.Uniform(0.5, 10);
193 double eta =
r.Uniform(-2.55, 2.55);
196 double px =
pt * std::cos(phi);
197 double py =
pt * std::sin(phi);
198 double pz =
pt * (1. / (std::tan(2 * std::atan(std::exp(-eta)))));
200 auto jet =
new Jet(0, 0, 0, 0, 0, 0, px, py, pz, std::sqrt(px * px + py * py + pz * pz + 80 * 80));
201 jet->SetEtaSize(
r.Uniform(0.02, 0.2));
202 jet->SetPhiSize(
r.Uniform(0.01, 0.3));
213 list->SetName(
"Tracks");
214 for (
int i = 1; i <=
N; ++i) {
215 double pt =
r.Uniform(0.5, 10);
216 double eta =
r.Uniform(-2.55, 2.55);
219 double px =
pt * std::cos(phi);
220 double py =
pt * std::sin(phi);
221 double pz =
pt * (1. / (std::tan(2 * std::atan(std::exp(-eta)))));
225 new TParticle(0, 0, 0, 0, 0, 0, px, py, pz, std::sqrt(px * px + py * py + pz * pz + 80 * 80), 0, 0, 0, 0);
227 int pdg = 11 * (
r.Integer(2) > 0 ? 1 : -1);
240 list->SetName(
"RecHits");
242 for (
int i = 1; i <=
N; ++i) {
243 float pt =
r.Uniform(0.5, 10);
244 float x =
r.Uniform(-200, 200);
245 float y =
r.Uniform(-200, 200);
246 float z =
r.Uniform(-500, 500);
273 hlist->SetName(
"HCAL");
275 for (
int i = 0; i <=
jlist->GetLast(); ++i) {
277 float offX =
j->Eta();
279 for (
int k = 0; k < 20; ++k) {
300 bool HaveSingleProduct()
const override {
return false; }
308 jet->AddEllipticCone(
dj.Eta(),
dj.Phi(),
dj.GetEtaSize(),
dj.GetPhiSize());
310 jet->SetLineColor(
jet->GetMainColor());
312 float size = 50.f *
dj.Pt();
313 double theta =
dj.Theta();
315 double phi =
dj.Phi();
338 marker->SetScaleCenter(
p1.fX,
p1.fY,
p1.fZ);
339 marker->AddLine(
p1,
p2);
340 marker->SetLineWidth(4);
342 marker->AddMarker(0, 0.9);
345 marker->SetName(
Form(
"line %s %d", Collection()->GetCName(), idx));
349 using REveDataProxyBuilderBase::LocalModelChanges;
355 cone->SetLineColor(
cone->GetMainColor());
375 using REveElement::GetSelectionMaster;
378 if (fSelectionMaster) {
380 il->RefSelectedSet() = RefSelectedSet();
393 boxset->SetPickable(
true);
394 boxset->SetAlwaysSecSelect(
true);
395 boxset->SetDetIdsAsSecondaryIndices(
true);
400#define RND_BOX(x) (Float_t) r.Uniform(-(x), (x))
418 boxset->DigitValue(
item->GetVisible() ? 1 : 0);
419 if (
item->GetVisible())
427 using REveDataProxyBuilderBase::Build;
435 using REveDataProxyBuilderBase::FillImpliedSelected;
443 using REveDataProxyBuilderBase::ModelChanges;
446 for (
auto &i : ids) {
448 auto item = Collection()->GetDataItem(i);
450 if (
item->GetVisible()) {
464 TH2F *fHist{
nullptr};
473 fHist =
new TH2F(
"caloHist",
"caloHist", fw3dlego::xbins_n - 1, fw3dlego::xbins, 72, -
M_PI,
M_PI);
477 .Setup(Collection()->GetCName(), 0., Collection()->GetMainColor(), Collection()->GetMainTransparency());
479 fCaloData->GetSelector()->AddSliceSelector(std::unique_ptr<REveCaloDataSliceSelector>(
487 using REveDataProxyBuilderBase::Build;
494 .Setup(Collection()->GetCName(), 0., Collection()->GetMainColor(), Collection()->GetMainTransparency());
500 if (!
item->GetVisible())
508 using REveDataProxyBuilderBase::FillImpliedSelected;
516 using REveDataProxyBuilderBase::ModelChanges;
519 BuildProduct(Collection(),
nullptr,
nullptr);
530 Event *fEvent{
nullptr};
535 std::vector<REveDataProxyBuilderBase *>
m_builders;
554 m_viewContext->SetBarrel(
r, z);
555 m_viewContext->SetTrackPropagator(
prop);
560 tableInfo->table(
"TParticle").column(
"pt", 1,
"i.Pt()").column(
"eta", 3,
"i.Eta()").column(
"phi", 3,
"i.Phi()");
563 .column(
"eta", 1,
"i.Eta()")
564 .column(
"phi", 1,
"i.Phi()")
565 .column(
"etasize", 2,
"i.GetEtaSize()")
566 .column(
"phisize", 2,
"i.GetPhiSize()");
568 tableInfo->table(
"RecHit").column(
"pt", 1,
"i.fPt");
570 tableInfo->table(
"RCaloTower").column(
"eta", 3,
"i.fEta").column(
"phi", 3,
"i.fPhi").column(
"Et", 3,
"i.fEt");
572 m_viewContext->SetTableViewInfo(
tableInfo);
574 for (
auto &
c :
eveMng->GetScenes()->RefChildren()) {
575 if (
c !=
eveMng->GetGlobalScene() &&
strncmp(
c->GetCName(),
"Geometry", 8)) {
578 if (!
strncmp(
c->GetCName(),
"Table", 5))
579 c->AddElement(m_viewContext->GetTableViewInfo());
592 for (
int i = 0; i <=
l->GetLast(); ++i) {
620 fEvent->fCaloData->DataChanged();
641 scene->AddElement(product);
652 auto tableMng = m_viewContext->GetTableViewInfo();
658 if (
strncmp(s->GetCTitle(),
"Table", 5) == 0) {
669 for (
int t = 0; t <
N; t++) {
671 collection->GetItemList()->AddTooltipExpression(
te.fName,
te.fExpression);
674 collection->GetItemList()->SetItemsChangeDelegate(
678 collection->GetItemList()->SetFillImpliedSelectedDelegate(
686 auto mngTable = m_viewContext->GetTableViewInfo();
689 if (
el->GetName() ==
"Tracks")
690 mngTable->SetDisplayedCollection(
el->GetElementId());
703 proxy->ModelChanges(ids);
735 virtual void NextEvent()
737 eveMng->GetSelection()->ClearSelection();
738 eveMng->GetHighlight()->ClearSelection();
748 using REveSelection::Deviator::DeviateSelection;
770 eveMng = REveManager::Create();
771 auto event =
new Event();
775 auto deviator = std::make_shared<FWSelectionDeviator>();
784 b1->SetMainColor(
kCyan);
785 b1->SetMainTransparency(90);
786 eveMng->GetGlobalScene()->AddElement(b1);
793 rhoZView->SetCameraType(REveViewer::kCameraOrthoXOY);
809 trackCollection->SetFilterExpr(
"i.Pt() > 4.1 && std::abs(i.Eta()) < 1");
828 calo3d->SetMaxTowerH(300);
847 eveMng->GetWorld()->AddCommand(
"NextEvent",
"sap-icon://step",
eventMng,
"NextEvent()");
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
bool Bool_t
Boolean (0=false, 1=true) (bool)
int Int_t
Signed integer 4 bytes (int)
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
float Float_t
Float 4 bytes (float)
double Double_t
Double 8 bytes.
#define ClassDef(name, id)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
static unsigned int total
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t sel
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h prop
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char cname
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
R__EXTERN TRandom * gRandom
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
Collection of 3D primitives (fixed-size boxes, boxes of different sizes, or arbitrary sexto-epipeds,...
Visualization of a calorimeter event data in 2D.
Visualization of a calorimeter event data in 3D.
A central manager for calorimeter data of an event written in TH2F.
Cell data inner structure.
Base class for REveUtil visualization elements, providing hierarchy management, rendering control and...
Wrapper for TGeoShape with absolute positioning and color attributes allowing display of extracted TG...
Draws a jet cone with leading particle is specified in (eta,phi) and cone radius is given.
Implements constant magnetic filed that switches on given axial radius fR2 from vector fBIn to fBOut.
Manager class for steering of projections and managing projected objects.
Straight-line-set with extra scaling, useful for projectables that need to be scaled in accordance wi...
Eve representation of TGLScene.
Make sure there is a SINGLE running REveSelection for each selection type (select/highlight).
Holding structure for a number of track rendering parameters.
Visual representation of a track.
std::vector< CellId_t > vCellId_t
std::set< REveElement * > Set_t
REveProjectionManager Manager class for steering of projections and managing projected objects.
REveTrackPropagator * GetPropagator() const
void SetName(const char *name)
TDirectory::TContext keeps track and restore the current directory.
virtual Int_t FindBin(Double_t x, Double_t y=0, Double_t z=0)
Return Global bin number corresponding to x,y,z.
static Bool_t AddDirectoryStatus()
Check whether TH1-derived classes should register themselves to the current gDirectory.
2-D histogram with a float per channel (see TH1 documentation)
Double_t GetBinContent(Int_t binx, Int_t biny) const override
void Add(TObject *obj) override
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
Description of the dynamic properties of a particle.
This is the base class for the ROOT Random number generators.
virtual Double_t Uniform(Double_t x1=1)
Returns a uniform deviate on the interval (0, x1).
RVec< PromoteType< T > > abs(const RVec< T > &v)
RVec< PromoteType< T > > cos(const RVec< T > &v)
RVec< PromoteType< T > > atan(const RVec< T > &v)
RVec< PromoteType< T > > sin(const RVec< T > &v)
Namespace for ROOT features in testing.
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
double product(DoubleArray factors, std::size_t nFactors)
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.
constexpr Double_t TwoPi()