CMS 3D CMS Logo

Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes

Histograms Class Reference

#include <Histograms.h>

Inheritance diagram for Histograms:
HCovarianceVSParts HCovarianceVSxy HDelta HFunctionResolution HLikelihoodVSPart HMassResolutionVSPart HMassVSPart HMassVSPartProfile HParticle HPartVSEta HPartVSPhi HPartVSPt HResolutionVSPart HTH1D HTH2D HTProfile

List of all members.

Public Member Functions

virtual void Clear ()=0
void declareHistograms ()
virtual void Fill (const CLHEP::HepLorentzVector &momentum1, const CLHEP::HepLorentzVector &momentum2, const int charge, const double &weight=1.)
virtual void Fill (const CLHEP::HepLorentzVector &p1, const reco::Particle::LorentzVector &p2)
virtual void Fill (const unsigned int number)
virtual void Fill (const reco::Particle::LorentzVector &recoP1, const int charge1, const reco::Particle::LorentzVector &genP1, const reco::Particle::LorentzVector &recoP2, const int charge2, const reco::Particle::LorentzVector &genP2, const double &recoMass, const double &genMass)
virtual void Fill (const CLHEP::HepLorentzVector &p, const double &likeValue)
virtual void Fill (const reco::Particle::LorentzVector &recoP1, const int charge1, const reco::Particle::LorentzVector &recoP2, const int charge2, const double &recoMass, const double &genMass)
virtual void Fill (const reco::Particle::LorentzVector &recoP1, const reco::Particle::LorentzVector &genP1, const reco::Particle::LorentzVector &recoP2, const reco::Particle::LorentzVector &genP2)
virtual void Fill (const reco::Particle::LorentzVector &p4, const double &weight=1.)
virtual void Fill (const double &x, const double &y)
virtual void Fill (const double &x, const double &y, const double &a, const double &b)
virtual void Fill (const reco::Particle::LorentzVector &p4, const int charge, const double &weight=1.)
virtual void Fill (const reco::Particle::LorentzVector &p41, const reco::Particle::LorentzVector &p42, const reco::Particle::LorentzVector &p4Res, const double &weight=1.)
virtual void Fill (const CLHEP::HepLorentzVector &momentum1, const CLHEP::HepLorentzVector &momentum2, const CLHEP::HepLorentzVector &momentumRes, const double &weight=1.)
virtual void Fill (const reco::Particle::LorentzVector &p1, const reco::Particle::LorentzVector &p2, const int charge, const double &weight=1.)
virtual void Fill (const CLHEP::HepLorentzVector &momentum, const int charge, const double &weight=1.)
virtual void Fill (const reco::Particle::LorentzVector &p4, const double &resValue, const int charge)
virtual void Fill (const reco::Particle::LorentzVector &p1, const reco::Particle::LorentzVector &p2)
virtual void Fill (const reco::Particle::LorentzVector &p4, const double &genValue, const double recValue, const int charge)
virtual void Fill (const CLHEP::HepLorentzVector &momentum1, const CLHEP::HepLorentzVector &momentum2)
void fillEventInfo (int proc, int strk, int ntrkr)
void fillRecHistograms (const RecTrack_t &r)
void fillSimHistograms (const SimTrack_t &s)
void fillVzeroHistograms (const RecVzero_t &r, int part)
virtual double Get (const reco::Particle::LorentzVector &recoP1, const TString &covarianceName)
virtual TString GetName ()
 Histograms (const TString &name)
 Histograms (TFile *outputFile, const TString &name)
 Histograms (const edm::ParameterSet &pset)
 Histograms ()
virtual void SetWeight (double weight)
virtual void Write ()=0
void writeHistograms ()
virtual ~Histograms ()
 ~Histograms ()

Protected Attributes

TDirectory * histoDir_
TString name_
TFile * outputFile_
double theWeight_

Private Member Functions

int getCharge (int charge)
int getParticle (int id)

Private Attributes

std::vector< double > etaBins
EventInfo_t eventInfoValues
bool fillHistograms
bool fillNtuples
std::vector< TH3F * > hacc
std::vector< TH3F * > hall
std::vector< TH2F * > hdac
std::vector< TH2F * > hdec
std::vector< TH2F * > hder
std::vector< TH2F * > held
std::vector< TH3F * > helo
std::vector< TH1F * > heve
std::vector< TH3F * > hfak
std::vector< TH3F * > hima
TFile * histoFile
std::vector< TH3F * > hmul
std::vector< TH3F * > hnhi
std::vector< TH2F * > hpro
std::vector< TH3F * > href
std::vector< TH3F * > hrho
std::vector< TH3F * > hrpt
std::vector< TH3F * > hsim
std::vector< TH2F * > hsp0
std::vector< TH2F * > hsp1
std::vector< TH2F * > hsp2
std::vector< TH3F * > hvpt
std::vector< double > ldeBins
std::vector< double > lpBins
std::vector< double > metaBins
std::vector< double > nhitBins
std::vector< double > ntrkBins
TFile * ntupleFile
std::vector< double > ptBins
std::vector< double > ratBins
RecTrack_t recTrackValues
RecVzero_t recVzeroValues
std::vector< double > rhoBins
SimTrack_t simTrackValues
std::vector< TTree * > trackTrees
std::vector< double > zBins

Detailed Description

Collection of histograms for GLB muon analysis

Date:
2012/12/20 16:09:21
Revision:
1.17
Author:
S. Bolognesi - INFN Torino / T.Dorigo - INFN Padova

Collection of histograms for DT RecHit and Segment test.

Date:
2011/04/18 15:58:30
Revision:
1.13
Author:
S. Bolognesi and G. Cerminara - INFN Torino

No description available.

Date:
2008/06/24 16:40:53
Revision:
1.5
Author:
R. Bellan - INFN Torino <riccardo.bellan@cern.ch>

Definition at line 37 of file Histograms.h.


Constructor & Destructor Documentation

Histograms::Histograms ( ) [inline]

Definition at line 42 of file Histograms.h.

: theWeight_(1), histoDir_(0) {};
Histograms::Histograms ( const TString &  name) [inline]

Definition at line 43 of file Histograms.h.

Histograms::Histograms ( TFile *  outputFile,
const TString &  name 
) [inline]

Definition at line 44 of file Histograms.h.

References histoDir_.

                                                         :
    theWeight_(1),
    name_(name),
    outputFile_(outputFile),
    histoDir_( outputFile->GetDirectory(name) )
  {
    if( histoDir_ == 0 ) {
      histoDir_ = outputFile->mkdir(name);
    }
    histoDir_->cd();
  }
Histograms::~Histograms ( ) [inline, virtual]

Definition at line 58 of file Histograms.h.

{};
Histograms::Histograms ( const edm::ParameterSet pset)

Definition at line 83 of file Histograms.cc.

References fillHistograms, fillNtuples, edm::ParameterSet::getParameter(), histoFile, ntupleFile, and AlCaHLTBitMon_QueryRunRegistry::string.

{
  fillHistograms         = pset.getParameter<bool>("fillHistograms");
  fillNtuples            = pset.getParameter<bool>("fillNtuples");

  std::string histoFileLabel = pset.getParameter<std::string>("histoFile");
  histoFile = new TFile(histoFileLabel.c_str(),"recreate");

  std::string ntupleFileLabel = pset.getParameter<std::string>("ntupleFile");
  ntupleFile = new TFile(ntupleFileLabel.c_str(),"recreate");

//  resultFile->cd();
}
Histograms::~Histograms ( )

Member Function Documentation

virtual void Histograms::Clear ( ) [pure virtual]
void Histograms::declareHistograms ( )

Definition at line 152 of file Histograms.cc.

References aks, ala, DeDxDiscriminatorTools::charge(), chargeName, constexpr, alignCSCRings::e, eta, etaBins, jptDQMConfig_cff::etaMax, jptDQMConfig_cff::etaMin, eventInfoValues, feedDown, fillHistograms, fillNtuples, first, gam, hacc, hall, hdac, hdec, hder, held, helo, heve, hfak, hima, hmul, hnhi, hpro, href, hrho, hrpt, hsim, hsp0, hsp1, hsp2, hvpt, gen::k, k0s, kst, lam, ldeBins, funct::log(), lpBins, metaBins, nCharges, nFeedDowns, nhitBins, ntrkBins, partName, phi, pip, ptBins, ratBins, recTrackValues, recVzeroValues, rho, rhoBins, edm::second(), simTrackValues, trackTrees, z, and zBins.

{
  if(fillNtuples)
  {
    TString leafStr;

    trackTrees.push_back(new TTree("simTrackTree","simTrackTree"));
    leafStr = "ids/I:etas/F:pts/F:acc/I:prim/I:nrec/I:ntrkr/I";
    trackTrees[0]->Branch("simTrackValues", &simTrackValues, leafStr.Data());

    trackTrees.push_back(new TTree("recTrackTree","recTrackTree"));
    leafStr = "charge/I:etar/F:ptr/F:phir/F:zr/F:logpr/F:logde/F:nhitr/I:prim/I:nsim/I:ids/I:parids/I:etas/F:pts/F:ntrkr/I";
    trackTrees[1]->Branch("recTrackValues", &recTrackValues, leafStr.Data());

    trackTrees.push_back(new TTree("recVzeroTree","recVzeroTree"));
    leafStr = "etar/F:ptr/F:ima/F:rhor/F";
    trackTrees[2]->Branch("recVzeroValues", &recVzeroValues, leafStr.Data());

    trackTrees.push_back(new TTree("eventInfoTree","eventInfoTree"));
    leafStr = "proc/I:strk/I:ntrkr/I";
    trackTrees[3]->Branch("eventInfoValues", &eventInfoValues, leafStr.Data());
  }

  if(fillHistograms)
  {
  // Pt
  const double small = 1e-3;
  double pt;

  for(pt =  0; pt <  1 - small; pt += 0.05) ptBins.push_back(pt);
  for(pt =  1; pt <  2 - small; pt += 0.1 ) ptBins.push_back(pt);
  for(pt =  2; pt <  4 - small; pt += 0.2 ) ptBins.push_back(pt);
  for(pt =  4; pt <  8 - small; pt += 0.5 ) ptBins.push_back(pt);
  for(pt =  8; pt < 16 - small; pt += 1.  ) ptBins.push_back(pt);
  for(pt = 16; pt < 32 - small; pt += 2.  ) ptBins.push_back(pt);
  for(pt = 32; pt < 64 - small; pt += 4.  ) ptBins.push_back(pt);

  constexpr float ratMin   = 0.5;
  constexpr float ratMax   = 1.5;
  constexpr float ratWidth = 1./200;

  for(double rat = ratMin; rat < ratMax + ratWidth/2; rat += ratWidth)
    ratBins.push_back(rat);

  // Eta (-3,3)
  constexpr float etaMin   = -3.0;
  constexpr float etaMax   =  3.0;
  constexpr float etaWidth =  0.2;

  for(double eta = etaMin; eta < etaMax + etaWidth/2; eta += etaWidth)
    etaBins.push_back(eta);

//  for(double eta = etaMin; eta < etaMax + etaWidth/2; eta += etaWidth/10)
  for(double eta = etaMin; eta < etaMax + etaWidth/2; eta += etaWidth/5)
    metaBins.push_back(eta);

  constexpr float zMin   = -20.;
  constexpr float zMax   =  20.;
//  constexpr float zWidth =  0.1;
  constexpr float zWidth =  0.2;

  for(double z = zMin; z < zMax + zWidth/2; z += zWidth)
    zBins.push_back(z);

  // Number of recontructed tracks
  constexpr float ntrkMin   =  0.5;
// FIXME
//  constexpr float ntrkMax   = 200.;
//  constexpr float ntrkWidth =   5.;
  constexpr float ntrkMax   = 1000.;
  constexpr float ntrkWidth =   10.;
  
  for(double ntrk = ntrkMin; ntrk < ntrkMax + ntrkWidth; ntrk += ntrkWidth)
    ntrkBins.push_back(ntrk);


  char histName[256];

  // EventInfo
  sprintf(histName,"heve");
  heve.push_back(new TH1F(histName,histName, 200, -0.5,199.5));

  sprintf(histName,"hsdx");
  heve.push_back(new TH1F(histName,histName, 200, -0.5,199.5));

  sprintf(histName,"hddx");
  heve.push_back(new TH1F(histName,histName, 200, -0.5,199.5));

  sprintf(histName,"hndx");
  heve.push_back(new TH1F(histName,histName, 200, -0.5,199.5));

  sprintf(histName,"hder");
  hder.push_back(new TH2F(histName,histName, 200, -0.5,199.5,
                                             200, -0.5,199.5));

  // SimTrack
  for(int part = pip; part <= ala; part++)
  {
    // simulated
    sprintf(histName,"hsim_%s", partName[part]);
    hsim.push_back(new TH3F(histName,histName,
                            etaBins.size()-1,  &etaBins[0],
                             ptBins.size()-1,   &ptBins[0],
                           ntrkBins.size()-1, &ntrkBins[0]));
   
    // accepted 
    sprintf(histName,"hacc_%s", partName[part]);
    hacc.push_back(new TH3F(histName,histName,
                            etaBins.size()-1,  &etaBins[0],
                             ptBins.size()-1,   &ptBins[0],
                           ntrkBins.size()-1, &ntrkBins[0]));
  
    // reconstructed/efficiency
    sprintf(histName,"href_%s", partName[part]);
    href.push_back(new TH3F(histName,histName,
                            etaBins.size()-1,  &etaBins[0],
                             ptBins.size()-1,   &ptBins[0],
                           ntrkBins.size()-1, &ntrkBins[0]));
  
    // multiply reconstructed
    sprintf(histName,"hmul_%s", partName[part]);
    hmul.push_back(new TH3F(histName,histName,
                            etaBins.size()-1,  &etaBins[0],
                             ptBins.size()-1,   &ptBins[0],
                           ntrkBins.size()-1, &ntrkBins[0]));
  }

  // RecTrack
  for(int charge = 0; charge < nCharges; charge++)
  {
    sprintf(histName,"hall_%s",chargeName[charge]);
    hall.push_back(new TH3F(histName,histName,
                            etaBins.size()-1,  &etaBins[0],
                             ptBins.size()-1,   &ptBins[0],
                           ntrkBins.size()-1, &ntrkBins[0]));

    sprintf(histName,"hdac_%s",chargeName[charge]);
    hdac.push_back(new TH2F(histName,histName, 
                           metaBins.size()-1, &metaBins[0],
                              zBins.size()-1,    &zBins[0]));

    // RecTrack -- FakeRate
    sprintf(histName,"hfak_%s",chargeName[charge]);
    hfak.push_back(new TH3F(histName,histName,
                            etaBins.size()-1,  &etaBins[0],
                             ptBins.size()-1,   &ptBins[0],
                           ntrkBins.size()-1, &ntrkBins[0]));
  }

  // RecTrack -- Resolution, bias
  for(int part = pip; part <= ala; part++)
  {
    // value
    sprintf(histName,"hvpt_%s",partName[part]);
    hvpt.push_back(new TH3F(histName,histName,
                            etaBins.size()-1, &etaBins[0],
                             ptBins.size()-1,  &ptBins[0],
                             ptBins.size()-1,  &ptBins[0]));

    // ratio
    sprintf(histName,"hrpt_%s",partName[part]);
    hrpt.push_back(new TH3F(histName,histName,
                            etaBins.size()-1, &etaBins[0],
                             ptBins.size()-1,  &ptBins[0],
                            ratBins.size()-1, &ratBins[0]));

    sprintf(histName,"hsp0_%s",partName[part]);
    hsp0.push_back(new TH2F(histName,histName,
                            etaBins.size()-1, &etaBins[0],
                             ptBins.size()-1,  &ptBins[0]));

    sprintf(histName,"hsp1_%s",partName[part]);
    hsp1.push_back(new TH2F(histName,histName,
                            etaBins.size()-1, &etaBins[0],
                             ptBins.size()-1,  &ptBins[0]));

    sprintf(histName,"hsp2_%s",partName[part]);
    hsp2.push_back(new TH2F(histName,histName,
                            etaBins.size()-1, &etaBins[0],
                             ptBins.size()-1,  &ptBins[0]));
  }

  // RecTrack -- FeedDown
  for(int k = 0; k < nFeedDowns; k++)
  {
    sprintf(histName,"hpro_%s_%s", partName[feedDown[k].first], // produced
                                   partName[feedDown[k].second]);
    hpro.push_back(new TH2F(histName,histName,
                            etaBins.size()-1, &etaBins[0],
                             ptBins.size()-1,  &ptBins[0]));

    sprintf(histName,"hdec_%s_%s", partName[feedDown[k].first], // decay
                                   partName[feedDown[k].second]);
    hdec.push_back(new TH2F(histName,histName,
                            etaBins.size()-1, &etaBins[0],
                             ptBins.size()-1,  &ptBins[0]));
  }

  // EnergyLoss
  constexpr float lpMin   = -3; // 50 MeV
  constexpr float lpMax   =  2; // 7.4 GeV
  constexpr float lpWidth = (lpMax - lpMin)/100;
  for(double lp = lpMin; lp < lpMax + lpWidth/2; lp += lpWidth)
    lpBins.push_back(lp);

  constexpr float ldeMin   = log(1);
  constexpr float ldeMax   = log(100);
  constexpr float ldeWidth = (ldeMax - ldeMin)/250;
  for(double lde = ldeMin; lde < ldeMax + ldeWidth/2; lde += ldeWidth)
    ldeBins.push_back(lde);

  for(double nhit = -0.5; nhit < 50; nhit += 1)
    nhitBins.push_back(nhit);

  for(int charge = 0; charge < nCharges; charge++)
  {
    // All hits
    // dE/dx
    sprintf(histName,"helo_%s", chargeName[charge]);
    helo.push_back(new TH3F(histName,histName,
                           etaBins.size()-1, &etaBins[0],
                            ptBins.size()-1,  &ptBins[0],
                           ldeBins.size()-1, &ldeBins[0]));

    // Number of hits used
    sprintf(histName,"hnhi_%s", chargeName[charge]);
    hnhi.push_back(new TH3F(histName,histName,
                           etaBins.size()-1,  &etaBins[0],
                            ptBins.size()-1,   &ptBins[0],
                          nhitBins.size()-1, &nhitBins[0]));

    // Demo plot
    sprintf(histName,"held_%s", chargeName[charge]);
    held.push_back(new TH2F(histName,histName,
                            lpBins.size()-1,  &lpBins[0],
                           ldeBins.size()-1, &ldeBins[0])); 
  }

/*
  for(int charge = 0; charge < nCharges; charge++)
  {
    // Strip hits
    // dE/dx
    sprintf(histName,"selo_%s", chargeName[charge]);
    selo.push_back(new TH3F(histName,histName,
                           etaBins.size()-1, &etaBins[0],
                            ptBins.size()-1,  &ptBins[0],
                           ldeBins.size()-1, &ldeBins[0]));

    // Number of hits used
    sprintf(histName,"snhi_%s", chargeName[charge]);
    snhi.push_back(new TH3F(histName,histName,
                           etaBins.size()-1,  &etaBins[0],
                            ptBins.size()-1,   &ptBins[0],
                          nhitBins.size()-1, &nhitBins[0]));
    
    // Demo plot
    sprintf(histName,"seld_%s", chargeName[charge]);
    seld.push_back(new TH2F(histName,histName,
                            lpBins.size()-1,  &lpBins[0],
                           ldeBins.size()-1, &ldeBins[0]));
  }
*/

  // Invariant mass
  constexpr float rhoMin   = 0.;
  constexpr float rhoMax   = 5.;
  constexpr float rhoWidth = 0.2; 
  for(double rho_ = rhoMin; rho_ < rhoMax + rhoWidth/2; rho_ += rhoWidth)
    rhoBins.push_back(rho_);


  for(int part = gam; part <= phi; part++)
  {
    float imMin = 0;
    float imMax = 0;
    float imWidth = 0;

    if(part == gam) { imMin = 0.0; imMax = 0.2; imWidth = 0.005; }
    if(part == k0s) { imMin = 0.3; imMax = 0.7; imWidth = 0.005; }
    if(part == lam ||
       part == ala) { imMin = 1.0; imMax = 1.3; imWidth = 0.002; }

    if(part == rho) { imMin = 0.2; imMax = 1.2; imWidth = 0.010; }
    if(part == kst ||
       part == aks) { imMin = 0.6; imMax = 1.6; imWidth = 0.010; }
    if(part == phi) { imMin = 0.9; imMax = 1.1; imWidth = 0.002; }

    std::vector<double> imBins;
    double im;
    for(im = imMin; im < imMax + imWidth/2; im += imWidth)
      imBins.push_back(im);

    if(imWidth > 0)
    {
      sprintf(histName,"hima_%s", partName[part]);
      hima.push_back(new TH3F(histName,histName,
                              etaBins.size()-1, &etaBins[0],
                               ptBins.size()-1,  &ptBins[0],
                               imBins.size()-1,  &imBins[0]));

      if(part >= rho && part <= phi)
      {
      sprintf(histName,"himp_%s", partName[part]);
      hima.push_back(new TH3F(histName,histName,
                              etaBins.size()-1, &etaBins[0],
                               ptBins.size()-1,  &ptBins[0],
                               imBins.size()-1,  &imBins[0]));

      sprintf(histName,"himm_%s", partName[part]);
      hima.push_back(new TH3F(histName,histName,
                              etaBins.size()-1, &etaBins[0],
                               ptBins.size()-1,  &ptBins[0],
                               imBins.size()-1,  &imBins[0]));

      sprintf(histName,"himx_%s", partName[part]);
      hima.push_back(new TH3F(histName,histName,
                              etaBins.size()-1, &etaBins[0],
                               ptBins.size()-1,  &ptBins[0],
                               imBins.size()-1,  &imBins[0]));
      }

      sprintf(histName,"hrho_%s", partName[part]);
      hrho.push_back(new TH3F(histName,histName,
                              rhoBins.size()-1, &rhoBins[0],
                               ptBins.size()-1,  &ptBins[0],
                               imBins.size()-1,  &imBins[0]));
    }
  }
  }
}
virtual void Histograms::Fill ( const reco::Particle::LorentzVector p1,
const reco::Particle::LorentzVector p2 
) [inline, virtual]

Reimplemented in HDelta.

Definition at line 64 of file Histograms.h.

{};
virtual void Histograms::Fill ( const CLHEP::HepLorentzVector &  momentum1,
const CLHEP::HepLorentzVector &  momentum2,
const int  charge,
const double &  weight = 1. 
) [inline, virtual]

Reimplemented in HMassVSPart, and HMassVSPartProfile.

Definition at line 67 of file Histograms.h.

{};
virtual void Histograms::Fill ( const CLHEP::HepLorentzVector &  momentum,
const int  charge,
const double &  weight = 1. 
) [inline, virtual]

Reimplemented in HParticle.

Definition at line 75 of file Histograms.h.

{};
virtual void Histograms::Fill ( const double &  x,
const double &  y 
) [inline, virtual]

Reimplemented in HTH2D, HTH1D, and HTProfile.

Definition at line 96 of file Histograms.h.

{};
virtual void Histograms::Fill ( const double &  x,
const double &  y,
const double &  a,
const double &  b 
) [inline, virtual]

Reimplemented in HCovarianceVSxy.

Definition at line 97 of file Histograms.h.

{};
virtual void Histograms::Fill ( const reco::Particle::LorentzVector p4,
const double &  resValue,
const int  charge 
) [inline, virtual]

Reimplemented in HResolutionVSPart, HFunctionResolution, and HFunctionResolutionVarianceCheck.

Definition at line 78 of file Histograms.h.

{};
virtual void Histograms::Fill ( const reco::Particle::LorentzVector p41,
const reco::Particle::LorentzVector p42,
const reco::Particle::LorentzVector p4Res,
const double &  weight = 1. 
) [inline, virtual]

Reimplemented in HMassVSPart.

Definition at line 98 of file Histograms.h.

                                                {};
virtual void Histograms::Fill ( const CLHEP::HepLorentzVector &  momentum1,
const CLHEP::HepLorentzVector &  momentum2,
const CLHEP::HepLorentzVector &  momentumRes,
const double &  weight = 1. 
) [inline, virtual]

Reimplemented in HMassVSPart.

Definition at line 102 of file Histograms.h.

                                                {};
virtual void Histograms::Fill ( const reco::Particle::LorentzVector p1,
const reco::Particle::LorentzVector p2,
const int  charge,
const double &  weight = 1. 
) [inline, virtual]

Reimplemented in HMassVSPart, and HMassVSPartProfile.

Definition at line 65 of file Histograms.h.

{};
virtual void Histograms::Fill ( const reco::Particle::LorentzVector p4,
const double &  genValue,
const double  recValue,
const int  charge 
) [inline, virtual]

Definition at line 79 of file Histograms.h.

{};
virtual void Histograms::Fill ( const CLHEP::HepLorentzVector &  p1,
const reco::Particle::LorentzVector p2 
) [inline, virtual]

Reimplemented in HDelta.

Definition at line 68 of file Histograms.h.

{};
virtual void Histograms::Fill ( const CLHEP::HepLorentzVector &  p,
const double &  likeValue 
) [inline, virtual]

Reimplemented in HPartVSEta, HPartVSPhi, and HPartVSPt.

Definition at line 80 of file Histograms.h.

{};
virtual void Histograms::Fill ( const CLHEP::HepLorentzVector &  momentum1,
const CLHEP::HepLorentzVector &  momentum2 
) [inline, virtual]

Reimplemented in HDelta.

Definition at line 66 of file Histograms.h.

{};
virtual void Histograms::Fill ( const reco::Particle::LorentzVector p4,
const double &  weight = 1. 
) [inline, virtual]

Reimplemented in HPartVSEta, HPartVSPhi, HPartVSPt, and HLikelihoodVSPart.

Definition at line 69 of file Histograms.h.

{};
virtual void Histograms::Fill ( const unsigned int  number) [inline, virtual]

Reimplemented in HParticle.

Definition at line 81 of file Histograms.h.

{};
virtual void Histograms::Fill ( const reco::Particle::LorentzVector recoP1,
const int  charge1,
const reco::Particle::LorentzVector genP1,
const reco::Particle::LorentzVector recoP2,
const int  charge2,
const reco::Particle::LorentzVector genP2,
const double &  recoMass,
const double &  genMass 
) [inline, virtual]

Reimplemented in HMassResolutionVSPart.

Definition at line 82 of file Histograms.h.

                                                                       {};
virtual void Histograms::Fill ( const reco::Particle::LorentzVector recoP1,
const reco::Particle::LorentzVector genP1,
const reco::Particle::LorentzVector recoP2,
const reco::Particle::LorentzVector genP2 
) [inline, virtual]

Reimplemented in HCovarianceVSParts.

Definition at line 92 of file Histograms.h.

                                                               {};
virtual void Histograms::Fill ( const reco::Particle::LorentzVector p4,
const int  charge,
const double &  weight = 1. 
) [inline, virtual]

Reimplemented in HParticle.

Definition at line 73 of file Histograms.h.

{};
virtual void Histograms::Fill ( const reco::Particle::LorentzVector recoP1,
const int  charge1,
const reco::Particle::LorentzVector recoP2,
const int  charge2,
const double &  recoMass,
const double &  genMass 
) [inline, virtual]

Reimplemented in HMassResolutionVSPart.

Definition at line 87 of file Histograms.h.

                                                                       {};
void Histograms::fillEventInfo ( int  proc,
int  strk,
int  ntrkr 
)

Definition at line 496 of file Histograms.cc.

References alignCSCRings::e, eventInfoValues, fillHistograms, fillNtuples, hder, heve, EventInfo_t::ntrkr, EventInfo_t::proc, proc, EventInfo_t::strk, and trackTrees.

{
  if(fillNtuples)
  {
    EventInfo_t e;
    e.proc  = proc;
    e.strk  = strk;
    e.ntrkr = ntrk;

    eventInfoValues = e;

    trackTrees[3]->Fill();
  }
  
  if(fillHistograms)
  {
  heve[0]->Fill(ntrk);

  if(proc == 92 || proc == 93)
    heve[1]->Fill(ntrk); // hsdx

  if(proc == 94)
    heve[2]->Fill(ntrk); // hddx

  if(!(proc == 92 || proc == 93 || proc == 94))
    heve[3]->Fill(ntrk); // hndx

  // For multiplicity, detector response matrix
  hder[0]->Fill(strk,ntrk);
  }
}
void Histograms::fillRecHistograms ( const RecTrack_t r)

Definition at line 572 of file Histograms.cc.

References ala, any, RecTrack_t::charge, DeDxDiscriminatorTools::charge(), RecTrack_t::etar, RecTrack_t::etas, funct::exp(), feedDown, fillHistograms, fillNtuples, getCharge(), getParticle(), hall, ham, hap, hdac, hdec, held, helo, hfak, hnhi, hpro, hrpt, hsp0, hsp1, hsp2, hvpt, RecTrack_t::ids, gen::k, RecTrack_t::logde, RecTrack_t::logpr, neg, nFeedDowns, RecTrack_t::nhitr, RecTrack_t::nsim, RecTrack_t::ntrkr, AlCaHLTBitMon_ParallelJobs::p, RecTrack_t::parids, partCharge, pip, pos, RecTrack_t::prim, RecTrack_t::ptr, RecTrack_t::pts, alignCSCRings::r, recTrackValues, edm::second(), trackTrees, and RecTrack_t::zr.

{
  if(fillNtuples)
  {
    if(r.prim)
    {
      recTrackValues = r;
      trackTrees[1]->Fill();
    }
  }

  if(fillHistograms)
  {
  int charge = getCharge(r.charge);
  double p = exp(r.logpr);

  if(r.prim)
  {
    hall[charge]->Fill(r.etar, r.ptr, r.ntrkr);

    if(r.ptr > 0.3) // !!!
    hdac[charge]->Fill(r.etar, r.zr);

    if(r.nsim == 0)
    hfak[charge]->Fill(r.etar, r.ptr, r.ntrkr);
    
    if(r.nsim == 1)
    {
      int part = getParticle(r.ids);
      int moth = getParticle(r.parids);

      if(pip <= part && part <= ala)
      {
        hvpt[part]->Fill(r.etas, r.pts, r.ptr      ); // value
        hrpt[part]->Fill(r.etas, r.pts, r.ptr/r.pts); // ratio 

        hsp0[part]->Fill(r.etas, r.pts);      // sum p^0
        hsp1[part]->Fill(r.etas, r.pts, p);   // sum p^1
        hsp2[part]->Fill(r.etas, r.pts, p*p); // sum p^2
      }

      for(int k = 0; k < nFeedDowns; k++)
        if(part == feedDown[k].second) // daughter same
        {
          hpro[k]->Fill(r.etar, r.ptr);

          if((r.parids != 0 && feedDown[k].first == any) ||
                               feedDown[k].first == moth) 
          hdec[k]->Fill(r.etar, r.ptr);
        }

      if(partCharge[part] == pos || partCharge[part] == neg)
      {
        if(partCharge[part] == pos) part = hap;
        if(partCharge[part] == neg) part = ham;

        hvpt[part]->Fill(r.etas, r.pts, r.ptr      ); // value
        hrpt[part]->Fill(r.etas, r.pts, r.ptr/r.pts); // ratio

        hsp0[part]->Fill(r.etas, r.pts);      // sum p^0
        hsp1[part]->Fill(r.etas, r.pts, p);   // sum p^1
        hsp2[part]->Fill(r.etas, r.pts, p*p); // sum p^2

        for(int k = 0; k < nFeedDowns; k++)
        if(part == feedDown[k].second) // daughter same
        {
          hpro[k]->Fill(r.etar, r.ptr);

          if((r.parids != 0 && feedDown[k].first == any) ||
                               feedDown[k].first == moth)
          hdec[k]->Fill(r.etar, r.ptr);
        }
      }
    }

    // All hits
    helo[charge]->Fill(r.etar, r.ptr, r.logde);
    hnhi[charge]->Fill(r.etar, r.ptr, r.nhitr);
    held[charge]->Fill(r.logpr, r.logde);

    // Strip hits
/*
    selo[charge]->Fill(r.etar, r.ptr, r.logde_strip);
    snhi[charge]->Fill(r.etar, r.ptr, r.nhitr_strip);
    seld[charge]->Fill(r.logpr, r.logde_strip);
*/
  }
  }
}
void Histograms::fillSimHistograms ( const SimTrack_t s)

Definition at line 529 of file Histograms.cc.

References SimTrack_t::acc, ala, SimTrack_t::etas, fillHistograms, fillNtuples, getParticle(), hacc, ham, hap, hmul, href, hsim, SimTrack_t::ids, neg, SimTrack_t::nrec, SimTrack_t::ntrkr, partCharge, pip, pos, SimTrack_t::prim, SimTrack_t::pts, alignCSCRings::s, simTrackValues, and trackTrees.

{
  if(fillNtuples)
  { 
    if(s.prim)
    {
      simTrackValues = s;
      trackTrees[0]->Fill();
    }
  }

  if(fillHistograms)
  {
    int part = getParticle(s.ids);   

    if(pip <= part && part <= ala && s.prim)
    {
                     hsim[part]->Fill(s.etas, s.pts, s.ntrkr);
      if(s.acc)      hacc[part]->Fill(s.etas, s.pts, s.ntrkr);
if(s.acc)
{
      if(s.nrec > 0) href[part]->Fill(s.etas, s.pts, s.ntrkr);
      if(s.nrec > 1) hmul[part]->Fill(s.etas, s.pts, s.ntrkr);
}
  
      if(partCharge[part] == pos || partCharge[part] == neg)
      {
        if(partCharge[part] == pos) part = hap;
        if(partCharge[part] == neg) part = ham;
  
                       hsim[part]->Fill(s.etas, s.pts, s.ntrkr);
        if(s.acc)      hacc[part]->Fill(s.etas, s.pts, s.ntrkr);
if(s.acc)
{
        if(s.nrec > 0) href[part]->Fill(s.etas, s.pts, s.ntrkr);
        if(s.nrec > 1) hmul[part]->Fill(s.etas, s.pts, s.ntrkr);
}
      }
    }
  }
}
void Histograms::fillVzeroHistograms ( const RecVzero_t r,
int  part 
)

Definition at line 663 of file Histograms.cc.

References RecVzero_t::etar, fillHistograms, fillNtuples, hima, RecVzero_t::ima, RecVzero_t::ptr, recVzeroValues, trackTrees, and v.

{
  if(fillNtuples)
  {
    recVzeroValues = v;
    trackTrees[2]->Fill();
  }

  if(fillHistograms)
    hima[part]->Fill(v.etar, v.ptr, v.ima);
}
virtual double Histograms::Get ( const reco::Particle::LorentzVector recoP1,
const TString &  covarianceName 
) [inline, virtual]

Reimplemented in HCovarianceVSParts.

Definition at line 108 of file Histograms.h.

{ return 0.; };
int Histograms::getCharge ( int  charge) [private]

Definition at line 145 of file Histograms.cc.

References neg, and pos.

Referenced by fillRecHistograms().

{ 
  if(charge > 0) return pos;
            else return neg;
}
virtual TString Histograms::GetName ( ) [inline, virtual]

Definition at line 117 of file Histograms.h.

References name_.

                            {
    return name_;
  }
int Histograms::getParticle ( int  id) [private]

Definition at line 103 of file Histograms.cc.

References ala, asi, elm, elp, gam, k0s, kam, kap, lam, pim, pip, prm, prp, and sip.

Referenced by fillRecHistograms(), and fillSimHistograms().

{
  switch(id)
  {
    case   211 : return pip; break;
    case  -211 : return pim; break;

    case   321 : return kap; break;
    case  -321 : return kam; break;

    case  2212 : return prp; break;
    case -2212 : return prm; break;

    case    11 : return elp; break;
    case   -11 : return elm; break;

    //  SimG4Core/Notification/src/G4TrackToParticleID.cc
    // "deuteron" = -100;  1p 1n
    // "triton"   = -101;  1p 2n
    // "alpha"    = -102;  2p 2n
    // "He3"      = -104;  2p 1n

    case    22 : return gam; break;
    case   310 : return k0s; break;
    case  3122 : return lam; break;
    case -3122 : return ala; break;

/*
    case   113 : return rho; break;
    case   313 : return kst; break;
    case  -313 : return aks; break;
    case   333 : return phi; break;
*/

    case  3222 : return sip; break;
    case -3222 : return asi; break;

    default    : return -1;  break;
  }
}
virtual void Histograms::SetWeight ( double  weight) [inline, virtual]

Definition at line 113 of file Histograms.h.

References theWeight_, and CommonMethods::weight().

virtual void Histograms::Write ( ) [pure virtual]
void Histograms::writeHistograms ( )

Definition at line 676 of file Histograms.cc.

References fillHistograms, fillNtuples, h, hacc, hall, hdac, hdec, hder, held, helo, heve, hfak, hima, histoFile, hmul, hnhi, hpro, href, hrho, hrpt, hsim, hsp0, hsp1, hsp2, hvpt, ntupleFile, lumiQTWidget::t, and trackTrees.

{
  typedef std::vector<TH3F *>::const_iterator H3I;
  typedef std::vector<TH2F *>::const_iterator H2I;
  typedef std::vector<TH1F *>::const_iterator H1I;
  typedef std::vector<TTree *>::const_iterator TI;

  if(fillHistograms)
  {
  histoFile->cd();
  for(H1I h = heve.begin(); h!= heve.end(); h++) (*h)->Write();
  for(H2I h = hder.begin(); h!= hder.end(); h++) (*h)->Write();

  for(H3I h = hsim.begin(); h!= hsim.end(); h++) (*h)->Write();
  for(H3I h = hacc.begin(); h!= hacc.end(); h++) (*h)->Write();
  for(H3I h = href.begin(); h!= href.end(); h++) (*h)->Write();
  for(H3I h = hmul.begin(); h!= hmul.end(); h++) (*h)->Write();

  for(H3I h = hall.begin(); h!= hall.end(); h++) (*h)->Write();
  for(H2I h = hdac.begin(); h!= hdac.end(); h++) (*h)->Write();

  for(H3I h = hvpt.begin(); h!= hvpt.end(); h++) (*h)->Write();
  for(H3I h = hrpt.begin(); h!= hrpt.end(); h++) (*h)->Write();

  for(H2I h = hsp0.begin(); h!= hsp0.end(); h++) (*h)->Write();
  for(H2I h = hsp1.begin(); h!= hsp1.end(); h++) (*h)->Write();
  for(H2I h = hsp2.begin(); h!= hsp2.end(); h++) (*h)->Write();

  for(H3I h = hfak.begin(); h!= hfak.end(); h++) (*h)->Write();

  for(H2I h = hpro.begin(); h!= hpro.end(); h++) (*h)->Write();
  for(H2I h = hdec.begin(); h!= hdec.end(); h++) (*h)->Write();

  for(H3I h = helo.begin(); h!= helo.end(); h++) (*h)->Write();
  for(H3I h = hnhi.begin(); h!= hnhi.end(); h++) (*h)->Write();
  for(H2I h = held.begin(); h!= held.end(); h++) (*h)->Write();

  for(H3I h = hima.begin(); h!= hima.end(); h++) (*h)->Write();
  for(H3I h = hrho.begin(); h!= hrho.end(); h++) (*h)->Write();
  histoFile->Close();
  }

  if(fillNtuples)
  {
  ntupleFile->cd();
  for(TI t = trackTrees.begin(); t!= trackTrees.end(); t++) (*t)->Write();
  ntupleFile->Close();
  }
}

Member Data Documentation

std::vector<double> Histograms::etaBins [private]

Definition at line 86 of file Histograms.h.

Referenced by declareHistograms().

Definition at line 79 of file Histograms.h.

Referenced by declareHistograms(), and fillEventInfo().

bool Histograms::fillNtuples [private]
std::vector<TH3F *> Histograms::hacc [private]

Definition at line 99 of file Histograms.h.

Referenced by declareHistograms(), fillSimHistograms(), and writeHistograms().

std::vector<TH3F *> Histograms::hall [private]

Definition at line 104 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH2F *> Histograms::hdac [private]

Definition at line 106 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH2F *> Histograms::hdec [private]

Definition at line 120 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH2F *> Histograms::hder [private]

Definition at line 95 of file Histograms.h.

Referenced by declareHistograms(), fillEventInfo(), and writeHistograms().

std::vector<TH2F *> Histograms::held [private]

Definition at line 125 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH3F *> Histograms::helo [private]

Definition at line 123 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH1F *> Histograms::heve [private]

Definition at line 94 of file Histograms.h.

Referenced by declareHistograms(), fillEventInfo(), and writeHistograms().

std::vector<TH3F *> Histograms::hfak [private]

Definition at line 116 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH3F *> Histograms::hima [private]

Definition at line 134 of file Histograms.h.

Referenced by declareHistograms(), fillVzeroHistograms(), and writeHistograms().

TDirectory* Histograms::histoDir_ [protected]
TFile* Histograms::histoFile [private]

Definition at line 81 of file Histograms.h.

Referenced by Histograms(), and writeHistograms().

std::vector<TH3F *> Histograms::hmul [private]

Definition at line 101 of file Histograms.h.

Referenced by declareHistograms(), fillSimHistograms(), and writeHistograms().

std::vector<TH3F *> Histograms::hnhi [private]

Definition at line 124 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH2F *> Histograms::hpro [private]

Definition at line 119 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH3F *> Histograms::href [private]

Definition at line 100 of file Histograms.h.

Referenced by declareHistograms(), fillSimHistograms(), and writeHistograms().

std::vector<TH3F *> Histograms::hrho [private]

Definition at line 135 of file Histograms.h.

Referenced by declareHistograms(), and writeHistograms().

std::vector<TH3F *> Histograms::hrpt [private]

Definition at line 110 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH3F *> Histograms::hsim [private]

Definition at line 98 of file Histograms.h.

Referenced by declareHistograms(), fillSimHistograms(), and writeHistograms().

std::vector<TH2F *> Histograms::hsp0 [private]

Definition at line 111 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH2F *> Histograms::hsp1 [private]

Definition at line 112 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH2F *> Histograms::hsp2 [private]

Definition at line 113 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<TH3F *> Histograms::hvpt [private]

Definition at line 109 of file Histograms.h.

Referenced by declareHistograms(), fillRecHistograms(), and writeHistograms().

std::vector<double> Histograms::ldeBins [private]

Definition at line 86 of file Histograms.h.

Referenced by declareHistograms().

std::vector<double> Histograms::lpBins [private]

Definition at line 86 of file Histograms.h.

Referenced by declareHistograms().

std::vector<double> Histograms::metaBins [private]

Definition at line 86 of file Histograms.h.

Referenced by declareHistograms().

TString Histograms::name_ [protected]
std::vector<double> Histograms::nhitBins [private]

Definition at line 86 of file Histograms.h.

Referenced by declareHistograms().

std::vector<double> Histograms::ntrkBins [private]

Definition at line 86 of file Histograms.h.

Referenced by declareHistograms().

TFile* Histograms::ntupleFile [private]

Definition at line 82 of file Histograms.h.

Referenced by Histograms(), and writeHistograms().

TFile* Histograms::outputFile_ [protected]

Definition at line 124 of file Histograms.h.

Referenced by HFunctionResolution::Write().

std::vector<double> Histograms::ptBins [private]

Definition at line 86 of file Histograms.h.

Referenced by declareHistograms().

std::vector<double> Histograms::ratBins [private]

Definition at line 86 of file Histograms.h.

Referenced by declareHistograms().

Definition at line 77 of file Histograms.h.

Referenced by declareHistograms(), and fillRecHistograms().

Definition at line 78 of file Histograms.h.

Referenced by declareHistograms(), and fillVzeroHistograms().

std::vector<double> Histograms::rhoBins [private]

Definition at line 86 of file Histograms.h.

Referenced by declareHistograms().

Definition at line 76 of file Histograms.h.

Referenced by declareHistograms(), and fillSimHistograms().

double Histograms::theWeight_ [protected]

Definition at line 122 of file Histograms.h.

Referenced by SetWeight().

std::vector<TTree *> Histograms::trackTrees [private]
std::vector<double> Histograms::zBins [private]

Definition at line 86 of file Histograms.h.

Referenced by declareHistograms().