79 double getDistInCM(
double eta1,
double phi1,
double eta2,
double phi2);
103 src_(iConfig.getParameter<edm::InputTag>(
"src"))
113 tree_->Branch(
"EopVariables", &treeMemPtr_);
145 std::vector<edm::InputTag> ecalLabels_;
151 if(ecalInAlca)ecalLabels_.push_back(
edm::InputTag(
"IsoProd",
"IsoTrackEcalRecHitCollection"));
153 ecalLabels_.push_back(
edm::InputTag(
"ecalRecHit",
"EcalRecHitsEB"));
154 ecalLabels_.push_back(
edm::InputTag(
"ecalRecHit",
"EcalRecHitsEE"));
156 else throw cms::Exception(
"MissingProduct",
"can not find EcalRecHits");
158 std::vector<edm::InputTag>::const_iterator
i;
159 for (
i=ecalLabels_.begin();
i!=ecalLabels_.end();
i++)
165 tmpEcalRecHitCollection->push_back(*recHit);
191 if(isoPixelTracks->size()==0)
return;
193 for(reco::TrackCollection::const_iterator track =
tracks->begin();track!=
tracks->end();++track){
195 bool noChargedTracks =
true;
197 if(track->p()<9.)
continue;
216 if(trackhac3<5.)
continue;
223 for (reco::TrackCollection::const_iterator track1 =
tracks->begin(); track1!=
tracks->end(); track1++)
225 if (track == track1)
continue;
230 if (etaecal1==0&&phiecal1==0)
continue;
232 double ecDist=
getDistInCM(etaecal,phiecal,etaecal1,phiecal1);
237 if (track1->p()>maxPNearby)
239 maxPNearby=track1->p();
246 noChargedTracks =
false;
254 for (std::vector<EcalRecHit>::const_iterator ehit=tmpEcalRecHitCollection->begin(); ehit!=tmpEcalRecHitCollection->end(); ehit++)
258 GlobalPoint posH = geo->getPosition((*ehit).detid());
259 double phihit = posH.
phi();
260 double etahit = posH.
eta();
262 double dHitCM=
getDistInCM(etaecal,phiecal,etahit,phihit);
266 EnergyIn+=ehit->energy();
268 if (dHitCM>15.0&&dHitCM<35.0)
270 EnergyOut+=ehit->energy();
276 track->numberOfValidHits(), track->numberOfLostHits(),
277 track->chi2(), track->normalizedChi2(),
278 track->p(), track->pt(), track->ptError(),
279 track->theta(), track->eta(), track->phi(),
280 trackemc1, trackemc3, trackemc5,
281 trackhac1, trackhac3, trackhac5,
282 maxPNearby, dist, EnergyIn, EnergyOut);
312 double theta1=2*atan(
exp(-eta1));
313 double theta2=2*atan(
exp(-eta2));
315 if(
cos(theta1)==0)cotantheta1=0;
316 else cotantheta1=1/
tan(theta1);
318 if(
cos(theta2)==0)cotantheta2=0;
319 else cotantheta2=1/
tan(theta2);
324 if(fabs(eta1)<1.479)dR=129*
sqrt((cotantheta1-cotantheta2)*(cotantheta1-cotantheta2)+deltaPhi*deltaPhi);
T getParameter(std::string const &) const
container to hold data to be written into TTree
virtual void analyze(const edm::Event &, const edm::EventSetup &)
#define DEFINE_FWK_MODULE(type)
static FreeTrajectoryState getFreeTrajectoryState(const edm::EventSetup &, const reco::Track &)
get FreeTrajectoryState from different track representations
void useDefaultPropagator()
use the default propagator
Geom::Phi< T > phi() const
std::vector< EcalRecHit >::const_iterator const_iterator
double nXnEnergy(const DetId &, EnergyType, int gridSize=1)
get energy of the NxN shape (N = 2*gridSize + 1) around given detector element
Cos< T >::type cos(const T &t)
Tan< T >::type tan(const T &t)
TrackAssociatorParameters parameters_
edm::Service< TFileService > fs_
void fillVariables(Int_t charge, Int_t innerOk, Double_t outerRadius, Int_t numberOfValidHits, Int_t numberOfLostHits, Double_t chi2, Double_t normalizedChi2, Double_t p, Double_t pt, Double_t ptError, Double_t theta, Double_t eta, Double_t phi, Double_t emc1, Double_t emc3, Double_t emc5, Double_t hac1, Double_t hac3, Double_t hac5, Double_t maxPNearby, Double_t dist, Double_t EnergyIn, Double_t EnergyOut)
fill variables into tree
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
TrackDetectorAssociator trackAssociator_
T const * product() const
ESHandle< TrackerGeometry > geometry
double getDistInCM(double eta1, double phi1, double eta2, double phi2)
TrackDetMatchInfo associate(const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const AssociatorParameters &)
T * make() const
make new ROOT object
math::XYZPoint trkGlobPosAtEcal
Track position at different parts of the calorimeter.
void loadParameters(const edm::ParameterSet &)
EopVariables * treeMemPtr_
EopTreeWriter(const edm::ParameterSet &)