50 -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,
51 -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,
52 -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,
53 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,
54 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,
55 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};
82 TParticle(
pdg, status,
mother1,
mother2,
daughter1,
daughter2, px, py, pz,
etot, 0, 0, 0, 0)
133 if (
tower->fEta > cd.fEtaMin &&
tower->fEta < cd.fEtaMax &&
134 tower->fPhi > cd.fPhiMin &&
tower->fPhi < cd.fPhiMax)
149 for(
auto &i :
idcs ) {
154 for (
size_t ci = 0;
ci < out.size(); ++
ci)
158 float oldv = out[
ci].fFraction;
159 out[
ci].fFraction =
oldv + frac;
198 list->SetName(
"Jets");
199 for (
int i = 1; i <=
N; ++i)
201 double pt =
r.Uniform(0.5, 10);
202 double eta =
r.Uniform(-2.55, 2.55);
205 double px =
pt * std::cos(phi);
206 double py =
pt * std::sin(phi);
207 double pz =
pt * (1. / (std::tan(2*std::atan(std::exp(-eta)))));
209 auto jet =
new Jet(0, 0, 0, 0, 0, 0, px, py, pz, std::sqrt(px*px + py*py + pz*pz + 80*80));
210 jet->SetEtaSize(
r.Uniform(0.02, 0.2));
211 jet->SetPhiSize(
r.Uniform(0.01, 0.3));
222 list->SetName(
"Tracks");
223 for (
int i = 1; i <=
N; ++i)
225 double pt =
r.Uniform(0.5, 10);
226 double eta =
r.Uniform(-2.55, 2.55);
229 double px =
pt * std::cos(phi);
230 double py =
pt * std::sin(phi);
231 double pz =
pt * (1. / (std::tan(2*std::atan(std::exp(-eta)))));
235 px, py, pz, std::sqrt(px*px + py*py + pz*pz + 80*80),
238 int pdg = 11 * (
r.Integer(2) > 0 ? 1 : -1);
251 list->SetName(
"RecHits");
253 for (
int i = 1; i <=
N; ++i)
255 float pt =
r.Uniform(0.5, 10);
256 float x =
r.Uniform(-200, 200);
257 float y =
r.Uniform(-200, 200);
258 float z =
r.Uniform(-500, 500);
285 hlist->SetName(
"HCAL");
287 for (
int i = 0; i <=
jlist->GetLast(); ++i) {
289 float offX =
j->Eta();
291 for (
int k=0; k<20; ++k) {
322 jet->AddEllipticCone(
dj.Eta(),
dj.Phi(),
dj.GetEtaSize(),
dj.GetPhiSize());
324 jet->SetLineColor(
jet->GetMainColor());
326 float size = 50.f *
dj.Pt();
327 double theta =
dj.Theta();
329 double phi =
dj.Phi();
356 marker->SetScaleCenter(
p1.fX,
p1.fY,
p1.fZ);
357 marker->AddLine(
p1,
p2);
358 marker->SetLineWidth(4);
360 marker->AddMarker(0, 0.9);
363 marker->SetName(
Form(
"line %s %d",
Collection()->GetCName(), idx));
374 cone->SetLineColor(
cone->GetMainColor());
397 using REveElement::GetSelectionMaster;
415 boxset->SetPickable(
true);
416 boxset->SetAlwaysSecSelect(
true);
417 boxset->SetDetIdsAsSecondaryIndices(
true);
422#define RND_BOX(x) (Float_t) r.Uniform(-(x), (x))
472 if (item->GetVisible()) {
594 column(
"pt", 1,
"i.Pt()").
595 column(
"eta", 3,
"i.Eta()").
596 column(
"phi", 3,
"i.Phi()");
599 column(
"eta", 1,
"i.Eta()").
600 column(
"phi", 1,
"i.Phi()").
601 column(
"etasize", 2,
"i.GetEtaSize()").
602 column(
"phisize", 2,
"i.GetPhiSize()");
605 column(
"pt", 1,
"i.fPt");
608 column(
"eta", 3,
"i.fEta").
609 column(
"phi", 3,
"i.fPhi").
610 column(
"Et", 3,
"i.fEt");
619 if (!
strncmp(
c->GetCName(),
"Table", 5))
635 for (
int i = 0; i <=
l->GetLast(); ++i)
680 if (
strncmp(
scene->GetCName(),
"Tables", 5) == 0)
continue;
690 scene->AddElement(product);
709 if (
strncmp(s->GetCTitle(),
"Table", 5) == 0)
722 for (
int t = 0; t <
N; t++) {
724 collection->GetItemList()->AddTooltipExpression(
te.fName,
te.fExpression);
744 if (
el->GetName() ==
"Tracks")
745 mngTable->SetDisplayedCollection(
el->GetElementId());
760 proxy->ModelChanges(ids);
830 eveMng = REveManager::Create();
831 auto event =
new Event();
835 auto deviator = std::make_shared<FWSelectionDeviator>();
844 b1->SetMainColor(
kCyan);
868 trackCollection->SetFilterExpr(
"i.Pt() > 4.1 && std::abs(i.Eta()) < 1");
887 calo3d->SetMaxTowerH(300);
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
#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.
CaloTowerProxyBuilder(REveCaloDataHist *cd)
REveCaloDataHist * fCaloData
void FillImpliedSelected(REveElement::Set_t &impSet, const std::set< int > &sec_idcs, Product *) override
void BuildProduct(const REveDataCollection *collection, REveElement *product, const REveViewContext *) override
void ModelChanges(const REveDataCollection::Ids_t &ids, Product *product) override
void addCollection(REveDataCollection *collection, REveDataProxyBuilderBase *glBuilder, bool showInTable=false)
CollectionManager(Event *event)
REveScene * m_collections
std::vector< REveScene * > m_scenes
void FillImpliedSelected(REveDataItemList *itemList, REveElement::Set_t &impSelSet, const std::set< int > &sec_idcs)
void ModelChanged(REveDataItemList *itemList, const REveDataCollection::Ids_t &ids)
std::vector< REveDataProxyBuilderBase * > m_builders
REveViewContext * m_viewContext
void SetDataItemsFromEvent(REveDataCollection *collection)
CollectionManager * fCMng
EventManager(Event *e, CollectionManager *m)
void MakeParticles(int N)
std::vector< TList * > fListData
REveCaloDataHist * fCaloData
bool DeviateSelection(REveSelection *selection, REveElement *el, bool multi, bool secondary, const std::set< int > &secondary_idcs) override
void LocalModelChanges(int idx, REveElement *el, const REveViewContext *ctx) override
bool HaveSingleProduct() const override
void BuildItemViewType(const Jet &dj, int idx, REveElement *iItemHolder, const std::string &viewType, const REveViewContext *context) override
void SetEtaSize(float iEtaSize)
Jet(Int_t pdg, Int_t status, Int_t mother1, Int_t mother2, Int_t daughter1, Int_t daughter2, Double_t px, Double_t py, Double_t pz, Double_t etot)
void SetPhiSize(float iPhiSize)
RCaloTower(float eta, float phi, float et)
Cell data inner structure.
void ProcessSelection(REveCaloData::vCellId_t &sel_cells, UInt_t selectionId, Bool_t multi) override
void GetCellsFromSecondaryIndices(const std::set< int > &idcs, REveCaloData::vCellId_t &out) override
REveCaloTowerSliceSelector(int s, REveDataCollection *c, REveCaloDataHist *h)
REveDataCollection * fCollection
REveCaloDataHist * fCaloData
Int_t AddHistogram(TH2F *hist)
Add new slice to calo tower.
void DataChanged() override
Update limits and notify data users.
TH2F * GetHist(Int_t slice) const
Get histogram in given slice.
void GetCellData(const REveCaloData::CellId_t &id, REveCaloData::CellData_t &data) const override
Get cell geometry and value from cell ID.
void SetActiveSlice(int s)
void AddSliceSelector(std::unique_ptr< REveCaloDataSliceSelector > s)
virtual void ProcessSelection(REveCaloData::vCellId_t &sel_cells, UInt_t selectionId, bool multi)=0
virtual void GetCellsFromSecondaryIndices(const std::set< int > &idcs, REveCaloData::vCellId_t &out)=0
void SetSelector(REveCaloDataSelector *iSelector)
REveCaloDataSelector * GetSelector()
SliceInfo_t & RefSliceInfo(Int_t s)
std::vector< CellId_t > vCellId_t
void FillImpliedSelectedSet(Set_t &impSelSet, const std::set< int > &sec_idcs) override
Populate set impSelSet with derived / dependant elements.
REveDataItemList * GetItemList()
void * GetDataPtr(Int_t i) const
const REveDataItem * GetDataItem(Int_t i) const
Color_t GetMainColor() const
Bool_t GetVisible() const
virtual void LocalModelChanges(int idx, REveElement *el, const REveViewContext *ctx)
void FillImpliedSelected(REveElement::Set_t &impSet, const std::set< int > &)
void ModelChanges(const REveDataCollection::Ids_t &)
REveDataCollection * Collection() const
void SetupAddElement(REveElement *el, REveElement *parent, bool set_color=true)
void DigitColor(Color_t ci)
Set color for the last digit added.
void SetCurrentDigit(Int_t idx)
Set current digit – the one that will receive calls to DigitValue/Color/Id/UserData() functions.
DigitBase_t * GetDigit(Int_t n) const
void DigitValue(Int_t value)
Set signal value for the last digit added.
virtual void AddElement(REveElement *el)
Add el to the list of children.
REveElement * fSelectionMaster
std::set< REveElement * > Set_t
ElementId_t GetElementId() const
REveMagFieldDuo Interface to magnetic field with two different values depending on radius.
REveScene * GetEventScene() const
REveSelection * GetHighlight() const
REveSceneList * GetScenes() const
REveSelection * GetSelection() const
REveElement * FindElementById(ElementId_t id) const
Lookup ElementId in element map and return corresponding REveElement*.
REveScene * GetGlobalScene() const
REveScene * SpawnNewScene(const char *name, const char *title="")
Create a new scene.
REveViewer * SpawnNewViewer(const char *name, const char *title="")
Create a new GL viewer.
REveScene * GetWorld() const
void Show(const RWebDisplayArgs &args="")
Show eve manager in specified browser.
REveProjectionManager Manager class for steering of projections and managing projected objects.
virtual REveElement * ImportElements(REveElement *el, REveElement *ext_list=nullptr)
Recursively import elements and apply projection to the newly imported objects.
void SetImportEmpty(Bool_t ie)
void AddCommand(const std::string &name, const std::string &icon, const REveElement *element, const std::string &action)
SelectionSet_t & RefSelectedSet()
virtual bool DeviateSelection(REveSelection *s, REveElement *el, bool multi, bool secondary, const std::set< int > &secondary_idcs)=0
REveSelection Container for selected and highlighted elements.
void SetDeviator(std::shared_ptr< Deviator > d)
void ClearSelection()
Clear selection if not empty.
REveTrackPropagator Calculates path of a particle taking into account special path-marks and imposed ...
REveTrack Track with given vertex, momentum and optional referece-points (path-marks) along its path.
REveTableViewInfo * GetTableViewInfo() const
void SetTrackPropagator(REveTrackPropagator *p)
void SetTableViewInfo(REveTableViewInfo *ti)
REveTrackPropagator * GetPropagator() const
void SetBarrel(float r, float z)
void SetCameraType(ECameraType t)
virtual void AddScene(REveScene *scene)
Add 'scene' to the list of scenes.
REveElement * GetSelectionMaster() override
Returns the master element - that is:
void ModelChanges(const REveDataCollection::Ids_t &ids, Product *product) override
void buildBoxSet(REveBoxSet *boxset)
void FillImpliedSelected(REveElement::Set_t &impSet, const std::set< int > &sec_idcs, Product *p) override
void BuildProduct(const REveDataCollection *collection, REveElement *product, const REveViewContext *) override
RecHit(float pt, float x, float y, float z)
void SetName(const char *name)
static void AddDirectory(Bool_t add=kTRUE)
Sets the flag controlling the automatic add of histograms in memory.
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()
Static function: cannot be inlined on Windows/NT.
2-D histogram with a float per channel (see TH1 documentation)
void Reset(Option_t *option="") override
Reset this histogram: contents, errors, etc.
Double_t GetBinContent(Int_t binx, Int_t biny) const override
Int_t Fill(Double_t) override
Invalid Fill method.
void Add(TObject *obj) override
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
void BuildItem(const TParticle &p, int idx, REveElement *iItemHolder, const REveViewContext *context) override
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).
const char * Data() const
ROOT::Experimental::REveProjectionManager * g_projMng
ROOT::Experimental::REveManager * eveMng
void collection_proxies(bool proj=true)
REX::REveManager * eveMng
REX::REveViewer * rhoZView
REX::REveScene * rhoZEventScene
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.
constexpr Double_t TwoPi()
const double xbins[xbins_n]
void Setup(const char *name, Float_t threshold, Color_t col, Char_t transp=101)