CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackerizerFP420.cc
Go to the documentation of this file.
1 // File: TrackerizerFP420.cc
3 // Date: 12.2006
4 // Description: TrackerizerFP420 for FP420
5 // Modifications:
7 #include <memory>
8 #include <string>
16 
20 
21 #include <iostream>
22 using namespace std;
23 
24 //
25 namespace cms
26 {
27  TrackerizerFP420::TrackerizerFP420(const edm::ParameterSet& conf):conf_(conf) {
28 
29  std::string alias ( conf.getParameter<std::string>("@module_label") );
30 
31  produces<TrackCollectionFP420>().setBranchAlias( alias );
32 
33  trackerContainers.clear();
34  trackerContainers = conf.getParameter<std::vector<std::string> >("ROUList");
35 
36  verbosity = conf_.getUntrackedParameter<int>("VerbosityLevel");
37  if (verbosity > 0) {
38  std::cout << "Creating a TrackerizerFP420" << std::endl;
39  }
40 
41  // Initialization:
43 
44  }
45 
46  // Virtual destructor needed.
48  delete sFP420TrackMain_;
49  }
50 
51  //Get at the beginning
53  if (verbosity > 0) {
54  std::cout << "BeginJob method " << std::endl;
55  }
56  }
57 
58 
60  {
61  // beginJob;
62  // be lazy and include the appropriate namespaces
63  using namespace edm;
64  using namespace std;
65 
66  // Get input
67  //A
68  // edm::Handle<ClusterCollectionFP420> icf_simhit;
69  /*
70  Handle<ClusterCollectionFP420> cf_simhit;
71  std::vector<const ClusterCollectionFP420 *> cf_simhitvec;
72  for(uint32_t i = 0; i< trackerContainers.size();i++){
73  iEvent.getByLabel( trackerContainers[i], cf_simhit);
74  cf_simhitvec.push_back(cf_simhit.product()); }
75  std::auto_ptr<ClusterCollectionFP420 > input(new DigiCollectionFP420(cf_simhitvec));
76  */
77 
78  //B
79 
81  iEvent.getByLabel( trackerContainers[0] , input);
82 
83 
84 
85 
86  // Step C: create empty output collection
87  std::auto_ptr<TrackCollectionFP420> toutput(new TrackCollectionFP420);
88 
89 
90 
91  // put zero to container info from the beginning (important! because not any detID is updated with coming of new event !!!!!!
92  // clean info of container from previous event
93 
94  std::vector<TrackFP420> collector;
95  collector.clear();
97  inputRange.first = collector.begin();
98  inputRange.second = collector.end();
99 
100  unsigned int detID = 0;
101  toutput->putclear(inputRange,detID);
102 
103  unsigned int StID = 1111;
104  toutput->putclear(inputRange,StID);
105  StID = 2222;
106  toutput->putclear(inputRange,StID);
107 
108 
109  // !!!!!!
110  // if we want to keep Track container/Collection for one event ---> uncomment the line below and vice versa
111  toutput->clear(); //container_.clear() --> start from the beginning of the container
112 
113  // RUN now: !!!!!!
114  // startFP420TrackMain_.run(input, toutput);
115  sFP420TrackMain_->run(input, toutput);
116  // std::cout <<"======= TrackerizerFP420: end of produce " << std::endl;
117 
118  // Step D: write output to file
119  iEvent.put(toutput);
120  }//produce
121 
122 } // namespace cms
123 
124 
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
inputRange
Get input source.
std::pair< ContainerIterator, ContainerIterator > Range
FP420TrackMain * sFP420TrackMain_
int iEvent
Definition: GenABIO.cc:243
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:85
void run(edm::Handle< ClusterCollectionFP420 > &input, std::auto_ptr< TrackCollectionFP420 > &toutput)
Runs the algorithm.
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
tuple conf
Definition: dbtoconf.py:185
edm::ParameterSet conf_
virtual void produce(edm::Event &e, const edm::EventSetup &c)
tuple cout
Definition: gather_cfg.py:121