FairRoot/PandaRoot
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
PndEmcAnalysis Class Reference

#include <PndEmcAnalysis.h>

Inheritance diagram for PndEmcAnalysis:

Public Member Functions

 PndEmcAnalysis (Int_t verbose=0, Bool_t storeRootFile=kTRUE)
 
virtual ~PndEmcAnalysis ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
void SetOutput (TString name)
 
void RunTimeBased ()
 
virtual void FinishTask ()
 

Public Attributes

Bool_t fSaveWave
 
Bool_t fSaveDigi
 
Bool_t fSaveBump
 
Bool_t fSaveTask
 
Bool_t fSaveHits
 
Bool_t fSaveMcTruth
 
Bool_t fSaveReco
 
Bool_t fSavePidCharged
 
Bool_t fSavePidNeutral
 
Bool_t fSaveJpsiTo3g
 

Private Member Functions

void SetParContainers ()
 
 PndEmcAnalysis (const PndEmcAnalysis &L)
 
PndEmcAnalysisoperator= (const PndEmcAnalysis &)
 
 ClassDef (PndEmcAnalysis, 1)
 

Private Attributes

TClonesArray * fEmcHitsArray
 
TClonesArray * fWaveformArray
 
TClonesArray * fDigiArray
 
TClonesArray * fSharedDigiArray
 
TClonesArray * fClusterArray
 
TClonesArray * fBumpArray
 
TClonesArray * fMcTrackArray
 
TClonesArray * fEvtHeaderArray
 
TClonesArray * fChargedCand
 
TClonesArray * fNeutralCand
 
Int_t fVerbose
 
Bool_t fStoreRooTFile
 
BinaryFunctor * fFunctor
 
Bool_t fTimeOrderedDigi
 set to kTRUE to use the time ordering of the output data. More...
 
std::map< Int_t, std::pair
< Int_t, Int_t > > 
evtMap
 
std::set< Int_t > pevtset
 
std::set< Int_t > evtset
 
TString fileName
 
TFile * fRootFile
 
TTree * tHit
 
TTree * tDigi
 
TTree * tWave
 
TTree * tBump
 
TTree * tTask
 
TTree * tEvtPileup
 
TTree * tTaskPileup
 
TTree * tMcTruth
 
TTree * tRec
 
Double_t fHitTime
 
Double_t fHitEnergy
 
Double_t fTheta
 
Double_t fPhi
 
Int_t fNPoint
 
Double_t fEvtTime
 
Int_t fModule
 
Int_t fHitIndex
 
Double_t fWaveTime
 
Double_t fWavePeak
 
Int_t fWaveLen
 
Int_t fWaveIdx
 
Int_t fEventNo
 
Double_t fBaseline
 
Int_t fXcor
 
Int_t fYcor
 
Int_t fPileupCount
 
Double_t fDigiTime
 
Double_t fDigiEnergy
 
Double_t fDistance
 
TVector3 fPosition
 
TVector3 fSeedPosition
 
Double_t fEnergy1C
 
Double_t fEnergy2C
 
Double_t fBumpTime1
 
Double_t fBumpTime2
 
Double_t fBumpTime3
 
Double_t fSeedTime
 
Double_t fBumpEnergy
 
Int_t fNumDigi
 
Int_t fNumBump
 
Int_t fClusterIdx
 
Int_t fNumOfSeed
 
Int_t fDigiMapSize
 
Int_t fNumOfMatch
 
Int_t fNumOfDismatch
 
Double_t totDigiEnergy
 
Double_t totSharedDigiEnergy
 
Int_t fNumOfHits
 
Int_t fNumWaveform
 
Int_t fNumSharedDigi
 
Int_t fNumCluster
 
Int_t fNumMcTrack
 
Int_t fTotWave
 
Int_t fPileupWave
 
Int_t totNumOfWave
 
Int_t totNumOfSubWave
 
Int_t totNumOfDigi
 
Int_t totNumOfBump
 
Int_t totNumOfSharedDigi
 
Int_t totNumOfEvents
 
Int_t totNumOfPileupEvents
 
Double_t fp4 [4 *NElement]
 
Double_t fMcp4 [4 *NElement]
 
Double_t fPositionV [3 *NElement]
 
Double_t fEnergy [NElement]
 
Double_t fEnergyC1 [NElement]
 
Double_t fEnergyC2 [NElement]
 
Double_t fZ201 [NElement]
 
Double_t fZ531 [NElement]
 
Double_t fLat1 [NElement]
 
Int_t fModule1 [NElement]
 
Int_t fPDGCode [NElement]
 
Double_t fTheta1 [NElement]
 
Double_t fPhi1 [NElement]
 
Double_t fRestEnergy1
 
Double_t fRestEnergy2
 
Double_t fRestEnergy3
 
Int_t fNumGT
 
Int_t fDet1 [NElement]
 
Int_t fHitEmc1 [NElement]
 
Int_t fHitEmc2 [NElement]
 
Int_t fNPointV [NElement]
 
Int_t fchar [NElement]
 
Double_t fpos [NElement]
 
Double_t fmom [NElement]
 
Int_t fmcidx [NElement]
 
Double_t frawe [NElement]
 
Double_t fcale [NElement]
 
Int_t fndigi [NElement]
 
Int_t fmod [NElement]
 
Int_t fcluIdx [NElement]
 
Double_t fe25 [NElement]
 
Double_t fe9 [NElement]
 
Int_t fnbump [NElement]
 
TTree * tCharged
 
TTree * tNeutral
 
TTree * tAna3g
 
Int_t fNumberOfGoodPhoton
 
Double_t fExternalEnergy
 
Double_t f4p1 [4]
 
Double_t fMc4p1 [4]
 
Double_t fpos1 [3]
 
Double_t fmom1
 
Double_t fenergy1
 
Double_t femcraw1
 
Int_t fndigi1
 
Int_t fmod1
 
Int_t fMcTrack1
 
Double_t fe251
 
Double_t flat1
 
Double_t fz201
 
Double_t fz531
 
Double_t f4p2 [4]
 
Double_t fMc4p2 [4]
 
Double_t fpos2 [3]
 
Double_t fmom2
 
Double_t fenergy2
 
Double_t femcraw2
 
Int_t fndigi2
 
Int_t fmod2
 
Int_t fMcTrack2
 
Double_t fe252
 
Double_t flat2
 
Double_t fz202
 
Double_t fz532
 
Double_t f4p3 [4]
 
Double_t fMc4p3 [4]
 
Double_t fpos3 [3]
 
Double_t fmom3
 
Double_t fenergy3
 
Double_t femcraw3
 
Int_t fndigi3
 
Int_t fmod3
 
Int_t fMcTrack3
 
Double_t fe253
 
Double_t flat3
 
Double_t fz203
 
Double_t fz533
 
PndEmcDigiCalibrator digiCalibrator
 

Static Private Attributes

static const Int_t NElement = 30
 

Detailed Description

Definition at line 49 of file PndEmcAnalysis.h.

Constructor & Destructor Documentation

PndEmcAnalysis::PndEmcAnalysis ( Int_t  verbose = 0,
Bool_t  storeRootFile = kTRUE 
)

Definition at line 81 of file PndEmcAnalysis.cxx.

References fileName, fSaveBump, fSaveDigi, fSaveHits, fSaveJpsiTo3g, fSaveMcTruth, fSavePidCharged, fSavePidNeutral, fSaveReco, fSaveTask, fSaveWave, and fTimeOrderedDigi.

81  :
82  fEmcHitsArray(0)
83  ,fWaveformArray(0)
84  ,fDigiArray(0)
86  ,fClusterArray(0)
87  ,fBumpArray(0)
88  ,fMcTrackArray(0)
89  ,fEvtHeaderArray(0)
91  ,fStoreRooTFile(storeFile)
92 {
93  fileName="PndEmcAnalysis.root";
94  fTimeOrderedDigi = kFALSE;
95  fSaveWave = kFALSE;
96  fSaveDigi = kFALSE;
97  fSaveBump = kFALSE;
98  fSaveTask = kFALSE;
99  fSaveHits = kFALSE;
100  fSaveMcTruth = kFALSE;
101  fSaveReco = kFALSE;
102  fSavePidCharged = kFALSE;
103  fSavePidNeutral = kFALSE;
104  fSaveJpsiTo3g = kFALSE;
105 }
TClonesArray * fEmcHitsArray
Bool_t fSavePidNeutral
#define verbose
TClonesArray * fMcTrackArray
TClonesArray * fBumpArray
TClonesArray * fClusterArray
Bool_t fSaveJpsiTo3g
TClonesArray * fDigiArray
TClonesArray * fSharedDigiArray
TClonesArray * fEvtHeaderArray
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
Bool_t fSavePidCharged
TClonesArray * fWaveformArray
PndEmcAnalysis::~PndEmcAnalysis ( )
virtual

Definition at line 111 of file PndEmcAnalysis.cxx.

112 {
113 }
PndEmcAnalysis::PndEmcAnalysis ( const PndEmcAnalysis L)
private

Member Function Documentation

PndEmcAnalysis::ClassDef ( PndEmcAnalysis  ,
 
)
private
void PndEmcAnalysis::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 428 of file PndEmcAnalysis.cxx.

References Bool_t, CAMath::Cos(), ctime, PndEmcCluster::DigiList(), Double_t, PndEmcAbsClusterCalibrator::Energy(), PndEmcCluster::energy(), evtMap, evtset, f4p1, f4p2, f4p3, fBaseline, fBumpArray, fBumpEnergy, fBumpTime1, fcale, fchar, fChargedCand, fcluIdx, fClusterArray, fClusterIdx, fDet1, fDigiArray, fDigiEnergy, fDigiMapSize, fDigiTime, fDistance, fe25, fe251, fe252, fe253, fe9, fEmcHitsArray, femcraw1, femcraw2, femcraw3, fEnergy, fenergy1, fEnergy1C, fenergy2, fenergy3, fEnergyC1, fEnergyC2, fEventNo, PndEmcDigi::fEvtNo, fEvtTime, fExternalEnergy, fFunctor, fHitEmc1, fHitEmc2, fHitEnergy, fHitIndex, fHitTime, fLat1, flat1, flat2, flat3, fMc4p1, fMc4p2, fMc4p3, fmcidx, fMcp4, fMcTrack1, fMcTrack2, fMcTrack3, fMcTrackArray, fmod, fmod1, fmod2, fmod3, fModule, fModule1, fmom, fnbump, fndigi, fndigi1, fndigi2, fndigi3, fNeutralCand, fNPoint, fNPointV, fNumberOfGoodPhoton, fNumBump, fNumCluster, fNumDigi, fNumGT, fNumMcTrack, fNumOfDismatch, fNumOfHits, fNumOfMatch, fNumOfSeed, fNumSharedDigi, fNumWaveform, fp4, fPDGCode, fPhi, fPhi1, fPileupCount, fpos, fpos1, fpos2, fpos3, fPosition, fPositionV, frawe, fRestEnergy1, fRestEnergy2, fRestEnergy3, fSaveBump, fSaveDigi, fSaveHits, fSaveJpsiTo3g, fSaveMcTruth, fSavePidCharged, fSavePidNeutral, fSaveReco, fSaveTask, fSaveWave, fSeedPosition, fSeedTime, fSharedDigiArray, fTheta, fTheta1, fTimeOrderedDigi, fVerbose, fWaveformArray, fWaveIdx, fWaveLen, fWavePeak, fWaveTime, fXcor, fYcor, fZ201, fz201, fz202, fz203, fZ531, fz531, fz532, fz533, PndMCTrack::Get4Momentum(), PndEmcWaveform::GetBaseline(), PndPidCandidate::GetCharge(), PndEmcBump::GetClusterIndex(), PndPidCandidate::GetEmcCalEnergy(), PndPidCandidate::GetEmcClusterE25(), PndPidCandidate::GetEmcClusterE9(), PndPidCandidate::GetEmcClusterLat(), PndPidCandidate::GetEmcClusterZ20(), PndPidCandidate::GetEmcClusterZ53(), PndPidCandidate::GetEmcIndex(), PndPidCandidate::GetEmcModule(), PndPidCandidate::GetEmcNumberOfBumps(), PndPidCandidate::GetEmcNumberOfCrystals(), PndPidCandidate::GetEmcRawEnergy(), PndEmcHit::GetEnergy(), PndPidCandidate::GetEnergy(), PndEmcDigi::GetEnergy(), PndEmcWaveform::GetEvtList(), PndEmcWaveform::GetHitIndex(), PndEmcDigi::GetHitIndex(), PndPidCandidate::GetLorentzVector(), PndPidCandidate::GetMcIndex(), PndEmcHit::GetModule(), PndEmcCluster::GetModule(), PndEmcWaveform::GetModule(), PndEmcDigi::GetModule(), PndPidCandidate::GetMomentum(), PndMCTrack::GetMomentum(), PndMCTrack::GetMotherID(), PndMCTrack::GetNPoints(), PndMCTrack::GetPdgCode(), PndEmcHit::GetPhi(), PndEmcWaveform::GetPileupCount(), PndEmcHit::GetPointList(), PndPidCandidate::GetPosition(), PndEmcWaveform::GetTCI(), PndEmcHit::GetTheta(), PndEmcHit::GetTime(), PndEmcWaveform::GetWaveformLength(), PndEmcHit::GetXPad(), PndEmcHit::GetYPad(), i, idx, PndMCTrack::IsGeneratorCreated(), kEMC, PndEmcCluster::LatMom(), PndEmcCluster::LocalMaxMap(), PndEmcClusterCalibrator::MakeEmcClusterCalibrator(), PndEmcWaveform::Max(), PndEmcCluster::MemberDigiMap(), PndEmcCluster::NBumps(), NElement, nHits, PndEmcCluster::NumberOfDigis(), p1, p2, pevtset, pos, PndMCTrack::Print(), rtime, CAMath::Sin(), tAna3g, tBump, tCharged, tDigi, tHit, timer, tMcTruth, tNeutral, totDigiEnergy, totNumOfBump, totNumOfDigi, totNumOfSharedDigi, totNumOfSubWave, totNumOfWave, totSharedDigiEnergy, tRec, tTask, tWave, PndEmcAbsClusterCalibrator::Where(), PndEmcCluster::where(), PndEmcDigi::where(), PndEmcTwoCoordIndex::XCoord(), PndEmcTwoCoordIndex::YCoord(), PndEmcCluster::Z20(), and PndEmcCluster::Z53().

429 {
430  TStopwatch timer;
431  if (fVerbose>2){
432  timer.Start();
433  }
434 
435 
436  fEvtTime = FairRootManager::Instance()->GetEventTime();
437  cout<<"=======================PndEmcAnalysis======================="<<endl;
438  if(fSaveHits){
439  Int_t nHits = fEmcHitsArray->GetEntriesFast();
440  for(Int_t iHit =0; iHit < nHits; ++iHit){
441  PndEmcHit* theHit = (PndEmcHit*)fEmcHitsArray->At(iHit);
442  fHitTime = theHit->GetTime();
443  fModule = theHit->GetModule();
444  fHitEnergy = theHit->GetEnergy();
445  fTheta = theHit->GetTheta();
446  fPhi = theHit->GetPhi();
447  fNPoint = theHit->GetPointList().size();
448  fXcor = theHit->GetXPad();
449  fYcor = theHit->GetYPad();
450  tHit->Fill();
451  }
452  if(fVerbose>0)
453  cout<<"Save "<<nHits<<" PndEmcHit done"<<endl;
454  }
455  if(fTimeOrderedDigi){
456  Double_t time_length = 40.;//99.98%
457  if(FairRunAna::Instance()->IsTimeStamp()){
458  fWaveformArray = FairRootManager::Instance()->GetData("EmcSortedWaveform"
459  , fFunctor
460  , FairRootManager::Instance()->GetEventTime() + time_length);
461  }
462  }
463 
464  Int_t nWaveforms = fWaveformArray->GetEntriesFast();
465  totNumOfWave += nWaveforms;
466  if(fSaveWave){
467  for (Int_t iWaveform=0; iWaveform<nWaveforms; iWaveform++)
468  {
469  PndEmcWaveform* theWaveform = (PndEmcWaveform*) fWaveformArray->At(iWaveform);
470  if(fTimeOrderedDigi){
471  const std::vector<Int_t>& evtList = theWaveform->GetEvtList();
472  for(size_t i=0; i< evtList.size(); ++i){
473  evtset.insert(evtList[i]);
474  ++ evtMap[evtList[i]].first;//all waveforms counter
475  if(evtList.size() > 1){
476  pevtset.insert(evtList[i]);
477  ++ evtMap[evtList[i]].second;//pileup waveforms counter
478  }
479  }
480  }
481 
482  fPileupCount= theWaveform->GetPileupCount();
484  fHitIndex = theWaveform->GetHitIndex();
485  fModule = theWaveform->GetModule();
486  fWaveTime = theWaveform->GetTimeStamp();
487  fWavePeak = theWaveform->Max();
488  fWaveLen = theWaveform->GetWaveformLength();
489  fWaveIdx = iWaveform;
490  fBaseline = theWaveform->GetBaseline();
491  fXcor = theWaveform->GetTCI()->XCoord();
492  fYcor = theWaveform->GetTCI()->YCoord();
493  if(!fTimeOrderedDigi)
494  fHitEnergy = ((PndEmcHit*)fEmcHitsArray->At(fHitIndex))->GetEnergy();
495  tWave->Fill();
496  }
497  if(fVerbose>0)
498  cout<<"Save "<<nWaveforms<<" PndEmcWaveform done"<<endl;
499  }
500 
501  totDigiEnergy = 0.;
502  totSharedDigiEnergy = 0.;
503  Int_t nDigi = fDigiArray->GetEntriesFast();
504  Int_t nSharedDigi = fSharedDigiArray->GetEntriesFast();
505  if(!fTimeOrderedDigi){
506  totNumOfDigi += nDigi;
507  totNumOfSharedDigi += nSharedDigi;
508  }
509  if(fSaveDigi){
510  for (Int_t iDigi=0; iDigi<nDigi; iDigi++)
511  {
512  PndEmcDigi* theDigi = (PndEmcDigi*) fDigiArray->At(iDigi);
513  totDigiEnergy += theDigi->GetEnergy();
514  fDigiTime = theDigi->GetTimeStamp();
515  fModule = theDigi->GetModule();
516  fWaveIdx = theDigi->GetHitIndex();
517  if(!fTimeOrderedDigi){
518  fWaveTime = ((PndEmcWaveform*)fWaveformArray->At(fWaveIdx))->GetTimeStamp();
519  fHitEnergy = ((PndEmcHit*)fEmcHitsArray->At(fWaveIdx))->GetEnergy();
520  }
521  fDigiEnergy = theDigi->GetEnergy();
522  fDistance = theDigi->where().Mag();
523  fPosition = theDigi->where();
524  tDigi->Fill();
525  }
526  for (Int_t iDigi=0; iDigi<nSharedDigi; iDigi++)
527  {
528  PndEmcDigi* theDigi = (PndEmcDigi*) fSharedDigiArray->At(iDigi);
529  totSharedDigiEnergy += theDigi->GetEnergy();
530  }
531  if(fVerbose>0)
532  cout<<"Save "<<nDigi<<" PndEmcDigi done"<<endl;
533  }
534  Int_t nBump = fBumpArray->GetEntriesFast();
535  totNumOfBump += nBump;
536  std::vector<key> goodHits;
537  if(fSaveBump){
539  PndEmcClusterCalibrator::MakeEmcClusterCalibrator(2); //PndEmcAbsClusterCalibrator * calibrator2= //[R.K.03/2017] unused variable
540  for (Int_t iBump=0; iBump<nBump; iBump++)
541  {
542  PndEmcBump* theBump = (PndEmcBump*) fBumpArray->At(iBump);
543  if((fEnergy1C=calibrator1->Energy(theBump)) > 0.050){//50MeV
544  goodHits.push_back(key(iBump, fEnergy1C));
545  }
546  fModule = theBump->GetModule();
547  fBumpEnergy = theBump->energy();
548  fPosition = theBump->where();
549  fNumDigi = theBump->NumberOfDigis();
550  fNumBump = theBump->NBumps();
551  fClusterIdx = theBump->GetClusterIndex();
552  fNumOfSeed = theBump->LocalMaxMap().size();
553  fDigiMapSize = theBump->MemberDigiMap().size();
554  const std::vector<Int_t>& digis = theBump->DigiList();
555  if(fTimeOrderedDigi){
556  totNumOfDigi += digis.size();
557  totNumOfSharedDigi += digis.size();
558  }
559  PndEmcDigi* seedDigi(0);
560  Double_t maxE(-1.);
561  for(size_t id=0; id < digis.size(); ++id){
562  PndEmcDigi* theDigi = (PndEmcDigi*)fSharedDigiArray->At(digis[id]);
563  if(theDigi->GetEnergy() > maxE){
564  maxE = theDigi->GetEnergy();
565  seedDigi = theDigi;
566  }
567  theDigi->fEvtNo == fEventNo ? fNumOfMatch++ : fNumOfDismatch ++;
568  }
569  fSeedTime = seedDigi == 0? 0 :/* digiCalibrator.CalibrationEvtTimeByDigi(seedDigi, kFALSE);*/seedDigi->GetTimeStamp();
570  fBumpTime1 = theBump->GetTimeStamp();
571  //fBumpTime2 = theBump->GetTimeStamp1();
572  fSeedPosition = seedDigi->where();
573  //fBumpTime3 = theBump->GetTimeStamp3();
574  tBump->Fill();
575  }
576  if(fVerbose>0)
577  cout<<"Save "<<nBump<<" PndEmcBump done"<<endl;
578  }
579  if(fSaveReco){
580  std::vector<key> goodTrack;
581  //std::vector<IndexKey> indicator;
582  sort(goodHits.begin(), goodHits.end(), std::greater<key>());
583  if(goodHits.size() >=1){
584  //reset
585  for(Int_t idx=0; idx < NElement; ++idx){
587  = fZ201[idx] = fZ531[idx] = fLat1[idx] = fModule1[idx] = 0;
588  fPositionV[idx*3] = fPositionV[idx*3+1] = fPositionV[idx*3+2] = 0;
589  fp4[idx*4] = fp4[idx*4+1] = fp4[idx*4+2] = fp4[idx*4+3] = 0;
590  }
591  if(fMcTrackArray){
592  Int_t nTrack = fMcTrackArray->GetEntriesFast() > NElement ? NElement : fMcTrackArray->GetEntriesFast();
593  for(Int_t i=0; i < nTrack; ++i){
595  if(p1->IsGeneratorCreated()){
596  goodTrack.push_back(key(i, p1->Get4Momentum().E()));
597  //TLorentzVector p4(p1->GetMomentum(), p1->GetE());
598  //memcpy(&fMcp4[i*4], &p4[0], 4*sizeof(Double_t));
599  }else
600  break;
601  }
602  sort(goodTrack.begin(), goodTrack.end(), std::greater<key>());
603  for(size_t i=0; i< goodTrack.size(); ++i){
604  PndMCTrack* p1 = (PndMCTrack*)fMcTrackArray->At(goodTrack[i].iHit);
605  TLorentzVector p4(p1->GetMomentum(), p1->Get4Momentum().E());
606  memcpy(&fMcp4[i*4], &p4[0], 4*sizeof(Double_t));
607  fPDGCode[i] = p1->GetPdgCode();
608  }
609  }
610 
613  Int_t NEL = goodHits.size() > NElement ? NElement : goodHits.size();
615  for(size_t i=NEL;i<goodHits.size();++i){
616  PndEmcBump* theBump = (PndEmcBump*) fBumpArray->At(goodHits[i].iHit);
617  fRestEnergy1 += theBump->energy();
618  fRestEnergy2 += calibrator1->Energy(theBump);
619  fRestEnergy3 += calibrator1->Energy(theBump);
620  }
621  fNumBump = goodHits.size();
622  Int_t locIdx =0;
623 
624  for(Int_t idx=0; idx < NEL ; ++idx){
625  PndEmcBump* theBump = (PndEmcBump*)fBumpArray->At(goodHits[idx].iHit);
626  //PndEmcBump* theBump = (PndEmcBump*)fBumpArray->At(index);
627  //if(idx < goodTrack.size())
628  // locIdx = goodTrack[idx].iHit;
629  //else
630  // locIdx = idx;
631  locIdx = idx;
632  fEnergy[locIdx] = theBump->energy();
633  fEnergyC1[locIdx] = calibrator1->Energy(theBump)/1.018;
634  fEnergyC2[locIdx] = calibrator2->Energy(theBump);
635  TVector3 pos(calibrator1->Where(theBump));
636  memcpy(&fPositionV[locIdx*3], &pos[0], 3*sizeof(Double_t));
637  fTheta1[locIdx] = pos.Theta();
638  fPhi1[locIdx] = pos.Phi();
639  fZ201[locIdx] = theBump->Z20();
640  fZ531[locIdx] = theBump->Z53();
641  fLat1[locIdx] = theBump->LatMom();
642  fModule1[locIdx] = theBump->GetModule();
643  TLorentzVector p4(fEnergyC1[locIdx]*TMath::Sin(fTheta1[locIdx])*TMath::Cos(fPhi1[locIdx])
644  , fEnergyC1[locIdx]*TMath::Sin(fTheta1[locIdx])*TMath::Sin(fPhi1[locIdx])
645  , fEnergyC1[locIdx]*TMath::Cos(fTheta1[locIdx]), fEnergyC1[locIdx]);
646  memcpy(&fp4[locIdx*4], &p4[0], 4*sizeof(Double_t));
647  }
648  tRec->Fill();
649  if(fVerbose>0)
650  cout<<"Save "<<NEL<<" reconstruction data done"<<endl;
651  }
652  }
653  if(fSaveMcTruth){
654  Bool_t isFill = kFALSE;
655  Int_t nTrack = fMcTrackArray->GetEntriesFast();// > NElement ? NElement : fMcTrackArray->GetEntriesFast();
656  std::vector< std::map<Int_t, Int_t> > trackMap;//top node, and its tree
657  fNumGT = 0;
658  for(Int_t idx=0; idx < NElement; ++idx){
660  = fModule1[idx] = fHitEmc1[idx] = fHitEmc2[idx]= 0;
661  fPositionV[idx*3] = fPositionV[idx*3+1] = fPositionV[idx*3+2] = 0;
662  fMcp4[idx*4] = fMcp4[idx*4+1] = fMcp4[idx*4+2] = fMcp4[idx*4+3] = 0;
663  }
664  for(Int_t itrack = 0; itrack < nTrack; ++itrack){
665  PndMCTrack* pt1 =((PndMCTrack*)fMcTrackArray->At(itrack));
666  if(!pt1) break;
667  if(pt1->IsGeneratorCreated()){
668  pt1->Print(itrack);
669  std::map<Int_t, Int_t> newMap;
670  newMap.insert(std::pair<Int_t,Int_t>(itrack, pt1->GetMotherID()));
671  trackMap.push_back(newMap);
672  isFill = kTRUE;
673  TLorentzVector p4(pt1->GetMomentum(), pt1->Get4Momentum().E());
674  memcpy(&fMcp4[itrack*4], &p4[0], 4*sizeof(Double_t));
675  fTheta1[itrack] = p4.Theta();
676  fPhi1[itrack] = p4.Phi();
677  fHitEmc1[itrack] = fMcTrackArray->GetEntriesFast();
678  fHitEmc2[itrack] = pt1->GetNPoints(kEMC);
679  fNPointV[itrack] = pt1->GetNPoints(kEMC);
680  //fDet1[itrack] = -1;
681  //for(Int_t i=0;i<15;++i){
682  // if(detIds[i] == kEMC){
683  // if(pt1->GetNPoints(detIds[i])>0)
684  // {fDet1[itrack] = detIds[i];break;}
685  // }else{
686  // if(pt1->GetNPoints(detIds[i])>0)
687  // {fDet1[itrack] = detIds[i];break;}
688  // }
689  //}
690  }else{
691  if( itrack < 6){
692  pt1->Print(itrack);
693  cout<<"MC points #"<<pt1->GetNPoints(kEMC)<<", #"<<trackMap.size()<<endl;
694  }
695  for(size_t im=0; im < trackMap.size(); ++im){
696  std::map<Int_t, Int_t>& theMap = trackMap[im];
697  if(theMap.find(pt1->GetMotherID()) != theMap.end()){
698  theMap.insert(std::pair<Int_t,Int_t>(itrack, pt1->GetMotherID()));
699  fNPointV[im] += pt1->GetNPoints(kEMC);
700  break;
701  }
702  }
703  if(pt1->GetNPoints(kEMC) > 0) ++ fNumGT;
704  }
705  }
706  if(isFill)
707  tMcTruth->Fill();
708  if(fVerbose>0)
709  cout<<"Save MCTruth data done"<<endl;
710  }
711  if(fSavePidCharged){
712  for(Int_t idx=0; idx < NElement; ++idx){
713  fchar[idx] = fmcidx[idx] = 0;
714  fmom[idx] = 0.;
715  fpos[idx*3] = fpos[idx*3+1] = fpos[idx*3+2] = 0;
716  fp4[idx*4] = fp4[idx*4+1] = fp4[idx*4+2] = fp4[idx*4+3] = 0;
717  }
718  Int_t nCand = fChargedCand->GetEntriesFast() > NElement ? NElement : fChargedCand->GetEntriesFast();
719  for(Int_t ic=0;ic < nCand; ++ic){
720  PndPidCandidate* theCand = (PndPidCandidate*)fChargedCand->At(ic);
721  fchar[ic] = theCand->GetCharge();
722  fmom[ic] = theCand->GetMomentum().Mag();
723  fmcidx[ic] = theCand->GetMcIndex();
724  TVector3 pos = theCand->GetPosition();
725  memcpy(&fpos[ic*3], &pos[0], 3*sizeof(Double_t));
726  TLorentzVector p4 = theCand->GetLorentzVector();
727  memcpy(&fp4[ic*4], &p4[0], 4*sizeof(Double_t));
728  }
729  tCharged->Fill();
730  if(fVerbose>0)
731  cout<<"Save "<<nCand<<" charged candidates done"<<endl;
732  }
733  if(fSavePidNeutral){
734  Int_t nCand = fNeutralCand->GetEntriesFast() > NElement ? NElement : fNeutralCand->GetEntriesFast();
735  for(Int_t idx=0; idx < NElement; ++idx){
736  fchar[idx] = fmcidx[idx] = fnbump[idx] = fndigi[idx] = fmod[idx] = fcluIdx[idx] = 0;
737  frawe[idx] = fcale[idx] = fe25[idx] = fe9[idx] = 0;
738  fpos[idx*3] = fpos[idx*3+1] = fpos[idx*3+2] = 0;
739  fp4[idx*4] = fp4[idx*4+1] = fp4[idx*4+2] = fp4[idx*4+3] = 0;
740  }
741  for(Int_t ic=0;ic < nCand; ++ic){
742  PndPidCandidate* theCand = (PndPidCandidate*)fNeutralCand->At(ic);
743  fchar[ic] = theCand->GetCharge();
744  frawe[ic] = theCand->GetEmcRawEnergy();
745  fcale[ic] = theCand->GetEmcCalEnergy();
746  fndigi[ic]= theCand->GetEmcNumberOfCrystals();
747  fnbump[ic] = theCand->GetEmcNumberOfBumps();
748  fmod[ic] = theCand->GetEmcModule();
749  fcluIdx[ic] = theCand->GetEmcIndex();
750  fe25[ic] = theCand->GetEmcClusterE25();
751  fe9[ic] = theCand->GetEmcClusterE9();
752  TVector3 pos = theCand->GetPosition();
753  memcpy(&fpos[ic*3], &pos[0], 3*sizeof(Double_t));
754  TLorentzVector p4 = theCand->GetLorentzVector();
755  memcpy(&fp4[ic*4], &p4[0], 4*sizeof(Double_t));
756  }
757  tNeutral->Fill();
758  if(fVerbose>0)
759  cout<<"Save "<<nCand<<" neutral candidates done"<<endl;
760  }
761  if(fSaveJpsiTo3g && fChargedCand->GetEntriesFast() == 0){
762  Int_t nCand = fNeutralCand->GetEntriesFast();
763  if(fVerbose>0)
764  cout<<"begin write #"<<nCand<<" candidates."<<endl;
765  std::vector<key> goodCand;
766  for(Int_t ic=0;ic<nCand;++ic){
767  PndPidCandidate* theCand = (PndPidCandidate*)fNeutralCand->At(ic);
768  if(theCand->GetEnergy() > 0.02)
769  goodCand.push_back(key(ic, theCand->GetEnergy()));
770  }
771  if(goodCand.size() >= 3){
772  sort(goodCand.begin(), goodCand.end(), std::greater<key>());
773  PndPidCandidate* cand1 = (PndPidCandidate*)fNeutralCand->At(goodCand[0].iHit);
774  fenergy1 = cand1->GetEnergy();
775  femcraw1 = cand1->GetEmcRawEnergy();
776  fndigi1 = cand1->GetEmcNumberOfCrystals();
777  fmod1 = cand1->GetEmcModule();
778  fMcTrack1 = cand1->GetMcIndex();
779  fe251 = cand1->GetEmcClusterE25();
780  flat1 = cand1->GetEmcClusterLat();
781  fz201 = cand1->GetEmcClusterZ20();
782  fz531 = cand1->GetEmcClusterZ53();
783  TLorentzVector p4 = cand1->GetLorentzVector();
784  TVector3 pos = cand1->GetPosition();
785  memcpy(&f4p1[0], &p4[0], 4*sizeof(Double_t));
786  memcpy(&fpos1[0], &pos[0], 3*sizeof(Double_t));
787  //f4p1 = cand1->GetLorentzVector();
788  //fpos1 = cand1->GetPosition();
789  PndPidCandidate* cand2 = (PndPidCandidate*)fNeutralCand->At(goodCand[1].iHit);
790  fenergy2 = cand2->GetEnergy();
791  femcraw2 = cand2->GetEmcRawEnergy();
792  fndigi2 = cand2->GetEmcNumberOfCrystals();
793  fmod2 = cand2->GetEmcModule();
794  fe252 = cand2->GetEmcClusterE25();
795  flat2 = cand2->GetEmcClusterLat();
796  fz202 = cand2->GetEmcClusterZ20();
797  fz532 = cand2->GetEmcClusterZ53();
798  fMcTrack2 = cand2->GetMcIndex();
799  p4 = cand2->GetLorentzVector();
800  pos = cand2->GetPosition();
801  memcpy(&f4p2[0], &p4[0], 4*sizeof(Double_t));
802  memcpy(&fpos2[0], &pos[0], 3*sizeof(Double_t));
803  //f4p2 = cand2->GetLorentzVector();
804  //fpos2 = cand2->GetPosition();
805  PndPidCandidate* cand3 = (PndPidCandidate*)fNeutralCand->At(goodCand[2].iHit);
806  fenergy3 = cand3->GetEnergy();
807  femcraw3 = cand3->GetEmcRawEnergy();
808  fndigi3 = cand3->GetEmcNumberOfCrystals();
809  fmod3 = cand3->GetEmcModule();
810  fe253 = cand3->GetEmcClusterE25();
811  flat3 = cand3->GetEmcClusterLat();
812  fz203 = cand3->GetEmcClusterZ20();
813  fz533 = cand3->GetEmcClusterZ53();
814  fMcTrack3 = cand3->GetMcIndex();
815  p4 = cand3->GetLorentzVector();
816  pos = cand3->GetPosition();
817  memcpy(&f4p3[0], &p4[0], 4*sizeof(Double_t));
818  memcpy(&fpos3[0], &pos[0], 3*sizeof(Double_t));
819  //f4p3 = cand3->GetLorentzVector();
820  //fpos3 = cand3->GetPosition();
821  fNumberOfGoodPhoton = goodCand.size();
822  fExternalEnergy = 0.;
823  for(size_t jc=3;jc<goodCand.size();++jc){
824  PndPidCandidate* cand = (PndPidCandidate*)fNeutralCand->At(goodCand[jc].iHit);
825  fExternalEnergy += cand->GetEnergy();
826  }
827  memset(&fMc4p1[0], 0, 4*sizeof(Double_t));
828  memset(&fMc4p2[0], 0, 4*sizeof(Double_t));
829  memset(&fMc4p3[0], 0, 4*sizeof(Double_t));
830  if(fMcTrackArray){
831  if(fMcTrack1 >= 0){
833  p4 = TLorentzVector(p1->GetMomentum(), p1->Get4Momentum().E());
834  memcpy(&fMc4p1[0], &p4[0], 4*sizeof(Double_t));
835  }
836  if(fMcTrack2 >= 0){
838  p4 = TLorentzVector(p2->GetMomentum(), p2->Get4Momentum().E());
839  memcpy(&fMc4p2[0], &p4[0], 4*sizeof(Double_t));
840  }
841  if(fMcTrack3 >= 0){
843  p4 = TLorentzVector(p3->GetMomentum(), p3->Get4Momentum().E());
844  memcpy(&fMc4p3[0], &p4[0], 4*sizeof(Double_t));
845  }
846  }
847  tAna3g->Fill();
848  }
849  }
850 
851 
852  if(fSaveTask){
853  fNumOfHits = fEmcHitsArray->GetEntriesFast();
854  fNumWaveform = fWaveformArray->GetEntriesFast();
855  fNumDigi = fDigiArray->GetEntriesFast();
856  fNumSharedDigi= fSharedDigiArray->GetEntriesFast();
857  fNumCluster = fClusterArray->GetEntriesFast();
858  fNumBump = fBumpArray->GetEntriesFast();
859  fNumMcTrack = fMcTrackArray->GetEntriesFast();
860  tTask->Fill();
861  if(fVerbose>0)
862  cout<<"Save task data done"<<endl;
863  }
864 
865  if (fVerbose>2){
866  timer.Stop();
867  Double_t rtime = timer.RealTime();
868  Double_t ctime = timer.CpuTime();
869  cout << "PndEmcAnalysis, Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
870  }
871  //fEvtHeaderArray->Delete();
872  fEventNo ++;
873  cout<<"================================================================="<<endl;
874 }
Double_t fBumpEnergy
Double_t GetEmcClusterE25() const
TVector3 pos
Double_t fRestEnergy1
TClonesArray * fEmcHitsArray
Int_t GetCharge() const
Bool_t fSavePidNeutral
Short_t GetXPad() const
Definition: PndEmcHit.cxx:87
Int_t fHitEmc1[NElement]
Double_t fExternalEnergy
Float_t GetPhi() const
Definition: PndEmcHit.h:57
TVector3 where() const
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
Int_t fchar[NElement]
Double_t totDigiEnergy
Int_t i
Definition: run_full.C:25
Float_t GetEmcRawEnergy() const
Short_t GetModule() const
Int_t fcluIdx[NElement]
Int_t fNPointV[NElement]
Double_t fpos[NElement]
Int_t GetNPoints(DetectorId detId) const
Definition: PndMCTrack.cxx:120
Int_t GetPdgCode() const
Definition: PndMCTrack.h:73
static const Int_t NElement
TClonesArray * fMcTrackArray
Float_t GetEmcCalEnergy() const
std::map< Int_t, std::pair< Int_t, Int_t > > evtMap
static T Sin(const T &x)
Definition: PndCAMath.h:42
std::set< Int_t > pevtset
Int_t GetEmcNumberOfCrystals() const
TLorentzVector GetLorentzVector() const
TClonesArray * fBumpArray
Int_t GetHitIndex() const
TVector3 GetMomentum() const
Definition: PndMCTrack.h:78
Double_t GetBaseline() const
Double_t GetEnergy() const
virtual Double_t Energy(PndEmcCluster *clust, Int_t pid=22)=0
const std::vector< Int_t > & DigiList() const
Definition: PndEmcCluster.h:40
Double_t GetEmcClusterE9() const
Int_t fDet1[NElement]
Double_t fe9[NElement]
TClonesArray * fClusterArray
Double_t fcale[NElement]
Double_t fBaseline
BinaryFunctor * fFunctor
Float_t GetTheta() const
Definition: PndEmcHit.h:56
static T Cos(const T &x)
Definition: PndCAMath.h:43
Bool_t IsGeneratorCreated(void) const
Definition: PndMCTrack.h:84
Double_t fe25[NElement]
TLorentzVector Get4Momentum() const
Definition: PndMCTrack.cxx:102
Short_t GetModule() const
Definition: PndEmcDigi.h:103
Double_t fEnergyC1[NElement]
Double_t fEnergyC2[NElement]
Int_t GetMcIndex() const
Double_t fmom[NElement]
Int_t GetEmcIndex() const
Double_t fMc4p3[4]
Double_t fHitEnergy
Double_t fEnergy1C
int idx[MAX]
Definition: autocutx.C:38
Double_t fDigiTime
std::vector< PndEmcPoint * > & GetPointList()
Definition: PndEmcHit.h:68
Double_t fSeedTime
Double_t fMcp4[4 *NElement]
Short_t GetYPad() const
Definition: PndEmcHit.cxx:120
Double_t f4p3[4]
int nHits
Definition: RiemannTest.C:16
std::set< Int_t > evtset
Double_t f4p1[4]
Double_t Z53() const
Definition: PndEmcCluster.h:69
Double_t Z20() const
Definition: PndEmcCluster.h:67
Double_t
Double_t fpos3[3]
TClonesArray * fNeutralCand
Double_t f4p2[4]
PndEmcTwoCoordIndex * GetTCI() const
virtual Double_t GetEnergy() const
Definition: PndEmcHit.h:54
Double_t fBumpTime1
Bool_t fSaveJpsiTo3g
Int_t fNumberOfGoodPhoton
const std::map< Int_t, Int_t > & LocalMaxMap() const
Definition: PndEmcCluster.h:42
Double_t GetEmcClusterZ53() const
const std::vector< Int_t > & GetEvtList() const
TStopwatch timer
Definition: hit_dirc.C:51
Double_t fpos2[3]
Double_t GetEmcClusterLat() const
Int_t fnbump[NElement]
Double_t LatMom() const
Definition: PndEmcCluster.h:71
void Print(Int_t iTrack=0) const
Definition: PndMCTrack.cxx:95
static PndEmcAbsClusterCalibrator * MakeEmcClusterCalibrator(Int_t method, Int_t version=1)
TClonesArray * fDigiArray
Int_t GetEmcNumberOfBumps() const
Double_t GetEmcClusterZ20() const
Double_t fTheta1[NElement]
Double_t fRestEnergy3
Int_t fHitEmc2[NElement]
Int_t GetWaveformLength() const
Double_t fZ201[NElement]
Double_t fPositionV[3 *NElement]
const std::map< Int_t, Int_t > & MemberDigiMap() const
Definition: PndEmcCluster.h:43
Double_t frawe[NElement]
virtual TVector3 Where(PndEmcCluster *clust, Int_t pid=22)=0
represents a simulated waveform in an emc crystal
Double_t ctime
Definition: hit_dirc.C:114
TPad * p2
Definition: hist-t7.C:117
virtual Double_t GetTime() const
Definition: PndEmcHit.h:55
TClonesArray * fSharedDigiArray
Double_t fp4[4 *NElement]
represents the deposited energy of one emc crystal from simulation
Definition: PndEmcHit.h:26
Int_t NumberOfDigis() const
Int_t fEvtNo
Definition: PndEmcDigi.h:118
Int_t NBumps() const
TVector3 fPosition
Int_t GetClusterIndex()
Definition: PndEmcBump.h:54
Double_t fPhi1[NElement]
Int_t GetHitIndex()
Definition: PndEmcDigi.h:110
TVector3 GetPosition() const
Int_t fmod[NElement]
Int_t GetPileupCount() const
Double_t fMc4p1[4]
virtual Double_t energy() const
TPad * p1
Definition: hist-t7.C:116
const TVector3 & where() const
Definition: PndEmcDigi.h:111
TVector3 fSeedPosition
Short_t GetModule() const
Double_t fWavePeak
TClonesArray * fChargedCand
Double_t fDistance
Double_t fEnergy[NElement]
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
Int_t fPDGCode[NElement]
Bool_t fSavePidCharged
Double_t fRestEnergy2
Int_t fmcidx[NElement]
Int_t GetMotherID() const
Definition: PndMCTrack.h:74
Double_t rtime
Definition: hit_dirc.C:113
TVector3 GetMomentum() const
TClonesArray * fWaveformArray
Int_t fModule1[NElement]
Short_t GetModule() const
Definition: PndEmcHit.h:58
Int_t totNumOfSharedDigi
Int_t GetEmcModule() const
Double_t fZ531[NElement]
Double_t fDigiEnergy
Int_t fndigi[NElement]
represents a reconstructed (splitted) emc cluster
Definition: PndEmcBump.h:34
Double_t fMc4p2[4]
Double_t totSharedDigiEnergy
Double_t fpos1[3]
Double_t fWaveTime
Double_t fLat1[NElement]
void PndEmcAnalysis::FinishTask ( )
virtual

Definition at line 895 of file PndEmcAnalysis.cxx.

References evtMap, evtset, fEventNo, fPileupWave, fRootFile, fSaveBump, fSaveDigi, fSaveHits, fSaveJpsiTo3g, fSaveMcTruth, fSavePidCharged, fSavePidNeutral, fSaveReco, fSaveTask, fSaveWave, fStoreRooTFile, fTimeOrderedDigi, fTotWave, pevtset, tAna3g, tBump, tCharged, tDigi, tEvtPileup, tHit, tMcTruth, tNeutral, totNumOfBump, totNumOfDigi, totNumOfEvents, totNumOfPileupEvents, totNumOfSharedDigi, totNumOfSubWave, totNumOfWave, tRec, tTask, tTaskPileup, and tWave.

896 {
897 
898  std::cout<<"*********************************************************"<<std::endl;
899  std::cout<<"PndEmcAnalysis::FinishTask"<<std::endl;
900  std::cout<<"*********************************************************"<<std::endl;
901  std::cout<<"Total waveforms# "<<totNumOfWave<<std::endl;
902  std::cout<<"Total subwaveforms# "<<totNumOfSubWave<<std::endl;
903  std::cout<<"Total fpga digis# "<<totNumOfDigi<<std::endl;
904  std::cout<<"Total shared digis# "<<totNumOfSharedDigi<<std::endl;
905  std::cout<<"Total bumps# "<<totNumOfBump<<std::endl;
906  //std::cout<<"Digis to events they belong to#"<<matchCount<<std::endl;
907  //std::cout<<"Digis to events they dont belong to#"<<unmatchCount<<std::endl;
908  std::cout<<"*********************************************************"<<std::endl;
909  if(fTimeOrderedDigi){
910  std::map<Int_t, std::pair<Int_t,Int_t> >::iterator it = evtMap.begin();
911  for(; it != evtMap.end(); ++it){
912  fEventNo = (*it).first;
913  fTotWave = (*it).second.first;
914  fPileupWave = (*it).second.second;
915  tEvtPileup->Fill();
916  }
917  totNumOfEvents = evtset.size();
918  totNumOfPileupEvents = pevtset.size();
919  tTaskPileup->Fill();
920  }
921 
922 
923  if(fStoreRooTFile){
924  TFile* gOldFile = gFile;
925  gFile = fRootFile;
926  gFile->cd();
927  if(fSaveHits){
928  cout<<"write "<<tHit->GetTitle()<<endl;
929  tHit->Write();
930  }
931  if(fSaveWave){
932  cout<<"write "<<tWave->GetTitle()<<endl;
933  tWave->Write();
934  }
935  if(fSaveDigi){
936  cout<<"write "<<tDigi->GetTitle()<<endl;
937  tDigi->Write();
938  }
939  if(fSaveBump){
940  cout<<"write "<<tBump->GetTitle()<<endl;
941  tBump->Write();
942  }
943  if(fSaveTask){
944  cout<<"write "<<tTask->GetTitle()<<endl;
945  tTask->Write();
946  }
947  if(fSaveReco){
948  cout<<"write "<<tRec->GetTitle()<<endl;
949  tRec->Write();
950  }
951  if(fSaveMcTruth){
952  cout<<"write "<<tMcTruth->GetTitle()<<endl;
953  tMcTruth->Write();
954  }
955  if(fTimeOrderedDigi){
956  cout<<"write "<<tTaskPileup->GetTitle()<<endl;
957  cout<<"write "<<tEvtPileup->GetTitle()<<endl;
958  tTaskPileup->Write();
959  tEvtPileup->Write();
960  }
961  if(fSavePidCharged){
962  cout<<"write "<<tCharged->GetTitle()<<endl;
963  tCharged->Write();
964  }
965  if(fSavePidNeutral){
966  cout<<"write "<<tNeutral->GetTitle()<<endl;
967  tNeutral->Write();
968  }
969  if(fSaveJpsiTo3g){
970  cout<<"write "<<tAna3g->GetTitle()<<endl;
971  tAna3g->Write();
972  }
973 
974  gFile = gOldFile;
975  }
976 
977  evtset.clear();
978  pevtset.clear();
979  evtMap.clear();
980 }
Bool_t fSavePidNeutral
Int_t totNumOfPileupEvents
std::map< Int_t, std::pair< Int_t, Int_t > > evtMap
std::set< Int_t > pevtset
std::set< Int_t > evtset
Bool_t fSaveJpsiTo3g
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
Bool_t fSavePidCharged
Int_t totNumOfSharedDigi
InitStatus PndEmcAnalysis::Init ( )
virtual

Virtual method Init

Definition at line 116 of file PndEmcAnalysis.cxx.

References evtMap, evtset, f4p1, f4p2, f4p3, fBaseline, fBumpArray, fBumpEnergy, fBumpTime1, fBumpTime2, fBumpTime3, fcale, fchar, fChargedCand, fcluIdx, fClusterArray, fClusterIdx, fDigiArray, fDigiEnergy, fDigiMapSize, fDigiTime, fDistance, fe25, fe251, fe252, fe253, fe9, fEmcHitsArray, femcraw1, femcraw2, femcraw3, fEnergy, fenergy1, fenergy2, fenergy3, fEnergyC1, fEnergyC2, fEventNo, fEvtTime, fExternalEnergy, fFunctor, fHitEmc1, fHitEmc2, fHitEnergy, fHitIndex, fHitTime, fileName, fLat1, flat1, flat2, flat3, fMc4p1, fMc4p2, fMc4p3, fmcidx, fMcp4, fMcTrack1, fMcTrack2, fMcTrack3, fMcTrackArray, fmod, fmod1, fmod2, fmod3, fModule, fModule1, fmom, fnbump, fndigi, fndigi1, fndigi2, fndigi3, fNeutralCand, fNPoint, fNPointV, fNumberOfGoodPhoton, fNumBump, fNumCluster, fNumDigi, fNumGT, fNumMcTrack, fNumOfDismatch, fNumOfHits, fNumOfMatch, fNumOfSeed, fNumSharedDigi, fNumWaveform, fp4, fPDGCode, fPhi, fPhi1, fPileupCount, fPileupWave, fpos, fpos1, fpos2, fpos3, fPosition, fPositionV, frawe, fRestEnergy1, fRestEnergy2, fRestEnergy3, fRootFile, fSaveBump, fSaveDigi, fSaveHits, fSaveJpsiTo3g, fSaveMcTruth, fSavePidCharged, fSavePidNeutral, fSaveReco, fSaveTask, fSaveWave, fSeedPosition, fSeedTime, fSharedDigiArray, fStoreRooTFile, fTheta, fTheta1, fTimeOrderedDigi, fTotWave, fWaveformArray, fWaveIdx, fWaveLen, fWavePeak, fWaveTime, fXcor, fYcor, fZ201, fz201, fz202, fz203, fZ531, fz531, fz532, fz533, pevtset, tAna3g, tBump, tCharged, tDigi, tEvtPileup, tHit, tMcTruth, tNeutral, totDigiEnergy, totNumOfBump, totNumOfDigi, totNumOfEvents, totNumOfPileupEvents, totNumOfSharedDigi, totNumOfSubWave, totNumOfWave, totSharedDigiEnergy, tRec, tTask, tTaskPileup, and tWave.

117 {
118  // Get RootManager
119  FairRootManager* ioman = FairRootManager::Instance();
120  if ( ! ioman )
121  {
122  cout << "-E- PndEmcAnalysis::Init: "
123  << "RootManager not instantiated!" << endl;
124  return kFATAL;
125  }
126 
127  fEmcHitsArray = (TClonesArray*) ioman->GetObject("EmcHit");
128  if ( ! fEmcHitsArray ) {
129  cout << "-W- PndEmcAnalysis::Init: "
130  << "No EmcHit array!" << endl;
131  fSaveHits = kFALSE;
132  }
133  // Get input array
134  if(fTimeOrderedDigi){
135  fWaveformArray = (TClonesArray*) ioman->GetObject("EmcSortedWaveform");
136  }else{
137  fWaveformArray = (TClonesArray*) ioman->GetObject("EmcWaveform");
138  }
139  //fEvtHeaderArray = (TClonesArray*) ioman->GetObject("EventHeader.");
140  if ( ! fWaveformArray ) {
141  cout << "-W- PndEmcAnalysis::Init: "
142  << "No PndEmcWaveform array!" << endl;
143  fSaveWave = kFALSE;
144  }
145 
146  fDigiArray = (TClonesArray*) ioman->GetObject("EmcDigi");
147  if ( ! fDigiArray ) {
148  cout << "-W- PndEmcAnalysis::Init: "
149  << "No PndEmcDigi array!" << endl;
150  fSaveDigi = kFALSE;
151  }
152  fSharedDigiArray = (TClonesArray*) ioman->GetObject("EmcSharedDigi");
153  if ( ! fSharedDigiArray ) {
154  cout << "-W- PndEmcAnalysis::Init: "
155  << "No PndEmcSharedDigi array!" << endl;
156  fSaveDigi = kFALSE;
157  }
158  fMcTrackArray = (TClonesArray*) ioman->GetObject("MCTrack");
159  if ( ! fMcTrackArray ) {
160  cout << "-W- PndEmcAnalysis::Init: "
161  << "No MCTrack array!" << endl;
162  fSaveMcTruth = kFALSE;
163  }
164  fClusterArray = (TClonesArray*) ioman->GetObject("EmcCluster");
165  if ( ! fClusterArray ) {
166  cout << "-W- PndEmcAnalysis::Init: "
167  << "No PndEmcCluster array!" << endl;
168  //fSaveBump = kFALSE;
169  }
170  fBumpArray = (TClonesArray*) ioman->GetObject("EmcBump");
171  if ( ! fBumpArray ) {
172  cout << "-W- PndEmcAnalysis::Init: "
173  << "No PndEmcBump array!" << endl;
174  fSaveBump = kFALSE;
175  }
176  fChargedCand = (TClonesArray*)ioman->GetObject("PidChargedCand");
177  if ( ! fChargedCand ) {
178  cout << "-W- PndEmcAnalysis::Init: "
179  << "No PidChargedCand array!" << endl;
180  fSavePidCharged = kFALSE;
181  }
182  fNeutralCand = (TClonesArray*)ioman->GetObject("PidNeutralCand");
183  if ( ! fNeutralCand ) {
184  cout << "-W- PndEmcAnalysis::Init: "
185  << "No PidNeutralCand array!" << endl;
186  fSavePidNeutral = kFALSE;
187  }
188 
189 
190  fFunctor = new StopTime();
192 
193  if(fStoreRooTFile)
194  fRootFile = new TFile(fileName,"RECREATE");
195 
196  if(fSaveHits){
197  tHit = new TTree("hit", "hit data");
198  tHit->Branch("ie" ,&fEventNo ,"EventNO/I");
199  tHit->Branch("ht" ,&fHitTime ,"HitTime/D");
200  tHit->Branch("mod" ,&fModule ,"Module/I");
201  tHit->Branch("he" ,&fHitEnergy ,"HitEnergy/D");
202  tHit->Branch("theta" ,&fTheta ,"Theta/D");
203  tHit->Branch("phi" ,&fPhi ,"Phi/D");
204  tHit->Branch("np" ,&fNPoint ,"NumOfPoint/I");
205  tHit->Branch("xcor" ,&fXcor ,"XCoor/I");
206  tHit->Branch("ycor" ,&fYcor ,"XCoor/I");
207  }
208 
209  if(fSaveWave){
210  tWave = new TTree("wave", "wave data");
211  tWave->Branch("et" ,&fEvtTime ,"EventTime/D");
212  tWave->Branch("mod" ,&fModule ,"Module/I");
213  tWave->Branch("hitid" ,&fHitIndex ,"HitIndex/I");
214  tWave->Branch("wavet" ,&fWaveTime ,"WaveTime/D");
215  tWave->Branch("peak" ,&fWavePeak ,"WavePeak/D");
216  tWave->Branch("wl" ,&fWaveLen ,"WaveLength/I");
217  tWave->Branch("iw" ,&fWaveIdx ,"WaveIndex/I");
218  tWave->Branch("ie" ,&fEventNo ,"EventNO/I");
219  tWave->Branch("baseE" ,&fBaseline ,"BaseLine/D");
220  tWave->Branch("xcor" ,&fXcor ,"XCoor/I");
221  tWave->Branch("ycor" ,&fYcor ,"YCoor/I");
222  tWave->Branch("wpc" ,&fPileupCount ,"Pileup/I");
223  tWave->Branch("he" ,&fHitEnergy ,"HitEnergy/D");
224  }
225  if(fSaveDigi){
226  tDigi = new TTree("digi", "digi data");
227  tDigi->Branch("digit" ,&fDigiTime ,"DigiTime/D");
228  tDigi->Branch("et" ,&fEvtTime ,"EventTime/D");
229  tDigi->Branch("mod" ,&fModule ,"Module/I");
230  tDigi->Branch("wt" ,&fWaveTime ,"WaveTime/D");
231  tDigi->Branch("hite" ,&fHitEnergy ,"HitEnergy/D");
232  tDigi->Branch("e" ,&fDigiEnergy ,"Energy/D");
233  tDigi->Branch("r" ,&fDistance ,"Path/D");
234  tDigi->Branch("iw" ,&fWaveIdx ,"WaveIndex/I");
235  tDigi->Branch("ie" ,&fEventNo ,"EventNO/I");
236  tDigi->Branch("pos" ,&fPosition[0] ,"Position[3]/D");
237  }
238  if(fSaveBump){
239  tBump = new TTree("bump", "bump data");
240  tBump->Branch("et" ,&fEvtTime ,"EventTime/D");
241  tBump->Branch("ie" ,&fEventNo ,"EventNO/I");
242  tBump->Branch("mod" ,&fModule ,"Module/I");
243  tBump->Branch("bt1" ,&fBumpTime1 ,"WeightedTimeByTimeError/D");
244  tBump->Branch("bt2" ,&fBumpTime2 ,"WeightedTimeByTimeErrorAndEnergy/D");
245  tBump->Branch("bt3" ,&fBumpTime3 ,"WeightedTimeByEnergy/D");
246  tBump->Branch("seedt" ,&fSeedTime ,"SeedTime/D");
247  tBump->Branch("e" ,&fBumpEnergy ,"BumpEnergy/D");
248  tBump->Branch("pos" ,&fPosition[0] ,"Position[3]/D");
249  tBump->Branch("seedpos",&fSeedPosition[0] ,"SeedPosition[3]/D");
250  tBump->Branch("ndigi" ,&fNumDigi ,"NumOfDigi/I");
251  tBump->Branch("nbump" ,&fNumBump ,"NumofBump/I");
252  tBump->Branch("ic" ,&fClusterIdx ,"ClusterIndex/I");
253  tBump->Branch("nseed" ,&fNumOfSeed ,"NumOfSeed/I");
254  tBump->Branch("nmap" ,&fDigiMapSize ,"NumDigiMap/I");
255  }
256  if(fSaveTask){
257  tTask = new TTree("task", "task data");
258  tTask->Branch("ie" ,&fEventNo ,"EventNO/I");
259  tTask->Branch("nhits" ,&fNumOfHits ,"NumOfEmcHit/I");
260  tTask->Branch("nwave" ,&fNumWaveform ,"NumOfWaveform/I");
261  tTask->Branch("ndigi" ,&fNumDigi ,"NumOfDigi/I");
262  tTask->Branch("sdigi" ,&fNumSharedDigi ,"NumOfSharedDigi/I");
263  tTask->Branch("nclus" ,&fNumCluster ,"NumOfCluster/I");
264  tTask->Branch("nbump" ,&fNumBump ,"NumOfBump/I");
265  tTask->Branch("ntrack" ,&fNumMcTrack ,"NumOfMcTrack/I");
266  tTask->Branch("totde" ,&totDigiEnergy ,"TotalDigiEnergy/D");
267  tTask->Branch("totse" ,&totSharedDigiEnergy,"TotalSharedDigiEnergy/D");
268  }
269  if(fTimeOrderedDigi){
270  tEvtPileup= new TTree("evtpu","event pileup data");
271  tEvtPileup->Branch("evtNo" ,&fEventNo ,"evtNo/I");
272  tEvtPileup->Branch("totw" ,&fTotWave ,"totw/I");
273  tEvtPileup->Branch("pilew" ,&fPileupWave ,"pilew/I");
274 
275  tTaskPileup= new TTree("taskpu","task pileup data");
276  tTaskPileup->Branch("nw" ,&totNumOfWave ,"TotNumOfWave/I");
277  tTaskPileup->Branch("nsw" ,&totNumOfSubWave ,"TotNumOfSubWave/I");
278  tTaskPileup->Branch("nd" ,&totNumOfDigi ,"TotNumOfDigi/I");
279  tTaskPileup->Branch("nsd" ,&totNumOfSharedDigi ,"TotNumOfSharedDigi/I");
280  tTaskPileup->Branch("nevt" ,&totNumOfEvents ,"TotNumOfEvents/I");
281  tTaskPileup->Branch("npevt" ,&totNumOfPileupEvents,"TotNumOfPileupEvents/I");
282  tTaskPileup->Branch("match" ,&fNumOfMatch ,"NumOfMatch/I");
283  tTaskPileup->Branch("mismatch",&fNumOfDismatch ,"NumOfDismatch/I");
284  }
285  if(fSaveReco){
286  tRec = new TTree("ResA", "Reconstruction");
287  tRec->Branch("E1" ,&fEnergy[0] ,"E1[30]/D");
288  tRec->Branch("E1C" ,&fEnergyC1[0] ,"E1C[30]/D");
289  tRec->Branch("E2C" ,&fEnergyC2[0] ,"E2C[30]/D");
290  tRec->Branch("p1" ,&fp4[0] ,"p1[120]/D");
291  tRec->Branch("Mcp1" ,&fMcp4[0] ,"Mcp1[120]/D");
292  tRec->Branch("pdg" ,&fPDGCode[0] ,"pdg[30]/I");
293  tRec->Branch("Z201" ,&fZ201[0] ,"Z201[30]/D");
294  tRec->Branch("Z531" ,&fZ531[0] ,"Z531[30]/D");
295  tRec->Branch("Lat1" ,&fLat1[0] ,"Lat1[30]/D");
296  tRec->Branch("pos" ,&fPositionV[0] ,"Position[30]/D");
297  tRec->Branch("Mod1" ,&fModule1[0] ,"Mod1[30]/I");
298  tRec->Branch("Theta1",&fTheta1[0] ,"Theta1[30]/D");
299  tRec->Branch("Phi1" ,&fPhi1[0] ,"Phi1[30]/D");
300  tRec->Branch("ExtE1" ,&fRestEnergy1 ,"ExtE1/D");
301  tRec->Branch("ExtE2" ,&fRestEnergy2 ,"ExtE2/D");
302  tRec->Branch("ExtE3" ,&fRestEnergy3 ,"ExtE3/D");
303  tRec->Branch("NBump" ,&fNumBump ,"NBump/I");
304  }
305  if(fSaveMcTruth){
306  tMcTruth = new TTree("Res1A", "Mc Truth");
307  tMcTruth->Branch("Mcp1" ,&fMcp4[0] ,"Mcp1[120]/D");
308  tMcTruth->Branch("Theta1" ,&fTheta1[0] ,"Theta1[30]/D");
309  tMcTruth->Branch("Phi1" ,&fPhi1[0] ,"Phi1[30]/D");
310  //tMcTruth->Branch("Det1" ,&fDet1[0] ,"Det1[30]/I");
311  tMcTruth->Branch("isHit1" ,&fHitEmc1[0] ,"SizeOfMcTrackArray[30]/I");
312  tMcTruth->Branch("isHit2" ,&fHitEmc2[0] ,"NumHitOfPrimaryTrack[30]/I");
313  tMcTruth->Branch("isHit3" ,&fNPointV[0] ,"TotalNumHit[30]/I");
314  tMcTruth->Branch("isHit4" ,&fNumGT ,"NumOfSecondaryHit/I");
315  //tMcTruth->Branch("X1" ,&fX1 ,"X1/D");
316  //tMcTruth->Branch("Y1" ,&fY1 ,"Y1/D");
317  //tMcTruth->Branch("Z1" ,&fZ1 ,"Z1/D");
318  }
319  if(fSavePidCharged)
320  {
321  tCharged= new TTree("char", "charged cand");
322  tCharged->Branch("char" ,&fchar[0] ,"char[30]/I");
323  tCharged->Branch("p4" ,&fp4[0] ,"p4[120]/D");
324  tCharged->Branch("pos" ,&fpos[0] ,"pos[90]/D");
325  tCharged->Branch("mom" ,&fmom[0] ,"mom[30]/D");
326  tCharged->Branch("mcIdx" ,&fmcidx[0] ,"mctrackid[30]/I");
327 
328  }
329  if(fSavePidNeutral)
330  {
331  tNeutral= new TTree("neut", "neutral cand");
332  tNeutral->Branch("char" ,&fchar[0] ,"char[30]/I");
333  tNeutral->Branch("mcIdx" ,&fmcidx[0] ,"mctrackid[30]/I");
334  tNeutral->Branch("p4" ,&fp4[0] ,"p4[120]/D");
335  tNeutral->Branch("pos" ,&fpos[0] ,"pos[90]/D");
336  tNeutral->Branch("rawe" ,&frawe[0] ,"rawe[30]/D");
337  tNeutral->Branch("cale" ,&fcale[0] ,"cale[30]/D");
338  tNeutral->Branch("ndigi" ,&fndigi[0] ,"ndigi[30]/I");
339  tNeutral->Branch("mod" ,&fmod[0] ,"EmcModule[30]/I");
340  tNeutral->Branch("cluIdx" ,&fcluIdx[0] ,"clusterIdx[30]/I");
341  tNeutral->Branch("e25" ,&fe25[0] ,"e25[30]/D");
342  tNeutral->Branch("e9" ,&fe9[0] ,"e9[30]/D");
343  tNeutral->Branch("nbump" ,&fnbump[0] ,"nbump[30]/I");
344  }
345  if(fSaveJpsiTo3g){
346  tAna3g = new TTree("Ana", "Jpsi-->3photon");
347  tAna3g->Branch("ng" ,&fNumberOfGoodPhoton ,"GoodPhoton/I");
348  tAna3g->Branch("eE" ,&fExternalEnergy ,"ExtralEnergy/D");
349  tAna3g->Branch("4p1" ,&f4p1[0] ,"Photon1[4]/D");
350  tAna3g->Branch("mc4p1" ,&fMc4p1[0] ,"Truth1[4]/D");
351  tAna3g->Branch("pos1" ,&fpos1[0] ,"pos1[3]/D");
352  tAna3g->Branch("e1" ,&fenergy1 ,"e1/D");
353  tAna3g->Branch("rawe1" ,&femcraw1 ,"rawe1/D");
354  tAna3g->Branch("nd1" ,&fndigi1 ,"NumOfDigi1/I");
355  tAna3g->Branch("mcTrk1" ,&fMcTrack1 ,"McTrackID1/I");
356  tAna3g->Branch("mod1" ,&fmod1 ,"mod1/I");
357  tAna3g->Branch("e251" ,&fe251 ,"e251/D");
358  tAna3g->Branch("lat1" ,&flat1 ,"lat1/D");
359  tAna3g->Branch("z201" ,&fz201 ,"z201/D");
360  tAna3g->Branch("z531" ,&fz531 ,"z531/D");
361 
362  tAna3g->Branch("4p2" ,&f4p2[0] ,"Photon2[4]/D");
363  tAna3g->Branch("mc4p2" ,&fMc4p2[0] ,"Truth2[4]/D");
364  tAna3g->Branch("pos2" ,&fpos2[0] ,"pos2[3]/D");
365  tAna3g->Branch("e2" ,&fenergy2 ,"e2/D");
366  tAna3g->Branch("rawe2" ,&femcraw2 ,"rawe2/D");
367  tAna3g->Branch("nd2" ,&fndigi2 ,"NumOfDigi2/I");
368  tAna3g->Branch("mcTrk2" ,&fMcTrack2 ,"McTrackID2/I");
369  tAna3g->Branch("mod2" ,&fmod2 ,"mod2/I");
370  tAna3g->Branch("e252" ,&fe252 ,"e252/D");
371  tAna3g->Branch("lat2" ,&flat2 ,"lat2/D");
372  tAna3g->Branch("z202" ,&fz202 ,"z202/D");
373  tAna3g->Branch("z532" ,&fz532 ,"z532/D");
374 
375  tAna3g->Branch("4p3" ,&f4p3[0] ,"Photon3[4]/D");
376  tAna3g->Branch("mc4p3" ,&fMc4p3[0] ,"Truth3[4]/D");
377  tAna3g->Branch("pos3" ,&fpos3[0] ,"pos3[3]/D");
378  tAna3g->Branch("e3" ,&fenergy3 ,"e3/D");
379  tAna3g->Branch("rawe3" ,&femcraw3 ,"rawe3/D");
380  tAna3g->Branch("nd3" ,&fndigi3 ,"NumOfDigi3/I");
381  tAna3g->Branch("mcTrk3" ,&fMcTrack3 ,"McTrackID3/I");
382  tAna3g->Branch("mod3" ,&fmod3 ,"mod3/I");
383  tAna3g->Branch("e253" ,&fe253 ,"e253/D");
384  tAna3g->Branch("lat3" ,&flat3 ,"lat3/D");
385  tAna3g->Branch("z203" ,&fz203 ,"z203/D");
386  tAna3g->Branch("z533" ,&fz533 ,"z533/D");
387 
388  }
389 
390 
391  evtset.clear();
392  pevtset.clear();
393  evtMap.clear();
394 
395  totNumOfWave = 0;
396  totNumOfSubWave = 0;
397  totNumOfDigi = 0;
398  totNumOfSharedDigi = 0;
399  totNumOfBump = 0;
400  totNumOfEvents = 0;
402  fNumOfMatch = 0;
403  fNumOfDismatch = 0;
404 
405  //vector resize
406  // const Int_t Num = 1;
407  // fEnergy.resize(Num);
408  // fEnergyC1.resize(Num);
409  // fEnergyC2.resize(Num);
410  // fPositionV.resize(3*Num);
411  // fp4.resize(4*Num);
412  // fMcp4.resize(4*Num);
413  // fZ201.resize(Num);
414  // fZ531.resize(Num);
415  // fLat1.resize(Num);
416  // fModule1.resize(Num);
417  // fTheta1.resize(Num);
418  // fPhi1.resize(Num);
419  // fDet1.resize(Num);
420  // fHitEmc1.resize(Num);
421  // fHitEmc2.resize(Num);
422  // fNPointV.resize(Num);
423 
424  cout << "-I- PndEmcAnalysis: Intialization successfull" << endl;
425  return kSUCCESS;
426 }
Double_t fBumpEnergy
Double_t fRestEnergy1
TClonesArray * fEmcHitsArray
Bool_t fSavePidNeutral
Int_t fHitEmc1[NElement]
Double_t fExternalEnergy
Int_t fchar[NElement]
Double_t totDigiEnergy
Int_t fcluIdx[NElement]
Int_t fNPointV[NElement]
Double_t fpos[NElement]
Int_t totNumOfPileupEvents
TClonesArray * fMcTrackArray
std::map< Int_t, std::pair< Int_t, Int_t > > evtMap
std::set< Int_t > pevtset
TClonesArray * fBumpArray
Double_t fe9[NElement]
TClonesArray * fClusterArray
Double_t fcale[NElement]
Double_t fBumpTime3
Double_t fBaseline
BinaryFunctor * fFunctor
Double_t fe25[NElement]
Double_t fEnergyC1[NElement]
Double_t fEnergyC2[NElement]
Double_t fmom[NElement]
Double_t fMc4p3[4]
Double_t fHitEnergy
Double_t fDigiTime
Double_t fSeedTime
Double_t fMcp4[4 *NElement]
Double_t f4p3[4]
std::set< Int_t > evtset
Double_t f4p1[4]
Double_t fpos3[3]
TClonesArray * fNeutralCand
Double_t f4p2[4]
Double_t fBumpTime1
Bool_t fSaveJpsiTo3g
Int_t fNumberOfGoodPhoton
Double_t fpos2[3]
Int_t fnbump[NElement]
TClonesArray * fDigiArray
Double_t fTheta1[NElement]
Double_t fRestEnergy3
Int_t fHitEmc2[NElement]
Double_t fZ201[NElement]
Double_t fPositionV[3 *NElement]
Double_t frawe[NElement]
TClonesArray * fSharedDigiArray
Double_t fp4[4 *NElement]
TVector3 fPosition
Double_t fPhi1[NElement]
Int_t fmod[NElement]
Double_t fMc4p1[4]
TVector3 fSeedPosition
Double_t fWavePeak
TClonesArray * fChargedCand
Double_t fDistance
Double_t fEnergy[NElement]
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
Int_t fPDGCode[NElement]
Bool_t fSavePidCharged
Double_t fRestEnergy2
Int_t fmcidx[NElement]
TClonesArray * fWaveformArray
Int_t fModule1[NElement]
Int_t totNumOfSharedDigi
Double_t fZ531[NElement]
Double_t fDigiEnergy
Int_t fndigi[NElement]
Double_t fMc4p2[4]
Double_t fBumpTime2
Double_t totSharedDigiEnergy
Double_t fpos1[3]
Double_t fWaveTime
Double_t fLat1[NElement]
PndEmcAnalysis& PndEmcAnalysis::operator= ( const PndEmcAnalysis )
inlineprivate

Definition at line 105 of file PndEmcAnalysis.h.

105 {return *this;};
void PndEmcAnalysis::RunTimeBased ( )
inline

Definition at line 70 of file PndEmcAnalysis.h.

70 {fTimeOrderedDigi = kTRUE;}
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
void PndEmcAnalysis::SetOutput ( TString  name)
inline

Definition at line 68 of file PndEmcAnalysis.h.

References name.

68 { fileName = name; }
TString name
void PndEmcAnalysis::SetParContainers ( )
private

Definition at line 876 of file PndEmcAnalysis.cxx.

References run.

876  {
877 
878  // Get run and runtime database
879  FairRun* run = FairRun::Instance();
880  if ( ! run ) Fatal("SetParContainers", "No analysis run");
881 
882  FairRuntimeDb* db = run->GetRuntimeDb();
883  if ( ! db ) Fatal("SetParContainers", "No runtime database");
884 
885  // Get Emc digitisation parameter container
886  //fDigiPar = (PndEmcDigiPar*) db->getContainer("PndEmcDigiPar");
887 
888  // Get Emc reconstruction parameter container
889  //fRecoPar = (PndEmcRecoPar*) db->getContainer("PndEmcRecoPar");
890 
891  // Get Emc FPGA parameter container
892  //fFpgaPar = (PndEmcFpgaPar*) db->getContainer("PndEmcFpgaPar");
893 }
Int_t run
Definition: autocutx.C:47

Member Data Documentation

PndEmcDigiCalibrator PndEmcAnalysis::digiCalibrator
private

Definition at line 296 of file PndEmcAnalysis.h.

std::map<Int_t, std::pair<Int_t, Int_t> > PndEmcAnalysis::evtMap
private

Definition at line 114 of file PndEmcAnalysis.h.

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

std::set<Int_t> PndEmcAnalysis::evtset
private

Definition at line 116 of file PndEmcAnalysis.h.

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

Double_t PndEmcAnalysis::f4p1[4]
private

Definition at line 253 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::f4p2[4]
private

Definition at line 267 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::f4p3[4]
private

Definition at line 281 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fBaseline
private

Definition at line 144 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcAnalysis::fBumpArray
private

Definition at line 93 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fBumpEnergy
private

Definition at line 170 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fBumpTime1
private

Definition at line 166 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fBumpTime2
private

Definition at line 167 of file PndEmcAnalysis.h.

Referenced by Init().

Double_t PndEmcAnalysis::fBumpTime3
private

Definition at line 168 of file PndEmcAnalysis.h.

Referenced by Init().

Double_t PndEmcAnalysis::fcale[NElement]
private

Definition at line 237 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fchar[NElement]
private

Definition at line 231 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcAnalysis::fChargedCand
private

Definition at line 96 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fcluIdx[NElement]
private

Definition at line 240 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcAnalysis::fClusterArray
private

Definition at line 92 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fClusterIdx
private

Definition at line 175 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fDet1[NElement]
private

Definition at line 223 of file PndEmcAnalysis.h.

Referenced by Exec().

TClonesArray* PndEmcAnalysis::fDigiArray
private

Definition at line 90 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fDigiEnergy
private

Definition at line 154 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fDigiMapSize
private

Definition at line 177 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fDigiTime
private

Definition at line 149 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fDistance
private

Definition at line 155 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fe25[NElement]
private

Definition at line 241 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fe251
private

Definition at line 262 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fe252
private

Definition at line 276 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fe253
private

Definition at line 290 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fe9[NElement]
private

Definition at line 242 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcAnalysis::fEmcHitsArray
private

Input arrays

Definition at line 88 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::femcraw1
private

Definition at line 258 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::femcraw2
private

Definition at line 272 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::femcraw3
private

Definition at line 286 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fEnergy[NElement]
private

Definition at line 208 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fenergy1
private

Definition at line 257 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fEnergy1C
private

Definition at line 161 of file PndEmcAnalysis.h.

Referenced by Exec().

Double_t PndEmcAnalysis::fenergy2
private

Definition at line 271 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fEnergy2C
private

Definition at line 162 of file PndEmcAnalysis.h.

Double_t PndEmcAnalysis::fenergy3
private

Definition at line 285 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fEnergyC1[NElement]
private

Definition at line 209 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fEnergyC2[NElement]
private

Definition at line 210 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fEventNo
private

Definition at line 143 of file PndEmcAnalysis.h.

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

TClonesArray* PndEmcAnalysis::fEvtHeaderArray
private

Definition at line 95 of file PndEmcAnalysis.h.

Double_t PndEmcAnalysis::fEvtTime
private

Definition at line 136 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fExternalEnergy
private

Definition at line 251 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

BinaryFunctor* PndEmcAnalysis::fFunctor
private

Definition at line 109 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fHitEmc1[NElement]
private

Definition at line 224 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fHitEmc2[NElement]
private

Definition at line 225 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fHitEnergy
private

Definition at line 131 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fHitIndex
private

Definition at line 138 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fHitTime
private

Definition at line 130 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

TString PndEmcAnalysis::fileName
private

Definition at line 118 of file PndEmcAnalysis.h.

Referenced by Init(), and PndEmcAnalysis().

Double_t PndEmcAnalysis::fLat1[NElement]
private

Definition at line 213 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::flat1
private

Definition at line 263 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::flat2
private

Definition at line 277 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::flat3
private

Definition at line 291 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fMc4p1[4]
private

Definition at line 254 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fMc4p2[4]
private

Definition at line 268 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fMc4p3[4]
private

Definition at line 282 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fmcidx[NElement]
private

Definition at line 235 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fMcp4[4 *NElement]
private

Definition at line 206 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fMcTrack1
private

Definition at line 261 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fMcTrack2
private

Definition at line 275 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fMcTrack3
private

Definition at line 289 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcAnalysis::fMcTrackArray
private

Definition at line 94 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fmod[NElement]
private

Definition at line 239 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fmod1
private

Definition at line 260 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fmod2
private

Definition at line 274 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fmod3
private

Definition at line 288 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fModule
private

Definition at line 137 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fModule1[NElement]
private

Definition at line 214 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fmom[NElement]
private

Definition at line 234 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fmom1
private

Definition at line 256 of file PndEmcAnalysis.h.

Double_t PndEmcAnalysis::fmom2
private

Definition at line 270 of file PndEmcAnalysis.h.

Double_t PndEmcAnalysis::fmom3
private

Definition at line 284 of file PndEmcAnalysis.h.

Int_t PndEmcAnalysis::fnbump[NElement]
private

Definition at line 243 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fndigi[NElement]
private

Definition at line 238 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fndigi1
private

Definition at line 259 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fndigi2
private

Definition at line 273 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fndigi3
private

Definition at line 287 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcAnalysis::fNeutralCand
private

Definition at line 97 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNPoint
private

Definition at line 134 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNPointV[NElement]
private

Definition at line 226 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumberOfGoodPhoton
private

Definition at line 250 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumBump
private

Definition at line 174 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumCluster
private

Definition at line 188 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumDigi
private

Definition at line 173 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumGT
private

Definition at line 221 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumMcTrack
private

Definition at line 190 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumOfDismatch
private

Definition at line 179 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumOfHits
private

Definition at line 184 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumOfMatch
private

Definition at line 178 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumOfSeed
private

Definition at line 176 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumSharedDigi
private

Definition at line 187 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fNumWaveform
private

Definition at line 185 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fp4[4 *NElement]
private

Definition at line 205 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fPDGCode[NElement]
private

Definition at line 215 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fPhi
private

Definition at line 133 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fPhi1[NElement]
private

Definition at line 217 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fPileupCount
private

Definition at line 147 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fPileupWave
private

Definition at line 194 of file PndEmcAnalysis.h.

Referenced by FinishTask(), and Init().

Double_t PndEmcAnalysis::fpos[NElement]
private

Definition at line 233 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fpos1[3]
private

Definition at line 255 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fpos2[3]
private

Definition at line 269 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fpos3[3]
private

Definition at line 283 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

TVector3 PndEmcAnalysis::fPosition
private

Definition at line 158 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fPositionV[3 *NElement]
private

Definition at line 207 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::frawe[NElement]
private

Definition at line 236 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fRestEnergy1
private

Definition at line 218 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fRestEnergy2
private

Definition at line 219 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fRestEnergy3
private

Definition at line 220 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

TFile* PndEmcAnalysis::fRootFile
private

Definition at line 119 of file PndEmcAnalysis.h.

Referenced by FinishTask(), and Init().

Bool_t PndEmcAnalysis::fSaveBump

Definition at line 76 of file PndEmcAnalysis.h.

Referenced by Exec(), FinishTask(), Init(), and PndEmcAnalysis().

Bool_t PndEmcAnalysis::fSaveDigi

Definition at line 75 of file PndEmcAnalysis.h.

Referenced by Exec(), FinishTask(), Init(), and PndEmcAnalysis().

Bool_t PndEmcAnalysis::fSaveHits

Definition at line 78 of file PndEmcAnalysis.h.

Referenced by Exec(), FinishTask(), Init(), and PndEmcAnalysis().

Bool_t PndEmcAnalysis::fSaveJpsiTo3g

Definition at line 83 of file PndEmcAnalysis.h.

Referenced by Exec(), FinishTask(), Init(), and PndEmcAnalysis().

Bool_t PndEmcAnalysis::fSaveMcTruth

Definition at line 79 of file PndEmcAnalysis.h.

Referenced by Exec(), FinishTask(), Init(), and PndEmcAnalysis().

Bool_t PndEmcAnalysis::fSavePidCharged

Definition at line 81 of file PndEmcAnalysis.h.

Referenced by Exec(), FinishTask(), Init(), and PndEmcAnalysis().

Bool_t PndEmcAnalysis::fSavePidNeutral

Definition at line 82 of file PndEmcAnalysis.h.

Referenced by Exec(), FinishTask(), Init(), and PndEmcAnalysis().

Bool_t PndEmcAnalysis::fSaveReco

Definition at line 80 of file PndEmcAnalysis.h.

Referenced by Exec(), FinishTask(), Init(), and PndEmcAnalysis().

Bool_t PndEmcAnalysis::fSaveTask

Definition at line 77 of file PndEmcAnalysis.h.

Referenced by Exec(), FinishTask(), Init(), and PndEmcAnalysis().

Bool_t PndEmcAnalysis::fSaveWave

Definition at line 74 of file PndEmcAnalysis.h.

Referenced by Exec(), FinishTask(), Init(), and PndEmcAnalysis().

TVector3 PndEmcAnalysis::fSeedPosition
private

Definition at line 159 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fSeedTime
private

Definition at line 169 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcAnalysis::fSharedDigiArray
private

Definition at line 91 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Bool_t PndEmcAnalysis::fStoreRooTFile
private

Definition at line 102 of file PndEmcAnalysis.h.

Referenced by FinishTask(), and Init().

Double_t PndEmcAnalysis::fTheta
private

Definition at line 132 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fTheta1[NElement]
private

Definition at line 216 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Bool_t PndEmcAnalysis::fTimeOrderedDigi
private

set to kTRUE to use the time ordering of the output data.

Definition at line 112 of file PndEmcAnalysis.h.

Referenced by Exec(), FinishTask(), Init(), and PndEmcAnalysis().

Int_t PndEmcAnalysis::fTotWave
private

Definition at line 193 of file PndEmcAnalysis.h.

Referenced by FinishTask(), and Init().

Int_t PndEmcAnalysis::fVerbose
private

Definition at line 101 of file PndEmcAnalysis.h.

Referenced by Exec().

TClonesArray* PndEmcAnalysis::fWaveformArray
private

Definition at line 89 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fWaveIdx
private

Definition at line 142 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fWaveLen
private

Definition at line 141 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fWavePeak
private

Definition at line 140 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fWaveTime
private

Definition at line 139 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fXcor
private

Definition at line 145 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::fYcor
private

Definition at line 146 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fZ201[NElement]
private

Definition at line 211 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fz201
private

Definition at line 264 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fz202
private

Definition at line 278 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fz203
private

Definition at line 292 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fZ531[NElement]
private

Definition at line 212 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fz531
private

Definition at line 265 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fz532
private

Definition at line 279 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Double_t PndEmcAnalysis::fz533
private

Definition at line 293 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

const Int_t PndEmcAnalysis::NElement = 30
staticprivate

Definition at line 204 of file PndEmcAnalysis.h.

Referenced by Exec().

std::set<Int_t> PndEmcAnalysis::pevtset
private

Definition at line 115 of file PndEmcAnalysis.h.

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

TTree* PndEmcAnalysis::tAna3g
private

Definition at line 248 of file PndEmcAnalysis.h.

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

TTree* PndEmcAnalysis::tBump
private

Definition at line 123 of file PndEmcAnalysis.h.

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

TTree* PndEmcAnalysis::tCharged
private

Definition at line 245 of file PndEmcAnalysis.h.

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

TTree* PndEmcAnalysis::tDigi
private

Definition at line 121 of file PndEmcAnalysis.h.

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

TTree* PndEmcAnalysis::tEvtPileup
private

Definition at line 125 of file PndEmcAnalysis.h.

Referenced by FinishTask(), and Init().

TTree* PndEmcAnalysis::tHit
private

Definition at line 120 of file PndEmcAnalysis.h.

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

TTree* PndEmcAnalysis::tMcTruth
private

Definition at line 127 of file PndEmcAnalysis.h.

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

TTree* PndEmcAnalysis::tNeutral
private

Definition at line 246 of file PndEmcAnalysis.h.

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

Double_t PndEmcAnalysis::totDigiEnergy
private

Definition at line 181 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

Int_t PndEmcAnalysis::totNumOfBump
private

Definition at line 198 of file PndEmcAnalysis.h.

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

Int_t PndEmcAnalysis::totNumOfDigi
private

Definition at line 197 of file PndEmcAnalysis.h.

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

Int_t PndEmcAnalysis::totNumOfEvents
private

Definition at line 200 of file PndEmcAnalysis.h.

Referenced by FinishTask(), and Init().

Int_t PndEmcAnalysis::totNumOfPileupEvents
private

Definition at line 201 of file PndEmcAnalysis.h.

Referenced by FinishTask(), and Init().

Int_t PndEmcAnalysis::totNumOfSharedDigi
private

Definition at line 199 of file PndEmcAnalysis.h.

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

Int_t PndEmcAnalysis::totNumOfSubWave
private

Definition at line 196 of file PndEmcAnalysis.h.

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

Int_t PndEmcAnalysis::totNumOfWave
private

Definition at line 195 of file PndEmcAnalysis.h.

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

Double_t PndEmcAnalysis::totSharedDigiEnergy
private

Definition at line 182 of file PndEmcAnalysis.h.

Referenced by Exec(), and Init().

TTree* PndEmcAnalysis::tRec
private

Definition at line 128 of file PndEmcAnalysis.h.

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

TTree* PndEmcAnalysis::tTask
private

Definition at line 124 of file PndEmcAnalysis.h.

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

TTree* PndEmcAnalysis::tTaskPileup
private

Definition at line 126 of file PndEmcAnalysis.h.

Referenced by FinishTask(), and Init().

TTree* PndEmcAnalysis::tWave
private

Definition at line 122 of file PndEmcAnalysis.h.

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


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