3 |
|
// |
4 |
|
// FillerMCParticles |
5 |
|
// |
6 |
< |
// Imlementation of a filler to fill HepMC particles (gen) AND TrackingParticles (sim) |
7 |
< |
// into mithep::MCParticles. Gen and Sim information is thus merged into a single collection |
6 |
> |
// Imlementation of a filler to fill HepMC particles or the AOD GenParticle candidates (gen) |
7 |
> |
// and SimTracks (sim) with association map to TrackingParticles (for hit-based MC truth matching) |
8 |
> |
// into mithep::MCParticles. Generated and simulated particle information is thus merged into a |
9 |
> |
// single collection. |
10 |
|
// |
11 |
|
// Authors: C.Loizides, J.Bendavid |
12 |
|
//-------------------------------------------------------------------------------------------------- |
13 |
|
|
14 |
< |
#ifndef TREEFILLER_FILLERMCPARTICLES_H |
15 |
< |
#define TREEFILLER_FILLERMCPARTICLES_H |
14 |
> |
#ifndef MITPROD_TREEFILLER_FILLERMCPARTICLES_H |
15 |
> |
#define MITPROD_TREEFILLER_FILLERMCPARTICLES_H |
16 |
|
|
17 |
+ |
#include <map> |
18 |
|
#include "FWCore/ParameterSet/interface/ParameterSet.h" |
19 |
|
#include "MitAna/DataUtil/interface/TreeWriter.h" |
20 |
|
#include "MitAna/DataTree/interface/Collections.h" |
21 |
|
#include "MitProd/TreeFiller/interface/BaseFiller.h" |
22 |
|
#include "MitProd/TreeFiller/interface/AssociationMaps.h" |
23 |
+ |
#include "SimDataFormats/Track/interface/SimTrackContainer.h" |
24 |
|
|
25 |
|
namespace mithep |
26 |
|
{ |
30 |
|
FillerMCParticles(const edm::ParameterSet &cfg, const char *name, bool active=1); |
31 |
|
~FillerMCParticles(); |
32 |
|
|
33 |
< |
void BookDataBlock(TreeWriter &tws); |
34 |
< |
void FillDataBlock(const edm::Event &e, const edm::EventSetup &es); |
35 |
< |
void ResolveLinks (const edm::Event &e, const edm::EventSetup &es); |
32 |
< |
const GenParticleMap *GetGenParticleMap() const; |
33 |
< |
const SimParticleMap *GetSimParticleMap() const; |
33 |
> |
void BookDataBlock(TreeWriter &tws); |
34 |
> |
void FillDataBlock(const edm::Event &e, const edm::EventSetup &es); |
35 |
> |
void ResolveLinks (const edm::Event &e, const edm::EventSetup &es); |
36 |
|
|
37 |
|
private: |
38 |
< |
Bool_t genActive_; |
39 |
< |
Bool_t simActive_; |
40 |
< |
std::string genEdmName_; |
41 |
< |
std::string simEdmName_; |
42 |
< |
std::string mitName_; |
43 |
< |
mithep::MCParticleArr *mcParticles_; |
44 |
< |
mithep::GenParticleMap *genMap_; |
45 |
< |
mithep::SimParticleMap *simMap_; |
38 |
> |
bool genActive_; //=true if generated particles are filled |
39 |
> |
bool useAodGen_; //=true if AOD GenParticles to be used |
40 |
> |
bool simActive_; //=true if simulated particles are filled |
41 |
> |
bool trackingActive_; //=true if TrackingParticles are mapped |
42 |
> |
std::string genEdmName_; //edm name of generated particles |
43 |
> |
std::string simEdmName_; //edm name of simulated particles |
44 |
> |
std::string trackingEdmName_; //edm name of simulated TrackingParticles |
45 |
> |
std::string genMapName_; //name of exp map wrt generated particles |
46 |
> |
std::string simMapName_; //name of exp map wrt simulated particles |
47 |
> |
std::string trackingMapName_; //name of exp map wrt TrackingParticles |
48 |
> |
std::string mitName_; //name of MCParticles branch |
49 |
> |
mithep::MCParticleArr *mcParticles_; //array of MCParticles |
50 |
> |
mithep::GenParticleBarcodeMap *genMap_; //map wrt generated particles |
51 |
> |
mithep::AODGenParticleMap *aodGenMap_; //map wrt generated particles |
52 |
> |
mithep::SimTrackTidMap *simMap_; //map of SimTracks to G4 track ids |
53 |
> |
mithep::TrackingParticleMap *trackingMap_; //map wrt TrackingParticles |
54 |
|
}; |
55 |
|
} |
46 |
– |
|
47 |
– |
//-------------------------------------------------------------------------------------------------- |
48 |
– |
inline const mithep::GenParticleMap *mithep::FillerMCParticles::GetGenParticleMap() const |
49 |
– |
{ |
50 |
– |
if (genActive_) |
51 |
– |
return genMap_; |
52 |
– |
else |
53 |
– |
return 0; |
54 |
– |
} |
55 |
– |
|
56 |
– |
//-------------------------------------------------------------------------------------------------- |
57 |
– |
inline const mithep::SimParticleMap *mithep::FillerMCParticles::GetSimParticleMap() const |
58 |
– |
{ |
59 |
– |
if (simActive_) |
60 |
– |
return simMap_; |
61 |
– |
else |
62 |
– |
return 0; |
63 |
– |
} |
56 |
|
#endif |