1 #ifndef LCFIAIDAPlotProcessor_h
2 #define LCFIAIDAPlotProcessor_h
72 #include "marlin/Processor.h"
74 #include "EVENT/ReconstructedParticle.h"
75 #include "EVENT/LCCollection.h"
76 #include "EVENT/LCIntVec.h"
77 #include "EVENT/LCFloatVec.h"
78 #include "EVENT/MCParticle.h"
84 #include <AIDA/IHistogram1D.h>
85 #include <AIDA/IDataPointSet.h>
86 #include <AIDA/ITuple.h>
102 virtual void processRunHeader( LCRunHeader* pRun );
104 virtual void processEvent( LCEvent* pEvent );
106 virtual void check( LCEvent* pEvent );
113 std::vector<std::string> _FlavourTagInputsCollectionNames;
114 std::string _TrueJetFlavourColName;
115 std::string _JetCollectionName;
116 std::string _VertexColName;
117 std::string _CVertexChargeCollection;
118 std::string _BVertexChargeCollection;
120 std::string _TrueTracksToMCPCollection;
121 std::string _ZVRESSelectedJetsCollection;
122 std::string _ZVRESDecayChainRPTracksCollection;
123 std::string _ZVRESDecayChainCollection;
144 bool _MakePurityEfficiencyPlots;
145 bool _PrintPurityEfficiencyValues;
146 bool _MakeAdditionalPlots;
148 std::string _PurityEfficiencyOutputFile;
149 std::string _TrackVertexOutputFile;
151 int _iVertexChargeTagCollection;
152 unsigned int _myVertexChargeTagCollection;
154 std::vector<std::string> _VertexCatNames;
155 std::vector<std::string> _NumVertexCatDir;
156 std::vector<std::string> _ZoomedVarNames;
157 std::string _MCParticleColName;
159 std::vector<AIDA::IHistogram2D*> _pBJetCharge;
160 std::vector<AIDA::IHistogram2D*> _pCJetCharge;
162 std::vector<AIDA::IHistogram1D*> _pCDecayLengthAll;
163 std::vector<AIDA::IHistogram1D*> _pBDecayLengthAll;
164 std::vector<AIDA::IHistogram1D*> _pCDecayLengthTwoVertices;
165 std::vector<AIDA::IHistogram1D*> _pBDecayLengthTwoVertices;
182 AIDA::IHistogram2D* _decayLengthCJet2D;
183 AIDA::IHistogram2D* _decayLengthBJet2D;
185 AIDA::ICloud2D* _decayLengthCJetCloud2D;
186 AIDA::ICloud2D* _decayLengthBJetCloud2D;
189 std::vector< std::map<std::string,unsigned int> > _IndexOfForEachTag;
190 std::vector< std::map<std::string,unsigned int> > _InputsIndex;
191 std::vector< std::map<std::string,unsigned int> > _ZoomedInputsIndex;
192 std::map<std::string,unsigned int> _FlavourIndex;
213 std::vector< std::map<std::string,AIDA::IHistogram1D*> >
_pBJetBTag;
215 std::vector< std::map<std::string,AIDA::IHistogram1D*> >
_pBJetCTag;
217 std::vector< std::map<std::string,AIDA::IHistogram1D*> >
_pCJetBTag;
219 std::vector< std::map<std::string,AIDA::IHistogram1D*> >
_pCJetCTag;
221 std::vector< std::map<std::string,AIDA::IHistogram1D*> >
_pBJetBCTag;
223 std::vector< std::map<std::string,AIDA::IHistogram1D*> >
_pCJetBCTag;
237 std::vector< std::map<std::string,AIDA::IHistogram1D*> > _pCJetBTagIntegral;
238 std::vector< std::map<std::string,AIDA::IHistogram1D*> > _pLightJetBTagIntegral;
239 std::vector< std::map<std::string,AIDA::IHistogram1D*> > _pBJetCTagIntegral;
240 std::vector< std::map<std::string,AIDA::IHistogram1D*> > _pCJetCTagIntegral;
241 std::vector< std::map<std::string,AIDA::IHistogram1D*> > _pLightJetCTagIntegral;
242 std::vector< std::map<std::string,AIDA::IHistogram1D*> > _pBJetBCTagIntegral;
243 std::vector< std::map<std::string,AIDA::IHistogram1D*> > _pCJetBCTagIntegral;
244 std::vector< std::map<std::string,AIDA::IHistogram1D*> > _pLightJetBCTagIntegral;
255 int _lastRunHeaderProcessed;
256 int _suppressOutputForRun;
258 bool PassesEventCuts( LCEvent* pEvent );
259 bool PassesJetCuts( ReconstructedParticle* pJet );
260 void FillInputsPlots( LCEvent* pEvent,
unsigned int jetNumber );
261 void FillTagPlots( LCEvent* pEvent,
unsigned int jetNumber );
262 void FillVertexChargePlots( LCEvent* pEvent,
unsigned int jetNumber );
263 void FillVertexPlots( LCEvent* pEvent,
unsigned int jetNumber );
264 void CalculateEfficiencyPurityPlots();
265 void CalculateAdditionalPlots();
266 void CreateFlavourTagInputPlots(LCRunHeader* pRun);
267 void CreateFlavourTagTuple();
268 void CreateTagPlots();
269 void CreateAdditionalPlots();
271 static const int B_JET=5;
272 static const int C_JET=4;
280 float CalculateDistance(
const float* pos1,
const float* pos2);
281 double CalculateDistance(
const double* pos1,
const double* pos2);
294 void FindTrueJetDecayLength( LCEvent* pEvent,
unsigned int jetNumber, std::vector<double>& decaylengthvector, std::vector<double>& bjetdecaylengthvector, std::vector<double>& cjetdecaylengthvector);
295 void FindTrueJetDecayLength2( LCEvent* pEvent,
unsigned int jetNumber,
double& bjetdecaylength,
double& cjetdecaylength);
297 int FindNumVertex( LCEvent* pEvent,
unsigned int jetNumber,
unsigned int iInputsCollection);
299 int FindCQVtx( LCEvent* pEvent,
unsigned int jetNumber);
301 int FindBQVtx( LCEvent* pEvent,
unsigned int jetNumber);
303 void CalculateTagEfficiency(
const AIDA::IHistogram1D* pSignal, std::vector<double>& tagEfficiency, std::vector<double>& tagError);
304 void CalculateTagPurity(
const AIDA::IHistogram1D* pSignal,
const AIDA::IHistogram1D* pBackground, std::vector<double>& tagPurity, std::vector<double>& tagPurityError);
306 void CalculateIntegralAndBackgroundPlots();
308 int GetPDGFlavour(
int code);
310 void FillZVRESTable(LCEvent* pEvent);
311 void PrintNNOutput();
312 void PrintZVRESTable();
314 void InitialiseFlavourTagInputs(LCRunHeader* pRun );
315 void InternalVectorInitialisation();
318 AIDA::IDataPointSet*
CreateEfficiencyPlot(
const AIDA::IHistogram1D* pSignal, AIDA::IDataPointSet* pDataPointSet);
320 AIDA::IDataPointSet*
CreateEfficiencyPlot2(
const AIDA::IHistogram1D* pAllEvents,
const AIDA::IHistogram1D *pPassEvents, AIDA::IDataPointSet* pDataPointSet);
322 AIDA::IDataPointSet*
CreateIntegralPlot(
const AIDA::IHistogram1D* pNN, AIDA::IDataPointSet* pIntegral);
324 AIDA::IDataPointSet*
CreatePurityPlot(
const AIDA::IHistogram1D* pSignal,
const AIDA::IHistogram1D* pBackground, AIDA::IDataPointSet* pDataPointSet);
326 AIDA::IDataPointSet*
CreateLeakageRatePlot(
const AIDA::IHistogram1D* pBackground, AIDA::IDataPointSet* pDataPointSet);
328 AIDA::IDataPointSet*
CreateXYPlot(
const AIDA::IDataPointSet* pDataPointSet0,
const AIDA::IDataPointSet* pDataPointSet1, AIDA::IDataPointSet* xyPointSet,
const int dim0=0,
const int dim1=0 );
337 AIDA::IHistogram1D* _pVertexDistanceFromIP;
338 AIDA::IHistogram1D* _pVertexPositionX;
339 AIDA::IHistogram1D* _pVertexPositionY;
340 AIDA::IHistogram1D* _pVertexPositionZ;
341 AIDA::IHistogram1D* _pPrimaryVertexPullX;
342 AIDA::IHistogram1D* _pPrimaryVertexPullY;
343 AIDA::IHistogram1D* _pPrimaryVertexPullZ;
344 AIDA::IHistogram1D* _pPrimaryVertexPositionX;
345 AIDA::IHistogram1D* _pPrimaryVertexPositionY;
346 AIDA::IHistogram1D* _pPrimaryVertexPositionZ;
348 AIDA::IHistogram1D* _reconstructedSecondaryDecayLength;
349 AIDA::IHistogram1D* _reconstructedSecTerDecayLength;
350 AIDA::IHistogram2D* _numberOfJetsDC;
351 AIDA::IHistogram1D* _numberOfSecondaryVertices;
353 AIDA::IHistogram1D* _recoDecayLengthBJet;
354 AIDA::IHistogram1D* _recoDecayLengthBCJet;
355 AIDA::IHistogram1D* _nVerticesBJet;
356 AIDA::IHistogram1D* _recoDecayLengthCJet;
357 AIDA::IHistogram1D* _nVerticesCJet;
358 AIDA::IHistogram1D* _recoDecayLengthLightJet;
359 AIDA::IHistogram1D* _nVerticesLightJet;
360 AIDA::IHistogram1D* _decayLengthBJetTrue;
361 AIDA::IHistogram1D* _decayLengthBCJetTrue;
362 AIDA::IHistogram1D* _decayLengthCJetTrue;
450 std::vector< unsigned int> _cJet_truePlus_angle;
451 std::vector< unsigned int> _cJet_trueNeut_angle;
452 std::vector< unsigned int> _cJet_trueMinus_angle;
453 std::vector< unsigned int> _cJet_trueMinus2_angle;
455 std::vector< unsigned int> _cJet_truePlus2_recoPlus_angle;
456 std::vector< unsigned int> _cJet_truePlus2_recoNeut_angle;
457 std::vector< unsigned int> _cJet_truePlus2_recoMinus_angle;
458 std::vector< unsigned int> _cJet_truePlus_recoPlus_angle;
459 std::vector< unsigned int> _cJet_truePlus_recoNeut_angle;
460 std::vector< unsigned int> _cJet_truePlus_recoMinus_angle;
461 std::vector< unsigned int> _cJet_trueNeut_recoPlus_angle;
462 std::vector< unsigned int> _cJet_trueNeut_recoNeut_angle;
463 std::vector< unsigned int> _cJet_trueNeut_recoMinus_angle;
464 std::vector< unsigned int> _cJet_trueMinus_recoPlus_angle;
465 std::vector< unsigned int> _cJet_trueMinus_recoNeut_angle;
466 std::vector< unsigned int> _cJet_trueMinus_recoMinus_angle;
467 std::vector< unsigned int> _cJet_trueMinus2_recoPlus_angle;
468 std::vector< unsigned int> _cJet_trueMinus2_recoNeut_angle;
469 std::vector< unsigned int> _cJet_trueMinus2_recoMinus_angle;
471 std::vector< unsigned int> _bJet_truePlus2_angle;
472 std::vector< unsigned int> _bJet_truePlus_angle;
473 std::vector< unsigned int> _bJet_trueNeut_angle;
474 std::vector< unsigned int> _bJet_trueMinus_angle;
475 std::vector< unsigned int> _bJet_trueMinus2_angle;
476 std::vector< unsigned int> _bJet_truePlus2_recoPlus_angle;
477 std::vector< unsigned int> _bJet_truePlus2_recoNeut_angle;
478 std::vector< unsigned int> _bJet_truePlus2_recoMinus_angle;
479 std::vector< unsigned int> _bJet_truePlus_recoPlus_angle;
480 std::vector< unsigned int> _bJet_truePlus_recoNeut_angle;
481 std::vector< unsigned int> _bJet_truePlus_recoMinus_angle;
482 std::vector< unsigned int> _bJet_trueNeut_recoPlus_angle;
483 std::vector< unsigned int> _bJet_trueNeut_recoNeut_angle;
484 std::vector< unsigned int> _bJet_trueNeut_recoMinus_angle;
485 std::vector< unsigned int> _bJet_trueMinus_recoPlus_angle;
486 std::vector< unsigned int> _bJet_trueMinus_recoNeut_angle;
487 std::vector< unsigned int> _bJet_trueMinus_recoMinus_angle;
488 std::vector< unsigned int> _bJet_trueMinus2_recoPlus_angle;
489 std::vector< unsigned int> _bJet_trueMinus2_recoNeut_angle;
490 std::vector< unsigned int> _bJet_trueMinus2_recoMinus_angle;
494 int _nb_twoVertex_bTrack_Secondary;
495 int _nb_twoVertex_bTrack_Tertiary;
496 int _nb_twoVertex_bTrack_Isolated;
498 int _nb_twoVertex_cTrack_Primary;
499 int _nb_twoVertex_cTrack_Secondary;
500 int _nb_twoVertex_cTrack_Tertiary;
501 int _nb_twoVertex_cTrack_Isolated;
503 int _nb_twoVertex_lTrack_Primary;
504 int _nb_twoVertex_lTrack_Secondary;
505 int _nb_twoVertex_lTrack_Tertiary;
506 int _nb_twoVertex_lTrack_Isolated;
508 int _nb_threeVertex_bTrack_Primary;
509 int _nb_threeVertex_bTrack_Secondary;
510 int _nb_threeVertex_bTrack_Tertiary;
511 int _nb_threeVertex_bTrack_Isolated;
513 int _nb_threeVertex_cTrack_Primary;
514 int _nb_threeVertex_cTrack_Secondary;
515 int _nb_threeVertex_cTrack_Tertiary;
516 int _nb_threeVertex_cTrack_Isolated;
518 int _nb_threeVertex_lTrack_Primary;
519 int _nb_threeVertex_lTrack_Secondary;
520 int _nb_threeVertex_lTrack_Tertiary;
521 int _nb_threeVertex_lTrack_Isolated;
523 int _nb_threeVertex_Primary_noMCP;
524 int _nb_threeVertex_Secondary_noMCP;
525 int _nb_threeVertex_Tertiary_noMCP;
526 int _nb_threeVertex_Isolated_noMCP;
528 int _nb_twoVertex_Primary_noMCP;
529 int _nb_twoVertex_Secondary_noMCP;
530 int _nb_twoVertex_Tertiary_noMCP;
531 int _nb_twoVertex_Isolated_noMCP;
534 int _nc_twoVertex_bTrack_Primary;
535 int _nc_twoVertex_bTrack_Secondary;
536 int _nc_twoVertex_bTrack_Tertiary;
537 int _nc_twoVertex_bTrack_Isolated;
539 int _nc_twoVertex_cTrack_Primary;
540 int _nc_twoVertex_cTrack_Secondary;
541 int _nc_twoVertex_cTrack_Tertiary;
542 int _nc_twoVertex_cTrack_Isolated;
544 int _nc_twoVertex_lTrack_Primary;
545 int _nc_twoVertex_lTrack_Secondary;
546 int _nc_twoVertex_lTrack_Tertiary;
547 int _nc_twoVertex_lTrack_Isolated;
549 int _nc_threeVertex_bTrack_Primary;
550 int _nc_threeVertex_bTrack_Secondary;
551 int _nc_threeVertex_bTrack_Tertiary;
552 int _nc_threeVertex_bTrack_Isolated;
554 int _nc_threeVertex_cTrack_Primary;
555 int _nc_threeVertex_cTrack_Secondary;
556 int _nc_threeVertex_cTrack_Tertiary;
557 int _nc_threeVertex_cTrack_Isolated;
559 int _nc_threeVertex_lTrack_Primary;
560 int _nc_threeVertex_lTrack_Secondary;
561 int _nc_threeVertex_lTrack_Tertiary;
562 int _nc_threeVertex_lTrack_Isolated;
564 int _nc_threeVertex_Primary_noMCP;
565 int _nc_threeVertex_Secondary_noMCP;
566 int _nc_threeVertex_Tertiary_noMCP;
567 int _nc_threeVertex_Isolated_noMCP;
569 int _nc_twoVertex_Primary_noMCP;
570 int _nc_twoVertex_Secondary_noMCP;
571 int _nc_twoVertex_Tertiary_noMCP;
572 int _nc_twoVertex_Isolated_noMCP;
576 #endif // endif for "ifndef LCFIAIDAPlotProcessor_h"
int _bJet_trueNeut_recoPlus
numbers of true B-jets with true charge 0; reconstructed vertex charge >0
int FindCQVtx(LCEvent *pEvent, unsigned int jetNumber)
Finds the vertex charge of the jet - using cuts tuned to find vertex charge for C-jets (from CVertexC...
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pCJetBCTag
Histograms of the neural net BC-tag outputs for true C-jets - seperately for different number of vert...
int _bJet_truePlus_recoNeut
numbers of true B-jets with true charge +; reconstructed vertex charge =0
AIDA::IDataPointSet * CreateIntegralPlot(const AIDA::IHistogram1D *pNN, AIDA::IDataPointSet *pIntegral)
Makes a DataPointSet integrating a histogram from the first bin to the last bin – NOT USED...
int _cJet_trueMinus_recoPlus
numbers of true C-jets with true charge -; reconstructed vertex charge >0
void FindTrueJetDecayLength(LCEvent *pEvent, unsigned int jetNumber, std::vector< double > &decaylengthvector, std::vector< double > &bjetdecaylengthvector, std::vector< double > &cjetdecaylengthvector)
Finds the true decay length of the longest b- or c- hadron in a jet.
int _bJet_trueNeut_recoMinus
numbers of true B-jets with true charge 0; reconstructed vertex charge <0
AIDA::IDataPointSet * CreateXYPlot(const AIDA::IDataPointSet *pDataPointSet0, const AIDA::IDataPointSet *pDataPointSet1, AIDA::IDataPointSet *xyPointSet, const int dim0=0, const int dim1=0)
Plots two DataPointSets against each other.
int _cJet_trueMinus
numbers of true C-jets with true charge -
double _PJetMax
cuts on all jets
int _bJet_trueMinus
numbers of true B-jets with true charge -
int _cJet_trueMinus2
numbers of true C-jets with true charge –
int FindTrueJetFlavour(LCEvent *pEvent, unsigned int jetNumber)
Finds the true flavour of the jet (uses TrueJetFlavourCollection)
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pBCTagBackgroundValues
Histograms of the neural net BC-tag outputs for non C-jets - seperately for different number of verti...
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pLightJetBCTag
Histograms of the neural net BC-tag outputs for true light-jets - seperately for different number of ...
AIDA::IDataPointSet * CreateEfficiencyPlot(const AIDA::IHistogram1D *pSignal, AIDA::IDataPointSet *pDataPointSet)
Makes a DataPointSet of the tag efficiency e.g number of B-jets passing a given B-tag NN cut...
int _nb_twoVertex_bTrack_Primary
Numbers for purity if reconstructed track-vertex association.
int _bJet_trueMinus_recoNeut
numbers of true B-jets with true charge -; reconstructed vertex charge =0
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _inputsHistogramsUDSJets
Histograms of the neural net inputs for light B-jets.
int _bJet_trueNeut_recoNeut
numbers of true B-jets with true charge 0; reconstructed vertex charge =0
int FindNumVertex(LCEvent *pEvent, unsigned int jetNumber, unsigned int iInputsCollection)
Finds the number of vertices in an event (from the flavour tag inputs)
int _cJet_truePlus2
numbers of true C-jets with true charge ++
static const int N_JETANGLE_BINS
number of bins used in vertex charge leakage plots
int _cJet_truePlus2_recoPlus
numbers of true C-jets with true charge ++; reconstructed vertex charge >0
int _cJet_trueMinus_recoMinus
numbers of true C-jets with true charge -; reconstructed vertex charge <0
int _cJet_trueNeut_recoNeut
numbers of true C-jets with true charge 0; reconstructed vertex charge =0
int _numberOfPoints
Number of bins used for neural nets plots.
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pCJetBTag
Histograms of the neural net B-tag outputs for true C-jets - seperately for different number of verti...
int _cJet_trueNeut_recoMinus
numbers of true C-jets with true charge 0; reconstructed vertex charge <0
AIDA::IHistogram1D * _pBJetVertexCharge
True B-jets - vertex charge.
int _cJet_truePlus2_recoNeut
numbers of true C-jets with true charge ++; reconstructed vertex charge =0
int _cJet_trueMinus2_recoPlus
numbers of true C-jets with true charge –; reconstructed vertex charge >0
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _zoomedInputsHistogramsCJets
Zoomed-in histograms of some of the neural net inputs for true C-jets.
AIDA::IDataPointSet * CreatePurityPlot(const AIDA::IHistogram1D *pSignal, const AIDA::IHistogram1D *pBackground, AIDA::IDataPointSet *pDataPointSet)
Makes a DataPointSet of the tag purity e.g. N(B-jets passing NN cut)/N(all-jets passing NN cut) for a...
AIDA::IHistogram2D * _pCJetCharge2D
True C-jets - vertex charge vs true charge.
int _bJet_truePlus2_recoPlus
numbers of true B-jets with true charge ++; reconstructed vertex charge >0
int FindBQVtx(LCEvent *pEvent, unsigned int jetNumber)
Finds the vertex charge of the jet - using cuts tuned to find vertex charge for B-jets (from BVertexC...
float FindTrueJetPartonCharge(LCEvent *pEvent, unsigned int jetNumber)
Finds the true charge of the parton producing a jet (uses TrueJetFlavourCollection) ...
double _BTagNNCut
Cut on the NN output variables - applied in vertex charge plots.
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _inputsHistogramsBJets
Histograms of the neural net inputs for true B-jets.
AIDA::IHistogram1D * _pCJetLeakageRate
True C-jets - vertex charge leakage rate.
int _bJet_truePlus_recoMinus
numbers of true B-jets with true charge +; reconstructed vertex charge <0
int _cJet_trueMinus2_recoMinus
numbers of true C-jets with true charge –; reconstructed vertex charge <0
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _inputsHistogramsCJets
Histograms of the neural net inputs for true C-jets.
int _cJet_trueMinus2_recoNeut
numbers of true C-jets with true charge –; reconstructed vertex charge =0
double _CosThetaJetMax
cuts on all jets
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _zoomedInputsHistogramsUDSJets
Zoomed-in histograms of some of the neural net inputs for true light-jets.
AIDA::IDataPointSet * CreateEfficiencyPlot2(const AIDA::IHistogram1D *pAllEvents, const AIDA::IHistogram1D *pPassEvents, AIDA::IDataPointSet *pDataPointSet)
Makes a DataPointSet of histogram 1 divide by histogram 2 - this is an IDataPointSet as a histrogram ...
double _CosThetaJetMin
cuts on all jets
double _CTagNNCut
Cut on the NN output variables - applied in vertex charge plots.
int _bJet_trueMinus2_recoPlus
numbers of true B-jets with true charge –; reconstructed vertex charge >0
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pLightJetCTag
Histograms of the neural net C-tag outputs for true light-jets - seperately for different number of v...
int _bJet_trueMinus2
numbers of true B-jets with true charge –
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pBJetBCTag
Histograms of the neural net BC-tag outputs for true B-jets - seperately for different number of vert...
int _cJet_trueNeut_recoPlus
numbers of true C-jets with true charge 0; reconstructed vertex charge >0
AIDA::IDataPointSet * CreateLeakageRatePlot(const AIDA::IHistogram1D *pBackground, AIDA::IDataPointSet *pDataPointSet)
Makes a DataPointSet showing the tagging leakage e.g. the number of non-B-jets passing a given B-tag ...
int _cJet_truePlus_recoMinus
numbers of true C-jets with true charge +; reconstructed vertex charge <0
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pBJetBTagIntegral
Histograms of the neural net tags - number of events that pass a given cut: jet NN value > given NN v...
AIDA::IHistogram1D * CreateIntegralHistogram(const AIDA::IHistogram1D *pNN, AIDA::IHistogram1D *pIntegral)
Makes a histogram integrating a histogram from the first bin to the last bin - THE ERRORS RETURNED AR...
std::vector< unsigned int > _cJet_truePlus2_angle
Vector of numbers of true C-jets with true charge ++ See above for details.
int _bJet_trueNeut
numbers of true B-jets with true charge 0
int _cJet_truePlus_recoNeut
numbers of true C-jets with true charge +; reconstructed vertex charge =0
static const unsigned int N_VERTEX_CATEGORIES
number of different vertex categories we want to look at: 1 vertex, 2 vertices, >=3 vertices ...
int FindTrueJetPDGCode(LCEvent *pEvent, unsigned int jetNumber)
Finds the PDG code of the hadron producing a jet (uses TrueJetFlavourCollection)
bool _PrintTrackVertexOutput
optional parameters to make an ntuple of the neural net inputs; and print out the tagging ouputs (use...
std::vector< std::string > _FlavourTagCollectionNames
required input collections
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pBTagBackgroundValues
Histograms of the neural net B-tag outputs for non B-jets - seperately for different number of vertic...
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pBJetBTag
Histograms of the neural net B-tag outputs for true B-jets - seperately for different number of verti...
int _bJet_truePlus2
numbers of true B-jets with true charge ++
int FindTrueJetType(LCEvent *pEvent, unsigned int jetNumber)
Finds the true flavour of a jet (uses TrueJetFlavourCollection)
int _cJet_truePlus_recoPlus
numbers of true C-jets with true charge +; reconstructed vertex charge >0
LCFIAIDAPlotProcessor Class - make plots of the LCFI flavour tag and vertex charge code...
AIDA::ITuple * _pMyTuple
Tuple of the input variables - only filled for one input collection - selected with UseFlavourTagColl...
int _bJet_trueMinus_recoMinus
numbers of true B-jets with true charge -; reconstructed vertex charge <0
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pLightJetBTag
Histograms of the neural net B-tag outputs for true light-jets - seperately for different number of v...
AIDA::IHistogram1D * _pBJetLeakageRate
True B-jets - vertex charge leakage rate.
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pBJetCTag
Histograms of the neural net C-tag outputs for true B-jets - seperately for different number of verti...
int _cJet_truePlus
numbers of true C-jets with true charge +
AIDA::IHistogram2D * _pBJetCharge2D
True B-jets - vertex charge vs true charge.
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _zoomedInputsHistogramsBJets
Zoomed-in histograms of some of the neural net inputs for true B-jets.
int _cJet_truePlus2_recoMinus
numbers of true C-jets with true charge ++; reconstructed vertex charge <0
int _bJet_truePlus
numbers of true B-jets with true charge +
int _cJet_trueNeut
numbers of true C-jets with true charge 0
int _bJet_trueMinus2_recoNeut
numbers of true B-jets with true charge –; reconstructed vertex charge =0
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pCJetCTag
Histograms of the neural net C-tag outputs for true C-jets - seperately for different number of verti...
std::vector< std::map< std::string, AIDA::IHistogram1D * > > _pCTagBackgroundValues
Histograms of the neural net C-tag outputs for non C-jets - seperately for different number of vertic...
int _bJet_truePlus2_recoNeut
numbers of true B-jets with true charge ++; reconstructed vertex charge =0
int _bJet_trueMinus_recoPlus
numbers of true B-jets with true charge -; reconstructed vertex charge >0
void CreateVertexChargeLeakagePlot(AIDA::IDataPointSet *pBJetVtxChargeDPS, AIDA::IDataPointSet *pCJetVtxChargeDPS)
Makes DataPointSets for the number of.
float FindTrueJetHadronCharge(LCEvent *pEvent, unsigned int jetNumber)
Finds the true charge of the hadron producing a jet (uses TrueJetFlavourCollection) ...
int _bJet_truePlus_recoPlus
numbers of true B-jets with true charge +; reconstructed vertex charge >0
int _bJet_trueMinus2_recoMinus
numbers of true B-jets with true charge –; reconstructed vertex charge <0
double _PJetMin
cuts on all jets
AIDA::IHistogram1D * _pCJetVertexCharge
True C-jets - vertex charge.
int _bJet_truePlus2_recoMinus
numbers of true B-jets with true charge ++; reconstructed vertex charge <0
int _cJet_trueMinus_recoNeut
numbers of true C-jets with true charge -; reconstructed vertex charge =0