FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PndDrcAccuDigiPixelDraw Class Reference

#include <PndDrcAccuDigiPixelDraw.h>

Inheritance diagram for PndDrcAccuDigiPixelDraw:

Public Member Functions

 PndDrcAccuDigiPixelDraw ()
 
 PndDrcAccuDigiPixelDraw (const char *name, TString digifile, Double_t weight=0, Int_t ndigievents=0, Int_t iVerbose=1)
 
virtual ~PndDrcAccuDigiPixelDraw ()
 
void Exec (Option_t *option)
 

Protected Member Functions

TVector3 GetVector (TObject *)
 
InitStatus Init ()
 
void ReadAllHits ()
 
void SortDigis (TClonesArray *digis)
 
TEveBoxSet * CreateNewBoxSet (TString &name)
 
 ClassDef (PndDrcAccuDigiPixelDraw, 1)
 

Protected Attributes

std::map< Int_t, TEveBoxSet * > fHitsArr
 
std::map< Int_t, Int_t > fHitsN
 
PndGeoHandlingfGeoH
 
TClonesArray * fClusterCands
 
TClonesArray * fRecoHits
 
TString fDigiFile
 
Int_t fNdigiEvents
 
Double_t fBoxHeight
 
Bool_t fFirstEvent
 
Double_t fPixelSize
 
Double_t fBoxSize
 
Bool_t fUseCluster
 
PndGeoDrcfGeo
 

Detailed Description

Definition at line 26 of file PndDrcAccuDigiPixelDraw.h.

Constructor & Destructor Documentation

PndDrcAccuDigiPixelDraw::PndDrcAccuDigiPixelDraw ( )

Definition at line 26 of file PndDrcAccuDigiPixelDraw.cxx.

References fGeo.

PndDrcAccuDigiPixelDraw::PndDrcAccuDigiPixelDraw ( const char *  name,
TString  digifile,
Double_t  weight = 0,
Int_t  ndigievents = 0,
Int_t  iVerbose = 1 
)

Definition at line 31 of file PndDrcAccuDigiPixelDraw.cxx.

References fBoxHeight, fDigiFile, fFirstEvent, fGeo, and fNdigiEvents.

31  : FairBoxSetDraw(name, iVerbose), fPixelSize(0.01), fBoxSize(1)
32 {
33  fDigiFile = digifile;
34  fBoxHeight = height;
35  fNdigiEvents = ndigievents;
36  fFirstEvent=true;
37  fGeo = new PndGeoDrc();
38 }
TString name
Int_t iVerbose
PndDrcAccuDigiPixelDraw::~PndDrcAccuDigiPixelDraw ( )
virtual

Definition at line 40 of file PndDrcAccuDigiPixelDraw.cxx.

References fGeo, fGeoH, fHitsArr, and fHitsN.

41 {
42  fHitsArr.clear();
43  fHitsN.clear();
44  if (fGeo) delete fGeo;
45  delete(fGeoH);
46 }
std::map< Int_t, TEveBoxSet * > fHitsArr
std::map< Int_t, Int_t > fHitsN

Member Function Documentation

PndDrcAccuDigiPixelDraw::ClassDef ( PndDrcAccuDigiPixelDraw  ,
 
)
protected
TEveBoxSet * PndDrcAccuDigiPixelDraw::CreateNewBoxSet ( TString name)
protected

Definition at line 160 of file PndDrcAccuDigiPixelDraw.cxx.

Referenced by ReadAllHits().

161 {
162  TEveBoxSet* bs = new TEveBoxSet(name);
163  bs->Reset(TEveBoxSet::kBT_AABoxFixedDim, kFALSE, 64);
164  return bs;
165 }
TString name
void PndDrcAccuDigiPixelDraw::Exec ( Option_t *  option)

Definition at line 124 of file PndDrcAccuDigiPixelDraw.cxx.

References Double_t, fBoxHeight, fFirstEvent, fHitsArr, fHitsN, max(), pos, ReadAllHits(), and s.

125 {
126  if(fFirstEvent) ReadAllHits();
127 
128  gStyle->SetPalette(1);
129  Int_t colnums = 256;
130  TEveRGBAPalette* pal = new TEveRGBAPalette(0, colnums);
131  TEveElement* man = (TEveElement*)fEventManager;
132  if(fFirstEvent){
133  Double_t max = 0;
134  for (IntIter it = fHitsN.begin(); it != fHitsN.end(); it++){
135  if(it->second > max) max = it->second;
136  }
137  max -= 0.2*max;
138  Double_t hstep = fBoxHeight/max;
139  TEveBoxSet* topbs = new TEveBoxSet("DrcAccuDigiPixel");
140  for (boxSetMapIter it = fHitsArr.begin(); it != fHitsArr.end(); it++){
141  //if(hstep*fHitsN[it->first]<0.3) continue;
142  it->second->SetPalette(pal);
143  Int_t color = fHitsN[it->first]*colnums/max;
144  if(color<1) color =1;
145  it->second->DigitValue(color);
146  Double_t s = 0.01+hstep*fHitsN[it->first];
147  it->second->SetDefDepth(s); //-0.005
148  TEveTrans& et = it->second->RefMainTrans();
149  TVector3 pos = et.GetPos();
150  et.SetPos(pos.X(),pos.Y(),pos.Z()-s);
151  topbs->AddElement(it->second);
152  }
153  gEve->AddElement(topbs, man);
154  }
155  gEve->Redraw3D(kFALSE);
156 
157  fFirstEvent = false;
158 }
TVector3 pos
std::map< Int_t, TEveBoxSet * >::iterator boxSetMapIter
TLorentzVector s
Definition: Pnd2DStar.C:50
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:26
std::map< Int_t, TEveBoxSet * > fHitsArr
Double_t
std::map< Int_t, Int_t > fHitsN
std::map< Int_t, Int_t >::iterator IntIter
TVector3 PndDrcAccuDigiPixelDraw::GetVector ( TObject *  )
inlineprotected

Definition at line 36 of file PndDrcAccuDigiPixelDraw.h.

36 {return TVector3();}; // obj //[R.K.03/2017] unused variable(s)
InitStatus PndDrcAccuDigiPixelDraw::Init ( )
protected

Definition at line 48 of file PndDrcAccuDigiPixelDraw.cxx.

References fFirstEvent, fGeoH, gGeoManager, Init(), PndGeoHandling::Instance(), next, TString, and v.

49 {
52 
53  TIter next((TObjArray*)gGeoManager->GetListOfVolumes());
54  TGeoVolume *vol;
55  while((vol=(TGeoVolume*)next())){
56  TString volumename = vol->GetName();
57  if(!volumename.Contains("Drc")) vol->SetVisibility(kFALSE);
58  if(volumename.Contains("DrcBarSupport")) vol->SetVisibility(kFALSE);
59  if(volumename.Contains("DrcAirBox")) vol->SetTransparency(80);
60  if(volumename.Contains("DrcEV")) vol->SetTransparency(80);
61  if(volumename.Contains("DrcBarSensor")) vol->SetTransparency(80);
62  if(volumename.Contains("DrcLENS")) vol->SetTransparency(95);
63  if(volumename.Contains("DrcMirr")) vol->SetTransparency(50);
64  if(volumename.Contains("DrcEVgrease")) vol->SetTransparency(60);
65 
66  //vol->SetTransparency(80);
67  // vol->SetLineColor(17);
68  }
69 
70  gGeoManager->SetNsegments(400);
71 
72  TGLViewer *v = gEve->GetDefaultGLViewer();
73  //v->SetCurrentCamera(TGLViewer::kCameraPerspXOY);
74  TGLSAViewer *sav = (TGLSAViewer *)v;
75  sav->SetDrawCameraCenter(true);
76  TGLCamera & cam=(TGLOrthoCamera &)v->CurrentCamera();
77  cam.SetExternalCenter(true);
78  cam.SetCenterVec(46.8, 8.9, -120.);
79 
80  //Double_t c[] = {46.8, 8.9, -120.};
81  //cam.Configure(1.3,1,c,-0.4,2.);
82  //v->DoDraw();
83 
84  fFirstEvent=true;
85  return kSUCCESS;
86 }
TGeoManager * gGeoManager
__m128 v
Definition: P4_F32vec4.h:4
static PndGeoHandling * Instance()
fRun Init()
Definition: NHitsPerEvent.C:20
static int next[96]
Definition: ranlxd.cxx:374
void PndDrcAccuDigiPixelDraw::ReadAllHits ( )
protected

Definition at line 88 of file PndDrcAccuDigiPixelDraw.cxx.

References CreateNewBoxSet(), f, fDigiFile, fGeo, fGeoH, fHitsArr, fHitsN, fNdigiEvents, GetEntriesFast(), PndGeoHandling::GetMatrixShortId(), hit(), hit_array, i, PndGeoHandling::MasterToLocalShortId(), PndGeoDrc::PixelSize(), t, and TString.

Referenced by Exec().

88  {
89  TFile* f = new TFile(fDigiFile);
90  TTree *t=(TTree *) f->Get("pndsim") ;
91  TClonesArray* hit_array=new TClonesArray("PndDrcPDHit");
93  TVector3 recoVector,recoLocal;
94  TEveBoxSet* bs;
95  TGeoHMatrix testMatrix;
96  t->SetBranchAddress("DrcPDHit",&hit_array);
97  for (Int_t j=0; (j<fNdigiEvents || fNdigiEvents==0) && j<t->GetEntriesFast(); j++){
98  t->GetEntry(j);
99  if(j%1==0) cout<<"Event No "<<j<<" #entries "<<hit_array->GetEntriesFast()<<endl;
100  for (Int_t i=0; i<hit_array->GetEntriesFast(); i++)
101  {
102  hit=(PndDrcPDHit*)hit_array->At(i);
103  hit->Position(recoVector);
104  Int_t detId = hit->GetDetectorID();
105  Int_t sensorId = detId/100;
106 
107  recoLocal = fGeoH->MasterToLocalShortId(recoVector, sensorId);
108 
109  TString detName = Form("pix %d", detId);
110  bs = CreateNewBoxSet(detName);
111  Float_t pixSize=fGeo->PixelSize();
112  bs->SetDefWidth(pixSize);
113  bs->SetDefHeight(pixSize);
114  bs->AddBox(recoLocal.X()-pixSize/2., recoLocal.Y()-pixSize/2., -0.01);
115  testMatrix = *(fGeoH->GetMatrixShortId(sensorId));
116  TEveTrans& et = bs->RefMainTrans();
117  et.SetFrom(testMatrix);
118  fHitsArr[detId] = bs;
119  fHitsN[detId] ++;
120  }
121  }
122 }
Int_t i
Definition: run_full.C:25
cout<< "POINTs for new FwEndCap == "<< tsim-> GetEntriesFast()
TClonesArray * hit_array
TGeoHMatrix * GetMatrixShortId(Int_t shortId)
std::map< Int_t, TEveBoxSet * > fHitsArr
TEveBoxSet * CreateNewBoxSet(TString &name)
TFile * f
Definition: bump_analys.C:12
TVector3 MasterToLocalShortId(const TVector3 &master, const Int_t &shortId)
int hit(Int_t nEvents=0, TString inFile="sim.root", TString parFile="par.root", TString inDigi="digi.root", TString outFile="hit.root", Int_t timeBased=0)
Definition: hit.C:1
std::map< Int_t, Int_t > fHitsN
TTree * t
Definition: bump_analys.C:13
Double_t PixelSize()
Definition: PndGeoDrc.h:175
void PndDrcAccuDigiPixelDraw::SortDigis ( TClonesArray *  digis)
protected

Member Data Documentation

Double_t PndDrcAccuDigiPixelDraw::fBoxHeight
protected

Definition at line 52 of file PndDrcAccuDigiPixelDraw.h.

Referenced by Exec(), and PndDrcAccuDigiPixelDraw().

Double_t PndDrcAccuDigiPixelDraw::fBoxSize
protected

Definition at line 56 of file PndDrcAccuDigiPixelDraw.h.

TClonesArray* PndDrcAccuDigiPixelDraw::fClusterCands
protected

Definition at line 47 of file PndDrcAccuDigiPixelDraw.h.

TString PndDrcAccuDigiPixelDraw::fDigiFile
protected

Definition at line 50 of file PndDrcAccuDigiPixelDraw.h.

Referenced by PndDrcAccuDigiPixelDraw(), and ReadAllHits().

Bool_t PndDrcAccuDigiPixelDraw::fFirstEvent
protected

Definition at line 53 of file PndDrcAccuDigiPixelDraw.h.

Referenced by Exec(), Init(), and PndDrcAccuDigiPixelDraw().

PndGeoDrc* PndDrcAccuDigiPixelDraw::fGeo
protected
PndGeoHandling* PndDrcAccuDigiPixelDraw::fGeoH
protected

Definition at line 46 of file PndDrcAccuDigiPixelDraw.h.

Referenced by Init(), ReadAllHits(), and ~PndDrcAccuDigiPixelDraw().

std::map<Int_t, TEveBoxSet* > PndDrcAccuDigiPixelDraw::fHitsArr
protected

Definition at line 44 of file PndDrcAccuDigiPixelDraw.h.

Referenced by Exec(), ReadAllHits(), and ~PndDrcAccuDigiPixelDraw().

std::map<Int_t, Int_t > PndDrcAccuDigiPixelDraw::fHitsN
protected

Definition at line 45 of file PndDrcAccuDigiPixelDraw.h.

Referenced by Exec(), ReadAllHits(), and ~PndDrcAccuDigiPixelDraw().

Int_t PndDrcAccuDigiPixelDraw::fNdigiEvents
protected

Definition at line 51 of file PndDrcAccuDigiPixelDraw.h.

Referenced by PndDrcAccuDigiPixelDraw(), and ReadAllHits().

Double_t PndDrcAccuDigiPixelDraw::fPixelSize
protected

Definition at line 55 of file PndDrcAccuDigiPixelDraw.h.

TClonesArray* PndDrcAccuDigiPixelDraw::fRecoHits
protected

Definition at line 48 of file PndDrcAccuDigiPixelDraw.h.

Bool_t PndDrcAccuDigiPixelDraw::fUseCluster
protected

Definition at line 58 of file PndDrcAccuDigiPixelDraw.h.


The documentation for this class was generated from the following files: